author | zecke <zecke> | 2003-10-07 12:53:39 (UTC) |
---|---|---|
committer | zecke <zecke> | 2003-10-07 12:53:39 (UTC) |
commit | e65d5c86b5fff521dfb94282a96606546bad9585 (patch) (unidiff) | |
tree | 7aee07687deec9dec91031a0a7f70fc802d47c06 | |
parent | 877f982ab6996b85870befffcacdef84a6700746 (diff) | |
download | opie-e65d5c86b5fff521dfb94282a96606546bad9585.zip opie-e65d5c86b5fff521dfb94282a96606546bad9585.tar.gz opie-e65d5c86b5fff521dfb94282a96606546bad9585.tar.bz2 |
-Kill stupid QCOP check
-introduce OPIE_SOUND_FRAGMENT_SHIFT
-USE_REALTIME_AUDIO_THREAD is now defined in custom.h
-rw-r--r-- | core/multimedia/opieplayer/audiodevice.cpp | 37 | ||||
-rw-r--r-- | core/multimedia/opieplayer/loopcontrol_threaded.cpp | 33 |
2 files changed, 35 insertions, 35 deletions
diff --git a/core/multimedia/opieplayer/audiodevice.cpp b/core/multimedia/opieplayer/audiodevice.cpp index 6a38fc9..d296d27 100644 --- a/core/multimedia/opieplayer/audiodevice.cpp +++ b/core/multimedia/opieplayer/audiodevice.cpp | |||
@@ -23,17 +23,18 @@ | |||
23 | #include <stdlib.h> | 23 | #include <stdlib.h> |
24 | #include <stdio.h> | 24 | #include <stdio.h> |
25 | #include <qpe/qpeapplication.h> | 25 | #include <qpe/qpeapplication.h> |
26 | #include <qpe/config.h> | 26 | #include <qpe/config.h> |
27 | #include <qpe/custom.h> | ||
27 | #include <qmessagebox.h> | 28 | #include <qmessagebox.h> |
28 | 29 | ||
29 | #include "audiodevice.h" | 30 | #include "audiodevice.h" |
30 | 31 | ||
31 | 32 | ||
32 | #include <errno.h> | 33 | #include <errno.h> |
33 | 34 | ||
34 | #if ( defined Q_WS_QWS || defined(_WS_QWS_) ) && !defined(QT_NO_COP) | 35 | #if !defined(QT_NO_COP) |
35 | #include "qpe/qcopenvelope_qws.h" | 36 | #include <qpe/qcopenvelope_qws.h> |
36 | #endif | 37 | #endif |
37 | 38 | ||
38 | #if defined(Q_WS_X11) || defined(Q_WS_QWS) | 39 | #if defined(Q_WS_X11) || defined(Q_WS_QWS) |
39 | #include <fcntl.h> | 40 | #include <fcntl.h> |
@@ -44,13 +45,13 @@ | |||
44 | #include <sys/types.h> | 45 | #include <sys/types.h> |
45 | #include <unistd.h> | 46 | #include <unistd.h> |
46 | #endif | 47 | #endif |
47 | 48 | ||
48 | # if defined(QT_QWS_IPAQ) | 49 | #ifdef OPIE_SOUND_FRAGMENT_SHIFT |
49 | static const int sound_fragment_shift = 14; | 50 | static const int sound_fragment_shift = OPIE_SOUND_FRAGMENT_SHIFT; |
50 | # else | 51 | #else |
51 | static const int sound_fragment_shift = 16; | 52 | static const int sound_fragment_shift = 16; |
52 | # endif | 53 | #endif |
53 | static const int sound_fragment_bytes = (1<<sound_fragment_shift); | 54 | static const int sound_fragment_bytes = (1<<sound_fragment_shift); |
54 | //#endif | 55 | //#endif |
55 | 56 | ||
56 | 57 | ||
@@ -144,20 +145,20 @@ void AudioDevice::setVolume( unsigned int leftVolume, unsigned int rightVolume, | |||
144 | cfg.writeEntry("VolumePercent",(int)rV); //qtopia is Volume | 145 | cfg.writeEntry("VolumePercent",(int)rV); //qtopia is Volume |
145 | # endif | 146 | # endif |
146 | 147 | ||
147 | //#endif | 148 | //#endif |
148 | // qDebug( "setting volume to: 0x%x", volume ); | 149 | // qDebug( "setting volume to: 0x%x", volume ); |
149 | #if ( defined Q_WS_QWS || defined(_WS_QWS_) ) && !defined(QT_NO_COP) | 150 | #if ( defined Q_WS_QWS || defined(_WS_QWS_) ) && !defined(QT_NO_COP) |
150 | // Send notification that the volume has changed | 151 | // Send notification that the volume has changed |
151 | QCopEnvelope( "QPE/System", "volumeChange(bool)" ) << muted; | 152 | QCopEnvelope( "QPE/System", "volumeChange(bool)" ) << muted; |
152 | #endif | 153 | #endif |
153 | } | 154 | } |
154 | 155 | ||
155 | 156 | ||
156 | 157 | ||
157 | AudioDevice::AudioDevice( unsigned int f, unsigned int chs, unsigned int bps ) { | 158 | AudioDevice::AudioDevice( unsigned int f, unsigned int chs, unsigned int bps ) { |
158 | // qDebug("creating new audio device"); | 159 | // qDebug("creating new audio device"); |
159 | // QCopEnvelope( "QPE/System", "volumeChange(bool)" ) << TRUE; | 160 | // QCopEnvelope( "QPE/System", "volumeChange(bool)" ) << TRUE; |
160 | d = new AudioDevicePrivate; | 161 | d = new AudioDevicePrivate; |
161 | d->frequency = f; | 162 | d->frequency = f; |
162 | d->channels = chs; | 163 | d->channels = chs; |
163 | d->bytesPerSample = bps; | 164 | d->bytesPerSample = bps; |
@@ -171,9 +172,9 @@ AudioDevice::AudioDevice( unsigned int f, unsigned int chs, unsigned int bps ) { | |||
171 | 172 | ||
172 | int fragments = 0x10000 * 8 + sound_fragment_shift; | 173 | int fragments = 0x10000 * 8 + sound_fragment_shift; |
173 | int capabilities = 0; | 174 | int capabilities = 0; |
174 | 175 | ||
175 | 176 | ||
176 | #ifdef KEEP_DEVICE_OPEN | 177 | #ifdef KEEP_DEVICE_OPEN |
177 | if ( AudioDevicePrivate::dspFd == 0 ) { | 178 | if ( AudioDevicePrivate::dspFd == 0 ) { |
178 | #endif | 179 | #endif |
179 | #ifdef QT_QWS_DEVFS | 180 | #ifdef QT_QWS_DEVFS |
@@ -186,9 +187,9 @@ AudioDevice::AudioDevice( unsigned int f, unsigned int chs, unsigned int bps ) { | |||
186 | QString errorMsg=tr("Somethin's wrong with\nyour sound device.\nopen(\"/dev/dsp\")\n")+(QString)strerror(errno)+tr("\n\nClosing player now."); | 187 | QString errorMsg=tr("Somethin's wrong with\nyour sound device.\nopen(\"/dev/dsp\")\n")+(QString)strerror(errno)+tr("\n\nClosing player now."); |
187 | QMessageBox::critical(0, "Vmemo", errorMsg, tr("Abort")); | 188 | QMessageBox::critical(0, "Vmemo", errorMsg, tr("Abort")); |
188 | exit(-1); //harsh? | 189 | exit(-1); //harsh? |
189 | } | 190 | } |
190 | #ifdef KEEP_DEVICE_OPEN | 191 | #ifdef KEEP_DEVICE_OPEN |
191 | AudioDevicePrivate::dspFd = d->handle; | 192 | AudioDevicePrivate::dspFd = d->handle; |
192 | } else { | 193 | } else { |
193 | d->handle = AudioDevicePrivate::dspFd; | 194 | d->handle = AudioDevicePrivate::dspFd; |
194 | } | 195 | } |
@@ -208,36 +209,36 @@ AudioDevice::AudioDevice( unsigned int f, unsigned int chs, unsigned int bps ) { | |||
208 | d->channels = ( d->channels == 1 ) ? 2 : d->channels; | 209 | d->channels = ( d->channels == 1 ) ? 2 : d->channels; |
209 | if(ioctl( d->handle, SNDCTL_DSP_CHANNELS, &d->channels )==-1) | 210 | if(ioctl( d->handle, SNDCTL_DSP_CHANNELS, &d->channels )==-1) |
210 | perror("ioctl(\"SNDCTL_DSP_CHANNELS\")"); | 211 | perror("ioctl(\"SNDCTL_DSP_CHANNELS\")"); |
211 | } | 212 | } |
212 | // QCopEnvelope( "QPE/System", "volumeChange(bool)" ) << FALSE; | 213 | // QCopEnvelope( "QPE/System", "volumeChange(bool)" ) << FALSE; |
213 | 214 | ||
214 | d->bufferSize = sound_fragment_bytes; | 215 | d->bufferSize = sound_fragment_bytes; |
215 | d->unwrittenBuffer = new char[d->bufferSize]; | 216 | d->unwrittenBuffer = new char[d->bufferSize]; |
216 | d->unwritten = 0; | 217 | d->unwritten = 0; |
217 | d->can_GETOSPACE = TRUE; // until we find otherwise | 218 | d->can_GETOSPACE = TRUE; // until we find otherwise |
218 | 219 | ||
219 | //if ( chs != d->channels ) qDebug( "Wanted %d, got %d channels", chs, d->channels ); | 220 | //if ( chs != d->channels ) qDebug( "Wanted %d, got %d channels", chs, d->channels ); |
220 | //if ( f != d->frequency ) qDebug( "wanted %dHz, got %dHz", f, d->frequency ); | 221 | //if ( f != d->frequency ) qDebug( "wanted %dHz, got %dHz", f, d->frequency ); |
221 | //if ( capabilities & DSP_CAP_BATCH ) qDebug( "Sound card has local buffer" ); | 222 | //if ( capabilities & DSP_CAP_BATCH ) qDebug( "Sound card has local buffer" ); |
222 | //if ( capabilities & DSP_CAP_REALTIME )qDebug( "Sound card has realtime sync" ); | 223 | //if ( capabilities & DSP_CAP_REALTIME )qDebug( "Sound card has realtime sync" ); |
223 | //if ( capabilities & DSP_CAP_TRIGGER ) qDebug( "Sound card has precise trigger" ); | 224 | //if ( capabilities & DSP_CAP_TRIGGER ) qDebug( "Sound card has precise trigger" ); |
224 | //if ( capabilities & DSP_CAP_MMAP ) qDebug( "Sound card can mmap" ); | 225 | //if ( capabilities & DSP_CAP_MMAP ) qDebug( "Sound card can mmap" ); |
225 | 226 | ||
226 | } | 227 | } |
227 | 228 | ||
228 | 229 | ||
229 | AudioDevice::~AudioDevice() { | 230 | AudioDevice::~AudioDevice() { |
230 | // qDebug("destryo audiodevice"); | 231 | // qDebug("destryo audiodevice"); |
231 | // QCopEnvelope( "QPE/System", "volumeChange(bool)" ) << TRUE; | 232 | // QCopEnvelope( "QPE/System", "volumeChange(bool)" ) << TRUE; |
232 | 233 | ||
233 | # ifndef KEEP_DEVICE_OPEN | 234 | # ifndef KEEP_DEVICE_OPEN |
234 | close( d->handle ); // Now it should be safe to shut the handle | 235 | close( d->handle ); // Now it should be safe to shut the handle |
235 | # endif | 236 | # endif |
236 | delete d->unwrittenBuffer; | 237 | delete d->unwrittenBuffer; |
237 | delete d; | 238 | delete d; |
238 | // QCopEnvelope( "QPE/System", "volumeChange(bool)" ) << FALSE; | 239 | // QCopEnvelope( "QPE/System", "volumeChange(bool)" ) << FALSE; |
239 | 240 | ||
240 | } | 241 | } |
241 | 242 | ||
242 | 243 | ||
243 | void AudioDevice::volumeChanged( bool muted ) | 244 | void AudioDevice::volumeChanged( bool muted ) |
diff --git a/core/multimedia/opieplayer/loopcontrol_threaded.cpp b/core/multimedia/opieplayer/loopcontrol_threaded.cpp index 364e77b..3796549 100644 --- a/core/multimedia/opieplayer/loopcontrol_threaded.cpp +++ b/core/multimedia/opieplayer/loopcontrol_threaded.cpp | |||
@@ -19,11 +19,12 @@ | |||
19 | **********************************************************************/ | 19 | **********************************************************************/ |
20 | #define _REENTRANT | 20 | #define _REENTRANT |
21 | 21 | ||
22 | #include <qpe/qpeapplication.h> | 22 | #include <qpe/qpeapplication.h> |
23 | #include <qpe/custom.h> | ||
23 | #include <qimage.h> | 24 | #include <qimage.h> |
24 | #include <qpainter.h> | 25 | #include <qpainter.h> |
25 | #ifdef Q_WS_QWS | 26 | #if !defined(QT_NO_COP) |
26 | #include <qpe/qcopenvelope_qws.h> | 27 | #include <qpe/qcopenvelope_qws.h> |
27 | #endif | 28 | #endif |
28 | #include "mediaplayerplugininterface.h" | 29 | #include "mediaplayerplugininterface.h" |
29 | #include <stdio.h> | 30 | #include <stdio.h> |
@@ -38,11 +39,9 @@ | |||
38 | #include "audiowidget.h" | 39 | #include "audiowidget.h" |
39 | #include "mediaplayerstate.h" | 40 | #include "mediaplayerstate.h" |
40 | 41 | ||
41 | 42 | ||
42 | #if defined(QT_QWS_SL5XXX) || defined(QT_QWS_IPAQ) || defined(QT_QWS_RAMSES) | 43 | |
43 | #define USE_REALTIME_AUDIO_THREAD | ||
44 | #endif | ||
45 | 44 | ||
46 | 45 | ||
47 | extern VideoWidget *videoUI; // now only needed to tell it to play a frame | 46 | extern VideoWidget *videoUI; // now only needed to tell it to play a frame |
48 | extern MediaPlayerState *mediaPlayerState; | 47 | extern MediaPlayerState *mediaPlayerState; |
@@ -255,9 +254,9 @@ void LoopControl::startVideo() { | |||
255 | /* | 254 | /* |
256 | videoMutex->lock(); | 255 | videoMutex->lock(); |
257 | current_frame = int( (double)playtime.elapsed() * (double)framerate / 1000.0 ); | 256 | current_frame = int( (double)playtime.elapsed() * (double)framerate / 1000.0 ); |
258 | //current_frame = ( clock() - begin ) * (double)framerate / CLOCKS_PER_SEC; | 257 | //current_frame = ( clock() - begin ) * (double)framerate / CLOCKS_PER_SEC; |
259 | 258 | ||
260 | // Sync to Audio | 259 | // Sync to Audio |
261 | // current_frame = (long)((double)(audioSampleCounter - 1000) * framerate / (double)freq); | 260 | // current_frame = (long)((double)(audioSampleCounter - 1000) * framerate / (double)freq); |
262 | 261 | ||
263 | long mSecsToNextFrame = 0; | 262 | long mSecsToNextFrame = 0; |
@@ -311,27 +310,27 @@ void LoopControl::startVideo() { | |||
311 | // qDebug("skipped a frame"); | 310 | // qDebug("skipped a frame"); |
312 | mediaPlayerState->curDecoder()->videoSetFrame( current_frame, stream ); | 311 | mediaPlayerState->curDecoder()->videoSetFrame( current_frame, stream ); |
313 | } | 312 | } |
314 | prev_frame = current_frame; | 313 | prev_frame = current_frame; |
315 | if ( moreVideo = videoUI->playVideo() ) | 314 | if ( moreVideo = videoUI->playVideo() ) |
316 | emitChangePos = TRUE; | 315 | emitChangePos = TRUE; |
317 | videoMutex->unlock(); | 316 | videoMutex->unlock(); |
318 | } | 317 | } |
319 | 318 | ||
320 | } else | 319 | } else |
321 | moreVideo = FALSE; | 320 | moreVideo = FALSE; |
322 | 321 | ||
323 | } | 322 | } |
324 | 323 | ||
325 | if ( !moreVideo && !moreAudio ) | 324 | if ( !moreVideo && !moreAudio ) |
326 | emitPlayFinished = TRUE; | 325 | emitPlayFinished = TRUE; |
327 | 326 | ||
328 | pthread_exit(NULL); | 327 | pthread_exit(NULL); |
329 | } | 328 | } |
330 | 329 | ||
331 | void LoopControl::startAudio() { | 330 | void LoopControl::startAudio() { |
332 | moreAudio = TRUE; | 331 | moreAudio = TRUE; |
333 | 332 | ||
334 | while ( moreAudio ) { | 333 | while ( moreAudio ) { |
335 | 334 | ||
336 | if ( !isMuted && mediaPlayerState->curDecoder() && hasAudioChannel ) { | 335 | if ( !isMuted && mediaPlayerState->curDecoder() && hasAudioChannel ) { |
337 | 336 | ||
@@ -403,9 +402,9 @@ void LoopControl::startAudio() { | |||
403 | } | 402 | } |
404 | 403 | ||
405 | // qDebug( "End of file" ); | 404 | // qDebug( "End of file" ); |
406 | 405 | ||
407 | if ( !moreVideo && !moreAudio ) | 406 | if ( !moreVideo && !moreAudio ) |
408 | emitPlayFinished = TRUE; | 407 | emitPlayFinished = TRUE; |
409 | 408 | ||
410 | pthread_exit(NULL); | 409 | pthread_exit(NULL); |
411 | } | 410 | } |
@@ -483,9 +482,9 @@ void LoopControl::setPaused( bool pause ) { | |||
483 | void LoopControl::stop( bool willPlayAgainShortly ) { | 482 | void LoopControl::stop( bool willPlayAgainShortly ) { |
484 | 483 | ||
485 | #if defined(Q_WS_QWS) && !defined(QT_NO_COP) | 484 | #if defined(Q_WS_QWS) && !defined(QT_NO_COP) |
486 | if ( !willPlayAgainShortly && disabledSuspendScreenSaver ) { | 485 | if ( !willPlayAgainShortly && disabledSuspendScreenSaver ) { |
487 | disabledSuspendScreenSaver = FALSE; | 486 | disabledSuspendScreenSaver = FALSE; |
488 | // Re-enable the suspend mode | 487 | // Re-enable the suspend mode |
489 | QCopEnvelope("QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::Enable; | 488 | QCopEnvelope("QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::Enable; |
490 | } | 489 | } |
491 | #endif | 490 | #endif |
@@ -511,11 +510,11 @@ bool LoopControl::init( const QString& filename ) { | |||
511 | stop(); | 510 | stop(); |
512 | fileName = filename; | 511 | fileName = filename; |
513 | stream = 0; // only play stream 0 for now | 512 | stream = 0; // only play stream 0 for now |
514 | current_frame = total_video_frames = total_audio_samples = 0; | 513 | current_frame = total_video_frames = total_audio_samples = 0; |
515 | 514 | ||
516 | // qDebug( "Using the %s decoder", mediaPlayerState->curDecoder()->pluginName() ); | 515 | // qDebug( "Using the %s decoder", mediaPlayerState->curDecoder()->pluginName() ); |
517 | 516 | ||
518 | // ### Hack to use libmpeg3plugin to get the number of audio samples if we are using the libmad plugin | 517 | // ### Hack to use libmpeg3plugin to get the number of audio samples if we are using the libmad plugin |
519 | if ( mediaPlayerState->curDecoder()->pluginName() == QString("LibMadPlugin") ) { | 518 | if ( mediaPlayerState->curDecoder()->pluginName() == QString("LibMadPlugin") ) { |
520 | if ( mediaPlayerState->libMpeg3Decoder() && mediaPlayerState->libMpeg3Decoder()->open( filename ) ) { | 519 | if ( mediaPlayerState->libMpeg3Decoder() && mediaPlayerState->libMpeg3Decoder()->open( filename ) ) { |
521 | total_audio_samples = mediaPlayerState->libMpeg3Decoder()->audioSamples( 0 ); | 520 | total_audio_samples = mediaPlayerState->libMpeg3Decoder()->audioSamples( 0 ); |
@@ -533,14 +532,14 @@ bool LoopControl::init( const QString& filename ) { | |||
533 | int astream = 0; | 532 | int astream = 0; |
534 | 533 | ||
535 | channels = mediaPlayerState->curDecoder()->audioChannels( astream ); | 534 | channels = mediaPlayerState->curDecoder()->audioChannels( astream ); |
536 | DecodeLoopDebug(( "channels = %d\n", channels )); | 535 | DecodeLoopDebug(( "channels = %d\n", channels )); |
537 | 536 | ||
538 | if ( !total_audio_samples ) | 537 | if ( !total_audio_samples ) |
539 | total_audio_samples = mediaPlayerState->curDecoder()->audioSamples( astream ); | 538 | total_audio_samples = mediaPlayerState->curDecoder()->audioSamples( astream ); |
540 | 539 | ||
541 | mediaPlayerState->setLength( total_audio_samples ); | 540 | mediaPlayerState->setLength( total_audio_samples ); |
542 | 541 | ||
543 | freq = mediaPlayerState->curDecoder()->audioFrequency( astream ); | 542 | freq = mediaPlayerState->curDecoder()->audioFrequency( astream ); |
544 | DecodeLoopDebug(( "frequency = %d\n", freq )); | 543 | DecodeLoopDebug(( "frequency = %d\n", freq )); |
545 | 544 | ||
546 | audioSampleCounter = 0; | 545 | audioSampleCounter = 0; |
@@ -593,11 +592,11 @@ bool LoopControl::init( const QString& filename ) { | |||
593 | void LoopControl::play() { | 592 | void LoopControl::play() { |
594 | 593 | ||
595 | #if defined(Q_WS_QWS) && !defined(QT_NO_COP) | 594 | #if defined(Q_WS_QWS) && !defined(QT_NO_COP) |
596 | if ( !disabledSuspendScreenSaver ) { | 595 | if ( !disabledSuspendScreenSaver ) { |
597 | disabledSuspendScreenSaver = TRUE; | 596 | disabledSuspendScreenSaver = TRUE; |
598 | // Stop the screen from blanking and power saving state | 597 | // Stop the screen from blanking and power saving state |
599 | QCopEnvelope("QPE/System", "setScreenSaverMode(int)" ) | 598 | QCopEnvelope("QPE/System", "setScreenSaverMode(int)" ) |
600 | << ( hasVideoChannel ? QPEApplication::Disable : QPEApplication::DisableSuspend ); | 599 | << ( hasVideoChannel ? QPEApplication::Disable : QPEApplication::DisableSuspend ); |
601 | } | 600 | } |
602 | #endif | 601 | #endif |
603 | 602 | ||