summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--library/sound.cpp31
-rw-r--r--library/sound.h2
2 files changed, 33 insertions, 0 deletions
diff --git a/library/sound.cpp b/library/sound.cpp
index ee2aabc..d1e2388 100644
--- a/library/sound.cpp
+++ b/library/sound.cpp
@@ -104,2 +104,5 @@ static int WAVsoundDuration(const QString& filename)
104class SoundData : public QSound { 104class SoundData : public QSound {
105 Q_OBJECT
106signals:
107 void stopped();
105public: 108public:
@@ -140,2 +143,11 @@ public:
140 143
144 /*
145 * non virtual reimplementation
146 * @internal
147 */
148 void killTimers() {
149 QObject::killTimers();
150 emit stopped();
151 }
152
141private: 153private:
@@ -148,2 +160,17 @@ private:
148 160
161
162/*
163 * @internal
164 * Using sender() when the slot is called is unsafe!
165 *
166 * @param snd instance
167 * @param obj The QObject to be called
168 * @param slot connect SIGNAL(stopped()) to slot
169 */
170void register_qpe_sound_finished( Sound* snd, QObject* obj, const char* slot ) {
171#ifndef QT_NO_SOUND
172 QObject::connect(snd->d, SIGNAL(stopped()), obj, slot );
173#endif
174}
175
149/*! Opens a wave sound file \a name for playing 176/*! Opens a wave sound file \a name for playing
@@ -170,2 +197,3 @@ void Sound::play()
170#ifndef QT_NO_SOUND 197#ifndef QT_NO_SOUND
198 d->killTimers();
171 d->playLoop(1); 199 d->playLoop(1);
@@ -222 +250,4 @@ void Sound::soundAlarm()
222*/ 250*/
251
252
253#include "sound.moc"
diff --git a/library/sound.h b/library/sound.h
index 9f35107..daef70f 100644
--- a/library/sound.h
+++ b/library/sound.h
@@ -24,4 +24,6 @@ class QString;
24class SoundData; 24class SoundData;
25class QObject;
25 26
26class Sound { 27class Sound {
28 /*INTERNAL*/ friend void register_qpe_sound_finished( Sound*, QObject *obj, const char* slot);
27public: 29public: