summaryrefslogtreecommitdiff
path: root/library/sound.cpp
authorsandman <sandman>2002-06-18 12:46:11 (UTC)
committer sandman <sandman>2002-06-18 12:46:11 (UTC)
commit61e2f9e5eb634b17ef480d79bdbcbc3a715990cb (patch) (unidiff)
tree013600ee0ababcc25f37ff98cede8f67cbdc9d2a /library/sound.cpp
parente21322ab34a8df36344eece685e604abe4f83fc6 (diff)
downloadopie-61e2f9e5eb634b17ef480d79bdbcbc3a715990cb.zip
opie-61e2f9e5eb634b17ef480d79bdbcbc3a715990cb.tar.gz
opie-61e2f9e5eb634b17ef480d79bdbcbc3a715990cb.tar.bz2
Moved platform specific things from custom-*.h #defines to virtual methods
in libopie/odevice.{h,cpp} Minor fix in Sound + reformating
Diffstat (limited to 'library/sound.cpp') (more/less context) (show whitespace changes)
-rw-r--r--library/sound.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/library/sound.cpp b/library/sound.cpp
index 602fcf0..1ff3b3f 100644
--- a/library/sound.cpp
+++ b/library/sound.cpp
@@ -98,96 +98,101 @@ static int WAVsoundDuration(const QString& filename)
98 98
99//qDebug("%dms",total); 99//qDebug("%dms",total);
100 return total; 100 return total;
101} 101}
102 102
103class SoundData : public QSound { 103class SoundData : public QSound {
104public: 104public:
105 SoundData(const QString& name) : 105 SoundData(const QString& name) :
106 QSound(Resource::findSound(name)), 106 QSound(Resource::findSound(name)),
107 filename(Resource::findSound(name)) 107 filename(Resource::findSound(name))
108 { 108 {
109 loopsleft=0; 109 loopsleft=0;
110 ms = WAVsoundDuration(filename);
110 } 111 }
111 112
112 void playLoop(int loopcnt = -1) 113 void playLoop(int loopcnt = -1)
113 { 114 {
114 // needs server support 115 // needs server support
115 loopsleft = loopcnt; 116 loopsleft = loopcnt;
116 117
117 int ms = WAVsoundDuration(filename);
118 if ( ms ) 118 if ( ms )
119 startTimer(ms > 50 ? ms-50 : 0); // 50 for latency 119 startTimer(ms > 50 ? ms-50 : 0); // 50 for latency
120 play(); 120 play();
121 } 121 }
122 122
123 void timerEvent ( QTimerEvent *e ) 123 void timerEvent ( QTimerEvent *e )
124 { 124 {
125 if (loopsleft >= 0) { 125 if (loopsleft >= 0) {
126 if (--loopsleft <= 0) 126 if ( --loopsleft <= 0 ) {
127 killTimer (e->timerId()); 127 killTimer (e->timerId());
128 loopsleft = 0;
128 return; 129 return;
129 } 130 }
131 }
130 play(); 132 play();
131 } 133 }
132 134
133 bool isFinished ( ) const 135 bool isFinished ( ) const
134 { 136 {
135 return ( loopsleft == 0 ); 137 return ( loopsleft == 0 );
136 } 138 }
137 139
138private: 140private:
139 QString filename; 141 QString filename;
140 int loopsleft; 142 int loopsleft;
143 int ms;
141}; 144};
145
142#endif 146#endif
143 147
144Sound::Sound(const QString& name) 148Sound::Sound(const QString& name)
145{ 149{
146#ifndef QT_NO_SOUND 150#ifndef QT_NO_SOUND
147 d = new SoundData(name); 151 d = new SoundData(name);
148#endif 152#endif
149} 153}
150 154
151Sound::~Sound() 155Sound::~Sound()
152{ 156{
153#ifndef QT_NO_SOUND 157#ifndef QT_NO_SOUND
154 delete d; 158 delete d;
155#endif 159#endif
156} 160}
157 161
158void Sound::play() 162void Sound::play()
159{ 163{
160#ifndef QT_NO_SOUND 164#ifndef QT_NO_SOUND
161 d->killTimers();
162 d->playLoop(1); 165 d->playLoop(1);
163#endif 166#endif
164} 167}
165 168
166void Sound::playLoop() 169void Sound::playLoop()
167{ 170{
168#ifndef QT_NO_SOUND 171#ifndef QT_NO_SOUND
169 d->killTimers(); 172 d->killTimers();
170 d->playLoop(); 173 d->playLoop();
171#endif 174#endif
172} 175}
173 176
174void Sound::stop() 177void Sound::stop()
175{ 178{
176#ifndef QT_NO_SOUND 179#ifndef QT_NO_SOUND
177 d->killTimers(); 180 d->killTimers();
178#endif 181#endif
179} 182}
180 183
181bool Sound::isFinished() const 184bool Sound::isFinished() const
182{ 185{
183#ifndef QT_NO_SOUND 186#ifndef QT_NO_SOUND
184 return d->isFinished(); 187 return d->isFinished();
188#else
189 return true;
185#endif 190#endif
186} 191}
187 192
188void Sound::soundAlarm() 193void Sound::soundAlarm()
189{ 194{
190#ifndef QT_NO_COP 195#ifndef QT_NO_COP
191 QCopEnvelope( "QPE/TaskBar", "soundAlarm()" ); 196 QCopEnvelope( "QPE/TaskBar", "soundAlarm()" );
192#endif 197#endif
193} 198}