Warning, file /utilities/kclock/src/kclockd/alarmplayer.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 * Copyright 2020 Han Young <hanyoung@protonmail.com> 0003 * Copyright 2020 Devin Lin <devin@kde.org> 0004 * 0005 * SPDX-License-Identifier: GPL-2.0-or-later 0006 */ 0007 0008 #pragma once 0009 0010 #include <QMediaPlayer> 0011 #include <QObject> 0012 0013 #include <QAudioOutput> 0014 0015 class AlarmPlayer : public QObject 0016 { 0017 Q_OBJECT 0018 Q_PROPERTY(int volume READ volume WRITE setVolume NOTIFY volumeChanged) 0019 0020 public: 0021 static AlarmPlayer &instance(); 0022 0023 int volume(); 0024 Q_INVOKABLE void setVolume(int volume); 0025 Q_INVOKABLE void setSource(const QUrl &path); 0026 Q_INVOKABLE void play(); 0027 Q_INVOKABLE void stop(); 0028 0029 Q_SIGNALS: 0030 void volumeChanged(); 0031 0032 protected: 0033 explicit AlarmPlayer(QObject *parent = nullptr); 0034 0035 private: 0036 QMediaPlayer *m_player; 0037 QAudioOutput *m_audio; 0038 quint64 startPlayingTime = 0; 0039 0040 bool userStop = false; // indicate if user asks to stop 0041 0042 private Q_SLOTS: 0043 void loopAudio(QMediaPlayer::PlaybackState state); 0044 };