summaryrefslogtreecommitdiff
path: root/core/multimedia/opieplayer/loopcontrol.cpp
Side-by-side diff
Diffstat (limited to 'core/multimedia/opieplayer/loopcontrol.cpp') (more/less context) (show whitespace changes)
-rw-r--r--core/multimedia/opieplayer/loopcontrol.cpp39
1 files changed, 19 insertions, 20 deletions
diff --git a/core/multimedia/opieplayer/loopcontrol.cpp b/core/multimedia/opieplayer/loopcontrol.cpp
index dd466ed..90a7cc6 100644
--- a/core/multimedia/opieplayer/loopcontrol.cpp
+++ b/core/multimedia/opieplayer/loopcontrol.cpp
@@ -1,5 +1,5 @@
/**********************************************************************
-** Copyright (C) 2000-2002 Trolltech AS. All rights reserved.
+** Copyright (C) 2000 Trolltech AS. All rights reserved.
**
-** This file is part of the Qtopia Environment.
+** This file is part of Qtopia Environment.
**
@@ -19,8 +19,10 @@
**********************************************************************/
+// L.J.Potter added changes Fri 02-15-2002
+
+
#include <qpe/qpeapplication.h>
-#ifdef Q_WS_QWS
+#ifdef Q_WS_QWS
#include <qpe/qcopenvelope_qws.h>
#endif
-#include <qpe/mediaplayerplugininterface.h>
#include <stdio.h>
@@ -34,2 +36,3 @@
#include "audiodevice.h"
+#include "mediaplayerplugininterface.h"
#include "mediaplayerstate.h"
@@ -104,6 +107,4 @@ LoopControl::LoopControl( QObject *parent, const char *name )
pthread_attr_init(&audio_attr);
-
- if ( getuid() == 0 ) {
- printf("true, guid = %i\n", getuid());
-
+#define USE_REALTIME_AUDIO_THREAD
+#ifdef USE_REALTIME_AUDIO_THREAD
// Attempt to set it to real-time round robin
@@ -118,6 +119,3 @@ LoopControl::LoopControl( QObject *parent, const char *name )
}
- }
-// printf("false, guid = %i\n", getuid());
- usleep( 100 );
-
+#endif
pthread_create(&audio_tid, &audio_attr, (void * (*)(void *))startAudioThread, this);
@@ -236,3 +234,3 @@ void LoopControl::startAudio() {
long samplesRead = 0;
- mediaPlayerState->curDecoder()->audioReadSamples( (short*)audioBuffer, channels, 1024, samplesRead, stream );
+ bool readOk=mediaPlayerState->curDecoder()->audioReadSamples( (short*)audioBuffer, channels, 1024, samplesRead, stream );
long sampleWeShouldBeAt = long( playtime.elapsed() ) * freq / 1000;
@@ -242,3 +240,4 @@ void LoopControl::startAudio() {
usleep( (long)((double)sampleWaitTime * 1000000.0 / freq) );
- } else if ( sampleWaitTime <= -5000 ) {
+ }
+ else if ( sampleWaitTime <= -5000 ) {
qDebug("need to catch up by: %li (%i,%li)", -sampleWaitTime, currentSample, sampleWeShouldBeAt );
@@ -251,3 +250,3 @@ void LoopControl::startAudio() {
- moreAudio = audioSampleCounter <= total_audio_samples;
+ moreAudio = readOk && (audioSampleCounter <= total_audio_samples);
@@ -381,3 +380,3 @@ bool LoopControl::init( const QString& filename ) {
channels = mediaPlayerState->curDecoder()->audioChannels( astream );
- DecodeLoopDebug(( "channels = %d\n", channels ));
+ qDebug( "LC- channels = %d", channels );
@@ -386,3 +385,3 @@ bool LoopControl::init( const QString& filename ) {
- total_audio_samples += 1000;
+// total_audio_samples += 1000;
@@ -391,3 +390,3 @@ bool LoopControl::init( const QString& filename ) {
freq = mediaPlayerState->curDecoder()->audioFrequency( astream );
- DecodeLoopDebug(( "frequency = %d\n", freq ));
+ qDebug( "LC- frequency = %d", freq );
@@ -395,5 +394,5 @@ bool LoopControl::init( const QString& filename ) {
- static const int bytes_per_sample = 2; //16 bit
+ int bits_per_sample = mediaPlayerState->curDecoder()->audioBitsPerSample( astream);
- audioDevice = new AudioDevice( freq, channels, bytes_per_sample );
+ audioDevice = new AudioDevice( freq, channels, bits_per_sample);
audioBuffer = new char[ audioDevice->bufferSize() ];