author | llornkcor <llornkcor> | 2002-02-25 01:35:47 (UTC) |
---|---|---|
committer | llornkcor <llornkcor> | 2002-02-25 01:35:47 (UTC) |
commit | f180c1a5e8fc889ff1fb390d5cc94cdbc5085046 (patch) (side-by-side diff) | |
tree | 5e9ea6f1313f4c33d57fb266523c1cfbe0826756 | |
parent | c0446b55fc32b7fdea9f58db06e40da703f5e8ff (diff) | |
download | opie-f180c1a5e8fc889ff1fb390d5cc94cdbc5085046.zip opie-f180c1a5e8fc889ff1fb390d5cc94cdbc5085046.tar.gz opie-f180c1a5e8fc889ff1fb390d5cc94cdbc5085046.tar.bz2 |
fucked up- no workie.. back out
37 files changed, 381 insertions, 549 deletions
diff --git a/core/multimedia/opieplayer/Makefile.in b/core/multimedia/opieplayer/Makefile.in index 8d33fb4..1d2ff5e 100644 --- a/core/multimedia/opieplayer/Makefile.in +++ b/core/multimedia/opieplayer/Makefile.in @@ -138,4 +138,2 @@ main.o: main.cpp \ $(OPIEDIR)/include/qpe/qpeapplication.h \ - $(OPIEDIR)/include/qpedecoration_qws.h \ - $(OPIEDIR)/include/timestring.h \ mediaplayerstate.h \ @@ -149,4 +147,3 @@ main.o: main.cpp \ $(OPIEDIR)/include/qpe/qcom.h \ - $(OPIEDIR)/include/qpe/quuid.h \ - mediaplayerplugininterface.h + $(OPIEDIR)/include/qpe/quuid.h @@ -154,4 +151,3 @@ loopcontrol.o: loopcontrol.cpp \ $(OPIEDIR)/include/qpe/qpeapplication.h \ - $(OPIEDIR)/include/qpedecoration_qws.h \ - $(OPIEDIR)/include/timestring.h \ + $(OPIEDIR)/include/qpe/qcopenvelope_qws.h \ loopcontrol.h \ @@ -171,4 +167,2 @@ mediaplayerstate.o: mediaplayerstate.cpp \ $(OPIEDIR)/include/qpe/qpeapplication.h \ - $(OPIEDIR)/include/qpedecoration_qws.h \ - $(OPIEDIR)/include/timestring.h \ $(OPIEDIR)/include/qpe/qlibrary.h \ @@ -177,3 +171,2 @@ mediaplayerstate.o: mediaplayerstate.cpp \ $(OPIEDIR)/include/qpe/config.h \ - mediaplayerplugininterface.h \ mediaplayerstate.h \ @@ -185,5 +178,2 @@ videowidget.o: videowidget.cpp \ $(OPIEDIR)/include/qpe/resource.h \ - mediaplayerplugininterface.h \ - $(OPIEDIR)/include/qpe/qcom.h \ - $(OPIEDIR)/include/qpe/quuid.h \ videowidget.h \ @@ -200,7 +190,2 @@ playlistwidget.o: playlistwidget.cpp \ $(OPIEDIR)/include/qpe/fileselector.h \ - $(OPIEDIR)/include/filemanager.h \ - $(OPIEDIR)/include/applnk.h \ - $(OPIEDIR)/include/qpe/qpeapplication.h \ - $(OPIEDIR)/include/qpedecoration_qws.h \ - $(OPIEDIR)/include/timestring.h \ $(OPIEDIR)/include/qpe/applnk.h \ @@ -215,4 +200,2 @@ mediaplayer.o: mediaplayer.cpp \ $(OPIEDIR)/include/qpe/qpeapplication.h \ - $(OPIEDIR)/include/qpedecoration_qws.h \ - $(OPIEDIR)/include/timestring.h \ $(OPIEDIR)/include/qpe/qlibrary.h \ @@ -223,3 +206,2 @@ mediaplayer.o: mediaplayer.cpp \ mediaplayer.h \ - mediaplayerplugininterface.h \ playlistwidget.h \ @@ -233,6 +215,5 @@ audiodevice.o: audiodevice.cpp \ $(OPIEDIR)/include/qpe/qpeapplication.h \ - $(OPIEDIR)/include/qpedecoration_qws.h \ - $(OPIEDIR)/include/timestring.h \ $(OPIEDIR)/include/qpe/config.h \ - audiodevice.h + audiodevice.h \ + $(OPIEDIR)/include/qpe/qcopenvelope_qws.h @@ -262,4 +243,3 @@ moc_mediaplayer.o: moc_mediaplayer.cpp \ $(OPIEDIR)/include/qpe/qcom.h \ - $(OPIEDIR)/include/qpe/quuid.h \ - mediaplayerplugininterface.h + $(OPIEDIR)/include/qpe/quuid.h diff --git a/core/multimedia/opieplayer/audiodevice.cpp b/core/multimedia/opieplayer/audiodevice.cpp index 11fd9e8..7b3700a 100644 --- a/core/multimedia/opieplayer/audiodevice.cpp +++ b/core/multimedia/opieplayer/audiodevice.cpp @@ -1,5 +1,5 @@ /********************************************************************** -** Copyright (C) 2000 Trolltech AS. All rights reserved. +** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. ** -** This file is part of Qtopia Environment. +** This file is part of the Qtopia Environment. ** @@ -19,7 +19,4 @@ **********************************************************************/ -// L.J.Potter added better error code Fri 02-15-2002 14:37:47 - #include <stdlib.h> -#include <stdio.h> #include <qpe/qpeapplication.h> @@ -111,3 +108,3 @@ void AudioDevice::getVolume( unsigned int& leftVolume, unsigned int& rightVolume if ( waveOutGetVolume( handle, (LPDWORD)&volume ) ) -// qDebug( "get volume of audio device failed" ); + qDebug( "get volume of audio device failed" ); waveOutClose( handle ); @@ -118,7 +115,6 @@ void AudioDevice::getVolume( unsigned int& leftVolume, unsigned int& rightVolume if ( mixerHandle >= 0 ) { - if(ioctl( mixerHandle, MIXER_READ(0), &volume )==-1) - perror("ioctl(\"MIXER_READ\")"); + ioctl( mixerHandle, MIXER_READ(0), &volume ); close( mixerHandle ); } else - perror("open(\"/dev/mixer\")"); + qDebug( "get volume of audio device failed" ); leftVolume = ((volume & 0x00FF) << 16) / 101; @@ -153,3 +149,3 @@ void AudioDevice::setVolume( unsigned int leftVolume, unsigned int rightVolume, if ( waveOutSetVolume( handle, volume ) ) -// qDebug( "set volume of audio device failed" ); + qDebug( "set volume of audio device failed" ); waveOutClose( handle ); @@ -164,8 +160,6 @@ void AudioDevice::setVolume( unsigned int leftVolume, unsigned int rightVolume, if ( ( mixerHandle = open( "/dev/mixer", O_RDWR ) ) >= 0 ) { - if(ioctl( mixerHandle, MIXER_WRITE(0), &volume ) ==-1) - perror("ioctl(\"MIXER_WRITE\")"); + ioctl( mixerHandle, MIXER_WRITE(0), &volume ); close( mixerHandle ); } else - perror("open(\"/dev/mixer\")"); - + qDebug( "set volume of audio device failed" ); # else @@ -194,13 +188,41 @@ AudioDevice::AudioDevice( unsigned int f, unsigned int chs, unsigned int bps ) { d->bytesPerSample = bps; -// qDebug("%d",bps); - int format=0; - if( bps == 8) format = AFMT_U8; - else if( bps <= 0) format = AFMT_S16_LE; - else format = AFMT_S16_LE; -// qDebug("AD- freq %d, channels %d, b/sample %d, bitrate %d",f,chs,bps,format); connect( qApp, SIGNAL( volumeChanged(bool) ), this, SLOT( volumeChanged(bool) ) ); +#ifdef Q_OS_WIN32 + UINT result; + WAVEFORMATEX formatData; + formatData.cbSize = sizeof(WAVEFORMATEX); +/* + // Other possible formats windows supports + formatData.wFormatTag = WAVE_FORMAT_MPEG; + formatData.wFormatTag = WAVE_FORMAT_MPEGLAYER3; + formatData.wFormatTag = WAVE_FORMAT_ADPCM; +*/ + formatData.wFormatTag = WAVE_FORMAT_PCM; + formatData.nAvgBytesPerSec = bps * chs * f; + formatData.nBlockAlign = bps * chs; + formatData.nChannels = chs; + formatData.nSamplesPerSec = f; + formatData.wBitsPerSample = bps * 8; + // Open a waveform device for output + if (result = waveOutOpen((LPHWAVEOUT)&d->handle, WAVE_MAPPER, &formatData, 0L, 0L, CALLBACK_NULL)) { + QString errorMsg = "error opening audio device.\nReason: %i - "; + switch (result) { + case MMSYSERR_ALLOCATED: errorMsg += "Specified resource is already allocated."; break; + case MMSYSERR_BADDEVICEID: errorMsg += "Specified device identifier is out of range."; break; + case MMSYSERR_NODRIVER: errorMsg += "No device driver is present."; break; + case MMSYSERR_NOMEM: errorMsg += "Unable to allocate or lock memory."; break; + case WAVERR_BADFORMAT: errorMsg += "Attempted to open with an unsupported waveform-audio format."; break; + case WAVERR_SYNC: errorMsg += "The device is synchronous but waveOutOpen was called without using the WAVE_ALLOWSYNC flag."; break; + default: errorMsg += "Undefined error"; break; + } + qDebug( errorMsg, result ); + } + + d->bufferSize = sound_fragment_bytes; +#else int fragments = 0x10000 * 8 + sound_fragment_shift; + int format = AFMT_S16_LE; int capabilities = 0; @@ -211,3 +233,3 @@ AudioDevice::AudioDevice( unsigned int f, unsigned int chs, unsigned int bps ) { if ( ( d->handle = ::open( "/dev/dsp", O_WRONLY ) ) < 0 ) { - perror("open(\"/dev/dsp\") sending to /dev/null instead"); + qDebug( "error opening audio device /dev/dsp, sending data to /dev/null instead" ); d->handle = ::open( "/dev/null", O_WRONLY ); @@ -221,16 +243,9 @@ AudioDevice::AudioDevice( unsigned int f, unsigned int chs, unsigned int bps ) { - if(ioctl( d->handle, SNDCTL_DSP_GETCAPS, &capabilities )==-1) - perror("ioctl(\"SNDCTL_DSP_GETCAPS\")"); - if(ioctl( d->handle, SNDCTL_DSP_SETFRAGMENT, &fragments )==-1) - perror("ioctl(\"SNDCTL_DSP_SETFRAGMENT\")"); - if(ioctl( d->handle, SNDCTL_DSP_SETFMT, & format )==-1) - perror("ioctl(\"SNDCTL_DSP_SETFMT\")"); - qDebug("freq %d", d->frequency); - if(ioctl( d->handle, SNDCTL_DSP_SPEED, &d->frequency )==-1) - perror("ioctl(\"SNDCTL_DSP_SPEED\")"); - qDebug("channels %d",d->channels); + ioctl( d->handle, SNDCTL_DSP_GETCAPS, &capabilities ); + ioctl( d->handle, SNDCTL_DSP_SETFRAGMENT, &fragments ); + ioctl( d->handle, SNDCTL_DSP_SETFMT, &format ); + ioctl( d->handle, SNDCTL_DSP_SPEED, &d->frequency ); if ( ioctl( d->handle, SNDCTL_DSP_CHANNELS, &d->channels ) == -1 ) { d->channels = ( d->channels == 1 ) ? 2 : d->channels; - if(ioctl( d->handle, SNDCTL_DSP_CHANNELS, &d->channels )==-1) - perror("ioctl(\"SNDCTL_DSP_CHANNELS\")"); + ioctl( d->handle, SNDCTL_DSP_CHANNELS, &d->channels ); } @@ -248,2 +263,3 @@ AudioDevice::AudioDevice( unsigned int f, unsigned int chs, unsigned int bps ) { //if ( capabilities & DSP_CAP_MMAP ) qDebug( "Sound card can mmap" ); +#endif } diff --git a/core/multimedia/opieplayer/audiodevice.h b/core/multimedia/opieplayer/audiodevice.h index dcd79fe..ec70788 100644 --- a/core/multimedia/opieplayer/audiodevice.h +++ b/core/multimedia/opieplayer/audiodevice.h @@ -1,5 +1,5 @@ /********************************************************************** -** Copyright (C) 2000 Trolltech AS. All rights reserved. +** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. ** -** This file is part of Qtopia Environment. +** This file is part of the Qtopia Environment. ** @@ -19,5 +19,2 @@ **********************************************************************/ -// L.J.Potter added changes Fri 02-15-2002 - - #ifndef AUDIODEVICE_H @@ -25,5 +22,3 @@ - #include <qobject.h> -#include <sys/soundcard.h> @@ -36,3 +31,3 @@ class AudioDevice : public QObject { public: - AudioDevice( unsigned int freq = 44000, unsigned int channels = 2, unsigned int bytesPerSample = AFMT_S16_LE ); + AudioDevice( unsigned int freq = 44000, unsigned int channels = 2, unsigned int bytesPerSample = 2 ); ~AudioDevice(); diff --git a/core/multimedia/opieplayer/audiowidget.cpp b/core/multimedia/opieplayer/audiowidget.cpp index 0d88591..1e0757f 100644 --- a/core/multimedia/opieplayer/audiowidget.cpp +++ b/core/multimedia/opieplayer/audiowidget.cpp @@ -1,5 +1,5 @@ /********************************************************************** -** Copyright (C) 2000 Trolltech AS. All rights reserved. +** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. ** -** This file is part of Qtopia Environment. +** This file is part of the Qtopia Environment. ** @@ -28,3 +28,2 @@ - extern MediaPlayerState *mediaPlayerState; @@ -63,3 +62,3 @@ AudioWidget::AudioWidget(QWidget* parent, const char* name, WFlags f) : { - setCaption( tr("OpiePlayer") ); + setCaption( tr("MediaPlayer") ); setBackgroundPixmap( Resource::loadPixmap( "mpegplayer/metalFinish" ) ); diff --git a/core/multimedia/opieplayer/audiowidget.h b/core/multimedia/opieplayer/audiowidget.h index 4b82a91..95f5322 100644 --- a/core/multimedia/opieplayer/audiowidget.h +++ b/core/multimedia/opieplayer/audiowidget.h @@ -1,5 +1,5 @@ /********************************************************************** -** Copyright (C) 2000 Trolltech AS. All rights reserved. +** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. ** -** This file is part of Qtopia Environment. +** This file is part of the Qtopia Environment. ** @@ -22,3 +22,2 @@ - #include <qwidget.h> diff --git a/core/multimedia/opieplayer/libflash/libflashplugin.h b/core/multimedia/opieplayer/libflash/libflashplugin.h index a2f1c42..48b512f 100644 --- a/core/multimedia/opieplayer/libflash/libflashplugin.h +++ b/core/multimedia/opieplayer/libflash/libflashplugin.h @@ -26,4 +26,3 @@ #include "flash.h" -//#include <qpe/mediaplayerplugininterface.h> -#include "../mediaplayerplugininterface.h" +#include <qpe/mediaplayerplugininterface.h> @@ -51,3 +50,2 @@ public: int audioSamples( int /*stream*/ ) { return 1000000; } -int audioBitsPerSample(int) { return 0;} bool audioSetSample( long sample, int stream ); diff --git a/core/multimedia/opieplayer/libflash/libflashpluginimpl.h b/core/multimedia/opieplayer/libflash/libflashpluginimpl.h index cb8d959..33d8ad2 100644 --- a/core/multimedia/opieplayer/libflash/libflashpluginimpl.h +++ b/core/multimedia/opieplayer/libflash/libflashpluginimpl.h @@ -23,4 +23,3 @@ -//#include <qpe/mediaplayerplugininterface.h> -#include "../mediaplayerplugininterface.h" +#include <qpe/mediaplayerplugininterface.h> diff --git a/core/multimedia/opieplayer/libflash/swf.h b/core/multimedia/opieplayer/libflash/swf.h index 48986cc..5f5e4f7 100644 --- a/core/multimedia/opieplayer/libflash/swf.h +++ b/core/multimedia/opieplayer/libflash/swf.h @@ -210,3 +210,3 @@ extern "C" { //#include "zlib.h" -#include "/opt/qt-2.3.2-embedded/src/3rdparty/zlib/zlib.h" +#include "../src/3rdparty/zlib/zlib.h" }; diff --git a/core/multimedia/opieplayer/libmad/Makefile.in b/core/multimedia/opieplayer/libmad/Makefile.in index 552043c..e9f74e7 100644 --- a/core/multimedia/opieplayer/libmad/Makefile.in +++ b/core/multimedia/opieplayer/libmad/Makefile.in @@ -216,3 +216,2 @@ libmadplugin.o: libmadplugin.cpp \ libmadplugin.h \ - ../mediaplayerplugininterface.h \ mad.h @@ -221,3 +220,2 @@ libmadpluginimpl.o: libmadpluginimpl.cpp \ libmadplugin.h \ - ../mediaplayerplugininterface.h \ libmadpluginimpl.h diff --git a/core/multimedia/opieplayer/libmad/libmad.pro b/core/multimedia/opieplayer/libmad/libmad.pro index b54ca6b..6c40a15 100644 --- a/core/multimedia/opieplayer/libmad/libmad.pro +++ b/core/multimedia/opieplayer/libmad/libmad.pro @@ -10,4 +10,2 @@ INCLUDEPATH += $(OPIEDIR)/include .. DEPENDPATH += ../$(OPIEDIR)/include .. -TMAKE_CFLAGS += -DFPM_64BIT -TMAKE_CXXFLAGS += -DFPM_64BIT LIBS += -lqpe -lm diff --git a/core/multimedia/opieplayer/libmad/libmadplugin.h b/core/multimedia/opieplayer/libmad/libmadplugin.h index ff84c27..d85e0d4 100644 --- a/core/multimedia/opieplayer/libmad/libmadplugin.h +++ b/core/multimedia/opieplayer/libmad/libmadplugin.h @@ -22,6 +22,4 @@ - #include <qstring.h> -//#include <qpe/mediaplayerplugininterface.h> -#include "../mediaplayerplugininterface.h" +#include <qpe/mediaplayerplugininterface.h> @@ -56,3 +54,2 @@ public: bool audioSetSample( long sample, int stream ); - int audioBitsPerSample(int) {return 0;} long audioGetSample( int stream ); diff --git a/core/multimedia/opieplayer/libmad/libmadpluginimpl.h b/core/multimedia/opieplayer/libmad/libmadpluginimpl.h index 8ad4956..2c5ed3b 100644 --- a/core/multimedia/opieplayer/libmad/libmadpluginimpl.h +++ b/core/multimedia/opieplayer/libmad/libmadpluginimpl.h @@ -22,5 +22,3 @@ - -//#include <qpe/mediaplayerplugininterface.h> -#include "../mediaplayerplugininterface.h" +#include <qpe/mediaplayerplugininterface.h> @@ -45,2 +43,3 @@ public: virtual MediaPlayerEncoder *encoder(); + private: diff --git a/core/multimedia/opieplayer/libmad/version.c b/core/multimedia/opieplayer/libmad/version.c index 1baba26..413d54b 100644 --- a/core/multimedia/opieplayer/libmad/version.c +++ b/core/multimedia/opieplayer/libmad/version.c diff --git a/core/multimedia/opieplayer/libmpeg3/Makefile.in b/core/multimedia/opieplayer/libmpeg3/Makefile.in index d255e4f..154f85d 100644 --- a/core/multimedia/opieplayer/libmpeg3/Makefile.in +++ b/core/multimedia/opieplayer/libmpeg3/Makefile.in @@ -178,4 +178,3 @@ libmpeg3plugin.o: libmpeg3plugin.cpp \ video/mpeg3video.h \ - mpeg3protos.h \ - ../mediaplayerplugininterface.h + mpeg3protos.h @@ -195,3 +194,2 @@ libmpeg3pluginimpl.o: libmpeg3pluginimpl.cpp \ mpeg3protos.h \ - ../mediaplayerplugininterface.h \ libmpeg3pluginimpl.h @@ -418,3 +416,3 @@ audio/layer2.o: audio/layer2.c \ audio/layer3.o: audio/layer3.c \ - huffman.h \ + audio/huffman.h \ audio/mpeg3audio.h \ diff --git a/core/multimedia/opieplayer/libmpeg3/libmpeg3plugin.h b/core/multimedia/opieplayer/libmpeg3/libmpeg3plugin.h index 54f259b..e0eb930 100644 --- a/core/multimedia/opieplayer/libmpeg3/libmpeg3plugin.h +++ b/core/multimedia/opieplayer/libmpeg3/libmpeg3plugin.h @@ -22,3 +22,2 @@ - #include <qstring.h> @@ -27,4 +26,3 @@ #include "mpeg3protos.h" -//#include <qpe/mediaplayerplugininterface.h> -#include "../mediaplayerplugininterface.h" +#include <qpe/mediaplayerplugininterface.h> @@ -54,3 +52,2 @@ public: int audioFrequency( int stream ) { return file ? mpeg3_sample_rate( file, stream ) : 0; } - int audioBitsPerSample(int) { return 0;} int audioSamples( int stream ) { return file ? mpeg3_audio_samples( file, stream ) : 0; } diff --git a/core/multimedia/opieplayer/libmpeg3/libmpeg3pluginimpl.h b/core/multimedia/opieplayer/libmpeg3/libmpeg3pluginimpl.h index 89abf97..e9926f4 100644 --- a/core/multimedia/opieplayer/libmpeg3/libmpeg3pluginimpl.h +++ b/core/multimedia/opieplayer/libmpeg3/libmpeg3pluginimpl.h @@ -22,5 +22,3 @@ - -//#include <qpe/mediaplayerplugininterface.h> -#include "../mediaplayerplugininterface.h" +#include <qpe/mediaplayerplugininterface.h> diff --git a/core/multimedia/opieplayer/loopcontrol.cpp b/core/multimedia/opieplayer/loopcontrol.cpp index 1ae0059..dd466ed 100644 --- a/core/multimedia/opieplayer/loopcontrol.cpp +++ b/core/multimedia/opieplayer/loopcontrol.cpp @@ -1,5 +1,5 @@ /********************************************************************** -** Copyright (C) 2000 Trolltech AS. All rights reserved. +** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. ** -** This file is part of Qtopia Environment. +** This file is part of the Qtopia Environment. ** @@ -19,9 +19,8 @@ **********************************************************************/ -// L.J.Potter added changes Fri 02-15-2002 - #include <qpe/qpeapplication.h> - #ifdef Q_WS_QWS + #include <qpe/qcopenvelope_qws.h> #endif +#include <qpe/mediaplayerplugininterface.h> #include <stdio.h> @@ -35,3 +34,2 @@ #include "audiodevice.h" -#include "mediaplayerplugininterface.h" #include "mediaplayerstate.h" @@ -106,4 +104,6 @@ LoopControl::LoopControl( QObject *parent, const char *name ) pthread_attr_init(&audio_attr); -#define USE_REALTIME_AUDIO_THREAD -#ifdef USE_REALTIME_AUDIO_THREAD + + if ( getuid() == 0 ) { + printf("true, guid = %i\n", getuid()); + // Attempt to set it to real-time round robin @@ -118,3 +118,6 @@ LoopControl::LoopControl( QObject *parent, const char *name ) } -#endif + } +// printf("false, guid = %i\n", getuid()); + usleep( 100 ); + pthread_create(&audio_tid, &audio_attr, (void * (*)(void *))startAudioThread, this); @@ -233,3 +236,3 @@ void LoopControl::startAudio() { long samplesRead = 0; - bool readOk=mediaPlayerState->curDecoder()->audioReadSamples( (short*)audioBuffer, channels, 1024, samplesRead, stream ); + mediaPlayerState->curDecoder()->audioReadSamples( (short*)audioBuffer, channels, 1024, samplesRead, stream ); long sampleWeShouldBeAt = long( playtime.elapsed() ) * freq / 1000; @@ -239,4 +242,3 @@ 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 ); @@ -249,3 +251,3 @@ void LoopControl::startAudio() { - moreAudio = readOk && (audioSampleCounter <= total_audio_samples); + moreAudio = audioSampleCounter <= total_audio_samples; @@ -379,3 +381,3 @@ bool LoopControl::init( const QString& filename ) { channels = mediaPlayerState->curDecoder()->audioChannels( astream ); - qDebug( "LC- channels = %d", channels ); + DecodeLoopDebug(( "channels = %d\n", channels )); @@ -384,3 +386,3 @@ bool LoopControl::init( const QString& filename ) { -// total_audio_samples += 1000; + total_audio_samples += 1000; @@ -389,3 +391,3 @@ bool LoopControl::init( const QString& filename ) { freq = mediaPlayerState->curDecoder()->audioFrequency( astream ); - qDebug( "LC- frequency = %d", freq ); + DecodeLoopDebug(( "frequency = %d\n", freq )); @@ -393,5 +395,5 @@ bool LoopControl::init( const QString& filename ) { - int bits_per_sample = mediaPlayerState->curDecoder()->audioBitsPerSample( astream); + static const int bytes_per_sample = 2; //16 bit - audioDevice = new AudioDevice( freq, channels, bits_per_sample); + audioDevice = new AudioDevice( freq, channels, bytes_per_sample ); audioBuffer = new char[ audioDevice->bufferSize() ]; diff --git a/core/multimedia/opieplayer/loopcontrol.h b/core/multimedia/opieplayer/loopcontrol.h index fc7d316..3191259 100644 --- a/core/multimedia/opieplayer/loopcontrol.h +++ b/core/multimedia/opieplayer/loopcontrol.h @@ -1,5 +1,5 @@ /********************************************************************** -** Copyright (C) 2000 Trolltech AS. All rights reserved. +** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. ** -** This file is part of Qtopia Environment. +** This file is part of the Qtopia Environment. ** @@ -19,4 +19,2 @@ **********************************************************************/ -// L.J.Potter added changes Fri 02-15-2002 - #ifndef MPEGVIEW_H @@ -24,3 +22,2 @@ - #include <qwidget.h> diff --git a/core/multimedia/opieplayer/loopcontrol_threaded.cpp b/core/multimedia/opieplayer/loopcontrol_threaded.cpp index 2e49bb7..eb89b85 100644 --- a/core/multimedia/opieplayer/loopcontrol_threaded.cpp +++ b/core/multimedia/opieplayer/loopcontrol_threaded.cpp @@ -1,5 +1,5 @@ /********************************************************************** -** Copyright (C) 2000 Trolltech AS. All rights reserved. +** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. ** -** This file is part of Qtopia Environment. +** This file is part of the Qtopia Environment. ** @@ -22,2 +22,3 @@ + #include <qpe/qpeapplication.h> @@ -28,3 +29,3 @@ #endif -#include "mediaplayerplugininterface.h" +#include <qpe/mediaplayerplugininterface.h> #include <stdio.h> diff --git a/core/multimedia/opieplayer/loopcontrol_threaded.h b/core/multimedia/opieplayer/loopcontrol_threaded.h index 9a009d1..ced6ac8 100644 --- a/core/multimedia/opieplayer/loopcontrol_threaded.h +++ b/core/multimedia/opieplayer/loopcontrol_threaded.h @@ -1,5 +1,5 @@ /********************************************************************** -** Copyright (C) 2000 Trolltech AS. All rights reserved. +** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. ** -** This file is part of Qtopia Environment. +** This file is part of the Qtopia Environment. ** @@ -23,2 +23,3 @@ + #include <qwidget.h> diff --git a/core/multimedia/opieplayer/main.cpp b/core/multimedia/opieplayer/main.cpp index 9f7ef73..720a1ca 100644 --- a/core/multimedia/opieplayer/main.cpp +++ b/core/multimedia/opieplayer/main.cpp @@ -1,5 +1,5 @@ /********************************************************************** -** Copyright (C) 2000 Trolltech AS. All rights reserved. +** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. ** -** This file is part of Qtopia Environment. +** This file is part of the Qtopia Environment. ** @@ -27,3 +27,2 @@ - MediaPlayerState *mediaPlayerState; @@ -50,3 +49,3 @@ int main(int argc, char **argv) { - pl.setCaption( MediaPlayer::tr("Opie Player") ); + pl.setCaption( MediaPlayer::tr("Media Player") ); a.showMainDocumentWidget(&pl); diff --git a/core/multimedia/opieplayer/mediaplayer.cpp b/core/multimedia/opieplayer/mediaplayer.cpp index 3d8f76c..ce42c2c 100644 --- a/core/multimedia/opieplayer/mediaplayer.cpp +++ b/core/multimedia/opieplayer/mediaplayer.cpp @@ -1,5 +1,5 @@ /********************************************************************** -** Copyright (C) 2000 Trolltech AS. All rights reserved. +** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. ** -** This file is part of Qtopia Environment. +** This file is part of the Qtopia Environment. ** @@ -19,2 +19,3 @@ **********************************************************************/ + #include <qpe/qpeapplication.h> diff --git a/core/multimedia/opieplayer/mediaplayer.h b/core/multimedia/opieplayer/mediaplayer.h index 379d95c..73f8124 100644 --- a/core/multimedia/opieplayer/mediaplayer.h +++ b/core/multimedia/opieplayer/mediaplayer.h @@ -1,5 +1,5 @@ /********************************************************************** -** Copyright (C) 2000 Trolltech AS. All rights reserved. +** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. ** -** This file is part of Qtopia Environment. +** This file is part of the Qtopia Environment. ** @@ -22,3 +22,2 @@ - #include <qmainwindow.h> @@ -26,3 +25,3 @@ #include <qpe/qlibrary.h> -#include "mediaplayerplugininterface.h" +#include <qpe/mediaplayerplugininterface.h> diff --git a/core/multimedia/opieplayer/mediaplayerplugininterface.h b/core/multimedia/opieplayer/mediaplayerplugininterface.h index 339b2e4..aeeffde 100644 --- a/core/multimedia/opieplayer/mediaplayerplugininterface.h +++ b/core/multimedia/opieplayer/mediaplayerplugininterface.h @@ -22,2 +22,3 @@ + #include <qpe/qcom.h> @@ -63,3 +64,8 @@ public: virtual long audioGetSample( int stream ) = 0; +// virtual bool audioReadMonoSamples( short *samples, long samples, long& samplesRead, int stream ) = 0; +// virtual bool audioReadStereoSamples( short *samples, long samples, long& samplesRead, int stream ) = 0; virtual bool audioReadSamples( short *samples, int channels, long samples, long& samplesRead, int stream ) = 0; + // Libmpeg3 functions, perhaps good for reading an audio file with 5 channels or something! +// virtual bool audioReadSamples( short *samples, int channel, long samples, int stream ) = 0; +// virtual bool audioReReadSamples( short *samples, int channel, long samples, int stream ) = 0; @@ -93,5 +99,2 @@ public: - // File Properies - virtual long getPlayTime() { return -1; } - virtual int audioBitsPerSample( int stream ) = 0; }; diff --git a/core/multimedia/opieplayer/mediaplayerstate.cpp b/core/multimedia/opieplayer/mediaplayerstate.cpp index 2a6bca3..7e82166 100644 --- a/core/multimedia/opieplayer/mediaplayerstate.cpp +++ b/core/multimedia/opieplayer/mediaplayerstate.cpp @@ -1,5 +1,5 @@ /********************************************************************** -** Copyright (C) 2000 Trolltech AS. All rights reserved. +** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. ** -** This file is part of Qtopia Environment. +** This file is part of the Qtopia Environment. ** @@ -21,2 +21,3 @@ #include <qpe/qlibrary.h> +#include <qpe/mediaplayerplugininterface.h> #include <qpe/config.h> @@ -25,7 +26,4 @@ #include <qdir.h> -#include "mediaplayerplugininterface.h" #include "mediaplayerstate.h" - - #ifdef QT_NO_COMPONENT @@ -38,4 +36,4 @@ -//#define MediaPlayerDebug(x) qDebug x -#define MediaPlayerDebug(x) +#define MediaPlayerDebug(x) qDebug x +//#define MediaPlayerDebug(x) @@ -118,6 +116,2 @@ MediaPlayerDecoder *MediaPlayerState::libMpeg3Decoder() { -// ### hack to get true sample count -// MediaPlayerDecoder *MediaPlayerState::libWavDecoder() { -// return libwavdecoder; -// } diff --git a/core/multimedia/opieplayer/mediaplayerstate.h b/core/multimedia/opieplayer/mediaplayerstate.h index 1a23742..e82c263 100644 --- a/core/multimedia/opieplayer/mediaplayerstate.h +++ b/core/multimedia/opieplayer/mediaplayerstate.h @@ -1,5 +1,5 @@ /********************************************************************** -** Copyright (C) 2000 Trolltech AS. All rights reserved. +** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. ** -** This file is part of Qtopia Environment. +** This file is part of the Qtopia Environment. ** @@ -22,3 +22,2 @@ - #include <qobject.h> @@ -108,3 +107,2 @@ private: MediaPlayerDecoder *libmpeg3decoder; -// MediaPlayerDecoder *libwavdecoder; diff --git a/core/multimedia/opieplayer/playlistselection.cpp b/core/multimedia/opieplayer/playlistselection.cpp index f17ab6f..a82b594 100644 --- a/core/multimedia/opieplayer/playlistselection.cpp +++ b/core/multimedia/opieplayer/playlistselection.cpp @@ -1,5 +1,5 @@ /********************************************************************** -** Copyright (C) 2000 Trolltech AS. All rights reserved. +** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. ** -** This file is part of Qtopia Environment. +** This file is part of the Qtopia Environment. ** @@ -32,3 +32,2 @@ - class PlayListSelectionItem : public QListViewItem { diff --git a/core/multimedia/opieplayer/playlistselection.h b/core/multimedia/opieplayer/playlistselection.h index 6ce6bdc..22d3c74 100644 --- a/core/multimedia/opieplayer/playlistselection.h +++ b/core/multimedia/opieplayer/playlistselection.h @@ -1,5 +1,5 @@ /********************************************************************** -** Copyright (C) 2000 Trolltech AS. All rights reserved. +** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. ** -** This file is part of Qtopia Environment. +** This file is part of the Qtopia Environment. ** @@ -23,2 +23,3 @@ + #include <qlist.h> diff --git a/core/multimedia/opieplayer/playlistwidget.cpp b/core/multimedia/opieplayer/playlistwidget.cpp index 269aed8..0423e7a 100644 --- a/core/multimedia/opieplayer/playlistwidget.cpp +++ b/core/multimedia/opieplayer/playlistwidget.cpp @@ -1,5 +1,5 @@ /********************************************************************** -** Copyright (C) 2000 Trolltech AS. All rights reserved. +** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. ** -** This file is part of Qtopia Environment. +** This file is part of the Qtopia Environment. ** @@ -19,2 +19,3 @@ **********************************************************************/ + #include <qpe/qpemenubar.h> @@ -22,4 +23,2 @@ #include <qpe/fileselector.h> -#include <qpe/qpeapplication.h> - #include <qpe/applnk.h> @@ -38,6 +37,2 @@ #include <qtoolbutton.h> -#include <qtabwidget.h> -#include <qlistview.h> -#include <qpoint.h> -//#include <qtimer.h> @@ -49,5 +44,2 @@ -#define BUTTONS_ON_TOOLBAR -#define SIDE_BUTTONS -#define CAN_SAVE_LOAD_PLAYLISTS @@ -55,8 +47,11 @@ extern MediaPlayerState *mediaPlayerState; -// class myFileSelector { -// }; class PlayListWidgetPrivate { public: - QToolButton *tbPlay, *tbFull, *tbLoop, *tbScale, *tbShuffle, *tbAddToList, *tbRemoveFromList, *tbMoveUp, *tbMoveDown, *tbRemove; + QToolButton *tbPlay; + QToolButton *tbFull; + QToolButton *tbLoop; + QToolButton *tbScale; + QToolButton *tbShuffle; + QFrame *playListFrame; @@ -100,4 +95,2 @@ PlayListWidget::PlayListWidget( QWidget* parent, const char* name, WFlags fl ) d->current = NULL; -// menuTimer = new QTimer( this ,"menu timer"), -// connect( menuTimer, SIGNAL( timeout() ), SLOT( addSelected() ) ); @@ -105,3 +98,3 @@ PlayListWidget::PlayListWidget( QWidget* parent, const char* name, WFlags fl ) - setCaption( tr("OpiePlayer") ); + setCaption( tr("MediaPlayer") ); setIcon( Resource::loadPixmap( "MPEGPlayer" ) ); @@ -120,60 +113,31 @@ PlayListWidget::PlayListWidget( QWidget* parent, const char* name, WFlags fl ) bar->setLabel( tr( "Play Operations" ) ); - d->tbAddToList = new ToolButton( bar, tr( "Add to Playlist" ), "mpegplayer/add_to_playlist", - this , SLOT(addSelected()) ); - d->tbRemoveFromList = new ToolButton( bar, tr( "Remove from Playlist" ), "mpegplayer/remove_from_playlist", - this , SLOT(removeSelected()) ); - d->tbPlay = new ToolButton( bar, tr( "Play" ), "mpegplayer/play", - mediaPlayerState, SLOT(setPlaying(bool)), TRUE ); - - d->tbShuffle = new ToolButton( bar, tr( "Randomize" ), "mpegplayer/shuffle", - mediaPlayerState, SLOT(setShuffled(bool)), TRUE ); - d->tbLoop = new ToolButton( bar, tr( "Loop" ), "mpegplayer/loop", - mediaPlayerState, SLOT(setLooping(bool)), TRUE ); - -// d->tbFull = new ToolButton( bar, tr( "Fullscreen" ), "fullscreen", mediaPlayerState, SLOT(setFullscreen(bool)), TRUE ); -// d->tbScale = new ToolButton( bar, tr( "Scale" ), "mpegplayer/scale", mediaPlayerState, SLOT(setScaled(bool)), TRUE ); +#ifdef BUTTONS_ON_TOOLBAR + d->tbPlay = new ToolButton( bar, tr( "Play" ), "mpegplayer/play", mediaPlayerState, SLOT(setPlaying(bool)), TRUE ); + d->tbShuffle = new ToolButton( bar, tr( "Randomize" ), "mpegplayer/shuffle", mediaPlayerState, SLOT(setShuffled(bool)), TRUE ); +#endif + d->tbLoop = new ToolButton( bar, tr( "Loop" ), "mpegplayer/loop", mediaPlayerState, SLOT(setLooping(bool)), TRUE ); + d->tbFull = new ToolButton( bar, tr( "Fullscreen" ), "fullscreen", mediaPlayerState, SLOT(setFullscreen(bool)), TRUE ); + d->tbScale = new ToolButton( bar, tr( "Scale" ), "mpegplayer/scale", mediaPlayerState, SLOT(setScaled(bool)), TRUE ); QPopupMenu *pmPlayList = new QPopupMenu( this ); - menu->insertItem( tr( "File" ), pmPlayList ); + menu->insertItem( tr( "PlayList" ), pmPlayList ); + new MenuItem( pmPlayList, tr( "Toggle PlayList" ), mediaPlayerState, SLOT( togglePlaylist() ) ); new MenuItem( pmPlayList, tr( "Clear List" ), this, SLOT( clearList() ) ); - new MenuItem( pmPlayList, tr( "Add all audio files" ), this, SLOT( addAllMusicToList() ) ); + new MenuItem( pmPlayList, tr( "Add all music files" ), this, SLOT( addAllMusicToList() ) ); new MenuItem( pmPlayList, tr( "Add all video files" ), this, SLOT( addAllVideoToList() ) ); new MenuItem( pmPlayList, tr( "Add all files" ), this, SLOT( addAllToList() ) ); +#ifdef CAN_SAVE_LOAD_PLAYLISTS new MenuItem( pmPlayList, tr( "Save PlayList" ), this, SLOT( saveList() ) ); new MenuItem( pmPlayList, tr( "Load PlayList" ), this, SLOT( loadList() ) ); - - QPopupMenu *pmView = new QPopupMenu( this ); - menu->insertItem( tr( "View" ), pmView ); - - fullScreenButton = new QAction(tr("Full Screen"), Resource::loadPixmap("fullscreen"), QString::null, 0, this, 0); - connect( fullScreenButton, SIGNAL(activated()), mediaPlayerState, SLOT(toggleFullscreen()) ); - fullScreenButton->addTo(pmView); - scaleButton = new QAction(tr("Scale"), Resource::loadPixmap("mpegplayer/scale"), QString::null, 0, this, 0); - connect( scaleButton, SIGNAL(activated()), mediaPlayerState, SLOT(toggleScaled()) ); - scaleButton->addTo(pmView); +#endif QVBox *vbox5 = new QVBox( this ); vbox5->setBackgroundMode( PaletteButton ); - QVBox *vbox4 = new QVBox( vbox5 ); vbox4->setBackgroundMode( PaletteButton ); -// vbox4->setMargin(4); -// libString = new QLabel( tr(" Media Library"), vbox4 ); -// libString->setBackgroundMode( QButton::PaletteButton ); -// libString->setFont( QFont( "Helvetica", 8, QFont::Bold ) ); - - QHBox *hbox6 = new QHBox( vbox4 ); hbox6->setBackgroundMode( PaletteButton ); - - tabWidget = new QTabWidget( hbox6, "tabWidget" ); - tabWidget->setTabShape(QTabWidget::Triangular); - - - QWidget *pTab; - pTab = new QWidget( tabWidget, "pTab" ); - playlistView = new QListView( pTab, "Videoview" ); - playlistView->setMinimumSize(236,260); - tabWidget->insertTab( pTab,"Playlist"); // Add the playlist area - - QVBox *vbox3 = new QVBox( pTab ); vbox3->setBackgroundMode( PaletteButton ); + QVBox *vbox3 = new QVBox( vbox5 ); vbox3->setBackgroundMode( PaletteButton ); d->playListFrame = vbox3; - d->playListFrame ->setMinimumSize(235,260); + + QLabel *plString = new QLabel( tr(" PlayList"), vbox3 ); + plString->setBackgroundMode( QButton::PaletteButton ); + plString->setFont( QFont( "Helvetica", 8, QFont::Bold ) ); @@ -183,3 +147,6 @@ PlayListWidget::PlayListWidget( QWidget* parent, const char* name, WFlags fl ) +#ifndef BUTTONS_ON_TOOLBAR + d->tbPlay = new ToolButton( vbox1, tr( "Play" ), "mpegplayer/play", mediaPlayerState, SLOT(setPlaying(bool)), TRUE ); QVBox *stretch1 = new QVBox( vbox1 ); stretch1->setBackgroundMode( PaletteButton ); // add stretch +#endif new ToolButton( vbox1, tr( "Move Up" ), "mpegplayer/up", d->selectedFiles, SLOT(moveSelectedUp()) ); @@ -188,86 +155,25 @@ PlayListWidget::PlayListWidget( QWidget* parent, const char* name, WFlags fl ) QVBox *stretch2 = new QVBox( vbox1 ); stretch2->setBackgroundMode( PaletteButton ); // add stretch - - QWidget *aTab; - aTab = new QWidget( tabWidget, "aTab" ); - audioView = new QListView( aTab, "Audioview" ); - audioView->setMinimumSize(233,260); - audioView->addColumn( "Title",150); - audioView->addColumn("Size", 45); - audioView->addColumn("Media",35); - audioView->setColumnAlignment(1, Qt::AlignRight); - audioView->setColumnAlignment(2, Qt::AlignRight); - tabWidget->insertTab(aTab,"Audio"); -// audioView - Global::findDocuments(&files, "audio/*"); - QListIterator<DocLnk> dit( files.children() ); - QString storage; - for ( ; dit.current(); ++dit ) { - QListViewItem * newItem; - if(dit.current()->file().find("/mnt/cf") != -1 ) storage="CF"; - else if(dit.current()->file().find("/mnt/hda") != -1 ) storage="CF"; - else if(dit.current()->file().find("/mnt/card") != -1 ) storage="SD"; - else storage="RAM"; - if ( QFile( dit.current()->file()).exists() ) { - newItem= /*(void)*/ new QListViewItem( audioView, dit.current()->name(), QString::number( QFile( dit.current()->file()).size() ), storage); - newItem->setPixmap(0, Resource::loadPixmap( "mpegplayer/musicfile" )); - } - } -// videowidget - - QWidget *vTab; - vTab = new QWidget( tabWidget, "vTab" ); - videoView = new QListView( vTab, "Videoview" ); - videoView->setMinimumSize(233,260); - - videoView->addColumn("Title",150); - videoView->addColumn("Size",45); - videoView->addColumn("Media",35); - videoView->setColumnAlignment(1, Qt::AlignRight); - videoView->setColumnAlignment(2, Qt::AlignRight); - - tabWidget->insertTab( vTab,"Video"); - - Global::findDocuments(&vFiles, "video/*"); - QListIterator<DocLnk> Vdit( vFiles.children() ); - for ( ; Vdit.current(); ++Vdit ) { - if( Vdit.current()->file().find("/mnt/cf") != -1 ) storage="CF"; - else if( Vdit.current()->file().find("/mnt/hda") != -1 ) storage="CF"; - else if( Vdit.current()->file().find("/mnt/card") != -1 ) storage="SD"; - else storage="RAM"; - QListViewItem * newItem; - if ( QFile( Vdit.current()->file()).exists() ) { - newItem= /*(void)*/ new QListViewItem( videoView, Vdit.current()->name(), QString::number( QFile( Vdit.current()->file()).size() ), storage); - newItem->setPixmap(0, Resource::loadPixmap( "mpegplayer/videofile" )); - } - } - - -// d->tbPlay = new ToolButton( vbox1, tr( "Play" ), "mpegplayer/play", mediaPlayerState, SLOT(setPlaying(bool)), TRUE ); -// d->tbShuffle = new ToolButton( vbox1, tr( "Randomize" ), "mpegplayer/shuffle", mediaPlayerState, SLOT(setShuffled(bool)), TRUE ); +#ifndef BUTTONS_ON_TOOLBAR + d->tbShuffle = new ToolButton( vbox1, tr( "Randomize" ), "mpegplayer/shuffle", mediaPlayerState, SLOT(setShuffled(bool)), TRUE ); +#endif // add the library area + QVBox *vbox4 = new QVBox( vbox5 ); vbox4->setBackgroundMode( PaletteButton ); -// d->files->setBackgroundMode( PaletteButton ); -// QVBox *vbox7 = new QVBox( hbox6 ); vbox7->setBackgroundMode( PaletteButton ); - -// #ifdef SIDE_BUTTONS -// QVBox *stretch3 = new QVBox( vbox1 ); stretch3->setBackgroundMode( PaletteButton ); // add stretch -// #endif - QPEApplication::setStylusOperation( this, QPEApplication::RightOnHold ); - -// connect( audioView, SIGNAL( clicked( QListViewItem *) ), this, SLOT( playIt( QListViewItem *) ) ); -// connect( videoView, SIGNAL( clicked( QListViewItem *) ), this, SLOT( playIt( QListViewItem *) ) ); + QLabel *libString = new QLabel( tr(" Media Library"), vbox4 ); + libString->setBackgroundMode( QButton::PaletteButton ); + libString->setFont( QFont( "Helvetica", 8, QFont::Bold ) ); - connect( audioView, SIGNAL( clicked( QListViewItem *) ), this, SLOT( addToSelection( QListViewItem *) ) ); - connect( videoView, SIGNAL( clicked( QListViewItem *) ), this, SLOT( addToSelection( QListViewItem *) ) ); + QHBox *hbox6 = new QHBox( vbox4 ); hbox6->setBackgroundMode( PaletteButton ); + d->files = new FileSelector( "video/*;audio/*", hbox6, "Find Media Files", FALSE, FALSE ); + d->files->setBackgroundMode( PaletteButton ); + QVBox *vbox7 = new QVBox( hbox6 ); vbox7->setBackgroundMode( PaletteButton ); - connect( audioView, SIGNAL( rightButtonPressed( QListViewItem *, const QPoint&, int ) ), - this, SLOT( addToSelection( QListViewItem *, const QPoint&, int )) ); - connect( videoView, SIGNAL( rightButtonPressed( QListViewItem *, const QPoint&, int ) ), - this, SLOT( addToSelection( QListViewItem *, const QPoint&, int )) ); +#ifdef SIDE_BUTTONS + new ToolButton( vbox7, tr( "Add to Playlist" ), "mpegplayer/add_to_playlist", d->selectedFiles, SLOT(addSelected()) ); + new ToolButton( vbox7, tr( "Remove from Playlist" ), "mpegplayer/remove_from_playlist", d->selectedFiles, SLOT(removeSelected()) ); + QVBox *stretch3 = new QVBox( vbox1 ); stretch3->setBackgroundMode( PaletteButton ); // add stretch +#endif - connect( playlistView, SIGNAL( pressed( QListViewItem *) ), this, SLOT( playIt( QListViewItem *) ) ); - connect( tabWidget, SIGNAL (currentChanged(QWidget*)),this,SLOT(tabChanged(QWidget*))); - // connect( d->files, SIGNAL( fileSelected( const DocLnk & ) ), this, SLOT( addToSelection( const DocLnk & ) ) ); - // connect( d->files, SIGNAL( fileSelected( const DocLnk & ) ), this, SLOT( addToSelection( const DocLnk & ) ) ); + connect( d->files, SIGNAL( fileSelected( const DocLnk & ) ), this, SLOT( addToSelection( const DocLnk & ) ) ); connect( mediaPlayerState, SIGNAL( playingToggled( bool ) ), d->tbPlay, SLOT( setOn( bool ) ) ); @@ -275,7 +181,5 @@ PlayListWidget::PlayListWidget( QWidget* parent, const char* name, WFlags fl ) connect( mediaPlayerState, SIGNAL( shuffledToggled( bool ) ), d->tbShuffle, SLOT( setOn( bool ) ) ); - -// connect( mediaPlayerState, SIGNAL( fullscreenToggled( bool ) ), fullScreenButton, SLOT( setOn( bool ) ) ); -// connect( mediaPlayerState, SIGNAL( scaledToggled( bool ) ), scaleButton, SLOT( setEnabled( bool ) ) ); -// connect( mediaPlayerState, SIGNAL( fullscreenToggled( bool ) ), fullScreenButton, SLOT( setEnabled( bool ) ) ); - + connect( mediaPlayerState, SIGNAL( fullscreenToggled( bool ) ), d->tbFull, SLOT( setOn( bool ) ) ); + connect( mediaPlayerState, SIGNAL( scaledToggled( bool ) ), d->tbScale, SLOT( setOn( bool ) ) ); + connect( mediaPlayerState, SIGNAL( fullscreenToggled( bool ) ), d->tbScale, SLOT( setEnabled( bool ) ) ); connect( mediaPlayerState, SIGNAL( playlistToggled( bool ) ), this, SLOT( setPlaylist( bool ) ) ); @@ -302,3 +206,2 @@ PlayListWidget::~PlayListWidget() { void PlayListWidget::initializeStates() { - d->tbPlay->setOn( mediaPlayerState->playing() ); @@ -306,6 +209,6 @@ void PlayListWidget::initializeStates() { d->tbShuffle->setOn( mediaPlayerState->shuffled() ); -// d->tbFull->setOn( mediaPlayerState->fullscreen() ); -// d->tbScale->setOn( mediaPlayerState->scaled() ); -// d->tbScale->setEnabled( mediaPlayerState->fullscreen() ); -// setPlaylist( mediaPlayerState->playlist() ); + d->tbFull->setOn( mediaPlayerState->fullscreen() ); + d->tbScale->setOn( mediaPlayerState->scaled() ); + d->tbScale->setEnabled( mediaPlayerState->fullscreen() ); + setPlaylist( mediaPlayerState->playlist() ); } @@ -374,12 +277,2 @@ void PlayListWidget::addToSelection( const DocLnk& lnk ) { -void PlayListWidget::addToSelection( QListViewItem *it ,const QPoint & p, int index) { - qDebug("add"); -// d->selectedFiles->addToSelection( lnk ); - // } -// else -// mediaPlayerState->setPlaying( TRUE ); -// -} - - void PlayListWidget::clearList() { @@ -556,143 +449 @@ void PlayListWidget::setView( char view ) { -void PlayListWidget::addSelected() { -// QMessageBox::message("Note","Bozo the clown thinks\nthere's something actually here"); - int tabPage=tabWidget->currentPageIndex(); - switch (tabPage) { - case 0: //playlist - break; - case 1: { //audio - addToSelection( audioView->selectedItem() ); - } - break; - case 2: { // video - addToSelection( videoView->selectedItem() ); - } - break; - }; -} - -void PlayListWidget::removeSelected() { - d->selectedFiles->removeSelected( ); -} - - -void PlayListWidget::playIt( QListViewItem *it) { - d->setDocumentUsed = FALSE; - - if(it) { - qDebug("playit"); - int tabPage=tabWidget->currentPageIndex(); - switch (tabPage) { - case 1: { - DocLnkSet files; - QListIterator<DocLnk> dit( files.children() ); - for ( ; dit.current(); ++dit ) { - if( dit.current()->name() == it->text(0)) { - setDocument( dit.current()->name()); - } - } - } - break; - case 2: { - DocLnkSet vFiles; - QListIterator<DocLnk> dit( vFiles.children() ); - for ( ; dit.current(); ++dit ) { - qDebug(dit.current()->name()); - if( dit.current()->name() == it->text(0)) { - qDebug(it->text(0)); - setDocument( dit.current()->name()); - } - } - } - break; - }; - } -} - -void PlayListWidget::addToSelection( QListViewItem *it) { - d->setDocumentUsed = FALSE; - - if(it) { - qDebug("add to selection"); - int tabPage=tabWidget->currentPageIndex(); - switch (tabPage) { - case 1: { - QListIterator<DocLnk> dit( files.children() ); - for ( ; dit.current(); ++dit ) { - if( dit.current()->name() == it->text(0)) { - d->selectedFiles->addToSelection( **dit ); - } - } - } - break; - case 2: { - QListIterator<DocLnk> dit( vFiles.children() ); - for ( ; dit.current(); ++dit ) { - qDebug(dit.current()->name()); - if( dit.current()->name() == it->text(0)) { - d->selectedFiles->addToSelection( **dit ); - } - } - } - break; - case 0: - break; - }; - tabWidget->setCurrentPage(0); -// mediaPlayerState->setPlaying( TRUE ); - } -} - -void PlayListWidget::tabChanged(QWidget *widg) { - - int tabPage=tabWidget->currentPageIndex(); - switch (tabPage) { - case 0: - { - d->tbRemoveFromList->setEnabled(TRUE); - d->tbAddToList->setEnabled(FALSE); - } - break; - case 1: - { - d->tbRemoveFromList->setEnabled(FALSE); - d->tbAddToList->setEnabled(TRUE); - } - break; - case 2: - { - d->tbRemoveFromList->setEnabled(FALSE); - d->tbAddToList->setEnabled(TRUE); - } - break; - }; -} - -// void PlayListWidget::cancelMenuTimer() { -// if( menuTimer->isActive() ) -// menuTimer->stop(); -// } - -// void PlayListWidget::showFileMenu() { - -// } - -// void PlayListWidget::contentsMousePressEvent( QMouseEvent * e ) -// { -// // QListView::contentsMousePressEvent( e ); -// menuTimer->start( 750, TRUE ); -// } - - -// void PlayListWidget::contentsMouseReleaseEvent( QMouseEvent * e ) -// { -// // QListView::contentsMouseReleaseEvent( e ); -// menuTimer->stop(); -// } -// // void PlayListWidget::setFullScreen() { -// mediaPlayerState->toggleFullscreen( ); -// } - -// void PlayListWidget::setScaled() { -// mediaPlayerState->toggleScaled(); -// } diff --git a/core/multimedia/opieplayer/playlistwidget.h b/core/multimedia/opieplayer/playlistwidget.h index 6fe2211..819adb1 100644 --- a/core/multimedia/opieplayer/playlistwidget.h +++ b/core/multimedia/opieplayer/playlistwidget.h @@ -1,5 +1,5 @@ /********************************************************************** -** Copyright (C) 2000 Trolltech AS. All rights reserved. +** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. ** -** This file is part of Qtopia Environment. +** This file is part of the Qtopia Environment. ** @@ -22,7 +22,4 @@ - #include <qmainwindow.h> #include <qpe/applnk.h> -#include <qtabwidget.h> -/* #include <qtimer.h> */ @@ -31,7 +28,3 @@ class PlayListWidgetPrivate; class Config; -class QListViewItem; -class QListView; -class QPoint; -class QAction; -class QLabel; + @@ -42,8 +35,3 @@ public: ~PlayListWidget(); - QTabWidget * tabWidget; - QAction *fullScreenButton, *scaleButton; - DocLnkSet files; - DocLnkSet vFiles; - QListView *audioView, *videoView, *playlistView; - QLabel *libString; + // retrieve the current playlist entry (media file link) @@ -51,3 +39,2 @@ public: void useSelectedDocument(); -/* QTimer * menuTimer; */ @@ -56,4 +43,2 @@ public slots: void addToSelection( const DocLnk& ); // Add a media file to the playlist - void addToSelection( QListViewItem* ); // Add a media file to the playlist - void addToSelection( QListViewItem*, const QPoint&,int ); // Add a media file to the playlist void setActiveWindow(); // need to handle this to show the right view @@ -67,3 +52,2 @@ public slots: void loadList(); // Load a playlist - void playIt( QListViewItem *); bool first(); @@ -72,10 +56,2 @@ public slots: bool prev(); - void addSelected(); - void removeSelected(); - void tabChanged(QWidget*); -/* void setFullScreen(); */ -/* void setScaled(); */ -protected: -/* void contentsMousePressEvent( QMouseEvent * e ); */ -/* void contentsMouseReleaseEvent( QMouseEvent * e ); */ @@ -86,8 +62,2 @@ private: PlayListWidgetPrivate *d; // Private implementation data - -protected slots: -/* void cancelMenuTimer(); */ -/* void showFileMenu(); */ - - }; diff --git a/core/multimedia/opieplayer/videowidget.cpp b/core/multimedia/opieplayer/videowidget.cpp index 1f128a4..12ae4fd 100644 --- a/core/multimedia/opieplayer/videowidget.cpp +++ b/core/multimedia/opieplayer/videowidget.cpp @@ -1,5 +1,5 @@ /********************************************************************** -** Copyright (C) 2000 Trolltech AS. All rights reserved. +** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. ** -** This file is part of Qtopia Environment. +** This file is part of the Qtopia Environment. ** @@ -19,4 +19,5 @@ **********************************************************************/ + #include <qpe/resource.h> -#include "mediaplayerplugininterface.h" +#include <qpe/mediaplayerplugininterface.h> #include <qwidget.h> @@ -68,3 +69,3 @@ VideoWidget::VideoWidget(QWidget* parent, const char* name, WFlags f) : QWidget( parent, name, f ), scaledWidth( 0 ), scaledHeight( 0 ) { - setCaption( tr("OpiePlayer") ); + setCaption( tr("MediaPlayer") ); setBackgroundPixmap( Resource::loadPixmap( "mpegplayer/metalFinish" ) ); diff --git a/core/multimedia/opieplayer/videowidget.h b/core/multimedia/opieplayer/videowidget.h index 8b49091..cf13743 100644 --- a/core/multimedia/opieplayer/videowidget.h +++ b/core/multimedia/opieplayer/videowidget.h @@ -1,5 +1,5 @@ /********************************************************************** -** Copyright (C) 2000 Trolltech AS. All rights reserved. +** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. ** -** This file is part of Qtopia Environment. +** This file is part of the Qtopia Environment. ** @@ -25,3 +25,2 @@ - class QPixmap; diff --git a/core/multimedia/opieplayer/wavplugin/Makefile.in b/core/multimedia/opieplayer/wavplugin/Makefile.in index a46b925..bcbe7f2 100644 --- a/core/multimedia/opieplayer/wavplugin/Makefile.in +++ b/core/multimedia/opieplayer/wavplugin/Makefile.in @@ -102,4 +102,3 @@ REQUIRES= wavplugin.o: wavplugin.cpp \ - wavplugin.h \ - ../mediaplayerplugininterface.h + wavplugin.h @@ -107,3 +106,2 @@ wavpluginimpl.o: wavpluginimpl.cpp \ wavplugin.h \ - ../mediaplayerplugininterface.h \ wavpluginimpl.h diff --git a/core/multimedia/opieplayer/wavplugin/wavplugin.cpp b/core/multimedia/opieplayer/wavplugin/wavplugin.cpp index 7f63b3b..0be667f 100644 --- a/core/multimedia/opieplayer/wavplugin/wavplugin.cpp +++ b/core/multimedia/opieplayer/wavplugin/wavplugin.cpp @@ -19,4 +19,2 @@ **********************************************************************/ -// L.J.Potter added changes Fri 02-15-2002 - #include <stdio.h> @@ -29,3 +27,2 @@ - //#define debugMsg(a) qDebug(a) @@ -51,3 +48,3 @@ struct ChunkData { -const int sound_buffer_size = 512; // 4096; // you got to be kidding right? +const int sound_buffer_size = 4096; @@ -65,2 +62,6 @@ public: int samples; + int freq; + int chan; + int sampleRate; + int resolution; @@ -76,4 +77,4 @@ public: { + qDebug("add"); done = 0; - qApp->processEvents(); @@ -90,3 +91,3 @@ public: } - samples_due += chunkdata.samplesPerSec; + samples_due += 44100; while ( count && (samples_due > chunkdata.samplesPerSec) ) { @@ -100,2 +101,3 @@ public: } + return TRUE; @@ -104,2 +106,3 @@ public: bool initialise() { + qDebug("initialize"); if ( input == 0 ) @@ -140,3 +143,8 @@ public: } - } else { + } + + + + + else { // ignored chunk @@ -147,3 +155,3 @@ public: } // while - qDebug("bits %d", chunkdata.wBitsPerSample); + return TRUE; @@ -174,3 +182,3 @@ public: } - if ( chunkdata.wBitsPerSample == 8 ) { + if ( resolution == 8 ) { l = (data[out++] - 128) * 128; @@ -180,6 +188,6 @@ public: } - if ( chunkdata.channels == 1 ) { + if ( chan == 1 ) { r = l; } else { - if ( chunkdata.wBitsPerSample == 8 ) { + if ( resolution == 8 ) { r = (data[out++] - 128) * 128; @@ -193,2 +201,150 @@ public: +////////////////////////////////////////////////////// +int getWavSettings(int fd) +{ //this came from wmrecord + + char t1[4]; + unsigned long l1; + int found; + short fmt; + unsigned short ch, brate; + unsigned long srate; + + + /* First read in the RIFF identifier. If this is missing then the + * file is not a valid WAVE file. + */ + if (read(fd, t1, 4)<4) { + qDebug(" Could not read from sound file.\n"); + return -1; + } + if (strncmp(t1, "RIFF", 4)) { + qDebug(" not a valid WAV file.\n"); + return -1; + } + /* Advance the file pointer to the next relevant field. */ + lseek(fd, 4, SEEK_CUR); + /* Read in the WAVE identifier. */ + if (read(fd, t1, 4)<4) { + qDebug("Could not read from sound file.\n"); + return -1; + } + if (strncmp(t1, "WAVE", 4)) { + qDebug("not a valid WAV file.\n"); + return -1; + } + + /* Search through the file for the format chunk. If the end of the + * file is reached without finding the chunk, then the file is not a + * valid WAVE file. + */ + found = 0; + while (!found) { + if (read(fd, t1, 4)<4) { + qDebug("Could not read from sound file.\n"); + return -1; + } + if (strncmp(t1, "fmt ", 4)) { + /* Determine the length of the chunk found and skip to the next + * chunk. The chunk length is always stored in the four bytes + * following the chunk id. + */ + if (read(fd, &l1, 4)<4) { + qDebug("Could not read from sound file.\n"); + return -1; + } + lseek(fd, l1, SEEK_CUR); + } + else { + /* This is the format chunk, which stores the playback settings + * for the recording. + */ + /* Skip the length field, since we don't really need it. */ + lseek(fd, 4, SEEK_CUR); + /* Read in the format tag. If it has a value of 1, then there is + * no compression and we can attempt to play the file + * back. Otherwise, return. + */ + if (read(fd, &fmt, 2)<2) { + qDebug("Could not read from format chunk.\n"); + return -1; + } + if (fmt != 1) { + qDebug("Wave file contains compressed data." + " Unable to continue.\n"); + return -1; + } + /* Get the stereo mode. */ + if (read(fd, &ch, 2)<2) { + qDebug("Could not read from format chunk.\n"); + return -1; + } + else { + chan = ch; + qDebug("File has %d channels", chan); + } + /* Get the sample rate. */ + if (read(fd, &srate, 4)<4) { + qDebug("Could not read from format chunk.\n"); + return -1; + } + else { + sampleRate = srate; + qDebug("File has samplerate of %d", sampleRate); + } + /* Get the bit rate. This is at the end of the format chunk. */ + lseek(fd, 6, SEEK_CUR); + if (read(fd, &brate, 2)<2) { + qDebug("Could not read from format chunk.\n"); + return -1; + } + else { + resolution = brate; + qDebug("File has bitrate of %d", resolution); + } + + found++; + } + } + + /* Search through the file for the data chunk. If the end of the + * file is reached without finding the chunk, then the file is not a + * valid WAVE file. + */ + found = 0; + while (!found) { + if (read(fd, t1, 4)<4) { + qDebug("Could not read from sound file.\n"); + return -1; + } + if (strncmp(t1, "data", 4)) { + /* Determine the length of the chunk found and skip to the next + * chunk. The chunk length is always stored in the four bytes + * following the chunk id. + */ + if (read(fd, &l1, 4)<4) { + qDebug("Could not read from sound file.\n"); + return -1; + } + lseek(fd, l1, SEEK_CUR); + } + else { + /* This is the data chunk, which stores the recording. */ + /* Get the length field. */ + if (read(fd, &l1, 4)<4) { + qDebug("Could not read from sound file.\n"); + return -1; + } + else { + samples =l1; + qDebug("file has length of %d\nlasting %d seconds",l1, (( l1 / sampleRate) / chan) / 2 ); // ???? + return l1; + } + } + } + + return 0; +} + +////////////////////////////////////////////////// }; @@ -209,3 +365,3 @@ WavPlugin::~WavPlugin() { bool WavPlugin::isFileSupported( const QString& path ) { -// qDebug( "WavPlugin::isFileSupported" ); + debugMsg( "WavPlugin::isFileSupported" ); @@ -228,3 +384,3 @@ bool WavPlugin::isFileSupported( const QString& path ) { bool WavPlugin::open( const QString& path ) { -// qDebug( "WavPlugin::open" ); + qDebug( "WavPlugin::open" ); @@ -242,2 +398,3 @@ bool WavPlugin::open( const QString& path ) { +// d->getWavSettings( d->input.handle()); d->initialise(); @@ -249,3 +406,3 @@ bool WavPlugin::open( const QString& path ) { bool WavPlugin::close() { -// qDebug( "WavPlugin::close" ); + qDebug( "WavPlugin::close" ); @@ -259,3 +416,3 @@ bool WavPlugin::close() { bool WavPlugin::isOpen() { -// qDebug( "WavPlugin::isOpen" ); + qDebug( "WavPlugin::isOpen" ); return ( d->input != 0 ); @@ -265,3 +422,3 @@ bool WavPlugin::isOpen() { int WavPlugin::audioStreams() { -// qDebug( "WavPlugin::audioStreams" ); + qDebug( "WavPlugin::audioStreams" ); return 1; @@ -271,4 +428,4 @@ int WavPlugin::audioStreams() { int WavPlugin::audioChannels( int ) { -// qDebug( "WavPlugin::audioChannels" ); - return d->chunkdata.channels;// 2; // ### Always scale audio to stereo samples + debugMsg( "WavPlugin::audioChannels" ); + return d->chan; } @@ -277,4 +434,4 @@ int WavPlugin::audioChannels( int ) { int WavPlugin::audioFrequency( int ) { -// qDebug( "WavPlugin::audioFrequency %d", d->chunkdata.samplesPerSec ); - return d->chunkdata.samplesPerSec; //44100; // ### Always scale to frequency of 44100 + qDebug( "WavPlugin::audioFrequency" ); + return d->freq; } @@ -283,5 +440,6 @@ int WavPlugin::audioFrequency( int ) { int WavPlugin::audioSamples( int ) { -// qDebug( "WavPlugin::audioSamples" ); - return d->samples / d->chunkdata.channels/2; // ### Scaled samples will be made stereo, - // Therefore if source is mono we will double the number of samples + qDebug( "WavPlugin::audioSamples" ); + return d->samples; +// return d->samples * 2 / d->chunkdata.channels; // ### Scaled samples will be made stereo, +// // Therefore if source is mono we will double the number of samples } @@ -290,3 +448,3 @@ int WavPlugin::audioSamples( int ) { bool WavPlugin::audioSetSample( long, int ) { -// qDebug( "WavPlugin::audioSetSample" ); + qDebug( "WavPlugin::audioSetSample" ); return FALSE; @@ -296,3 +454,3 @@ bool WavPlugin::audioSetSample( long, int ) { long WavPlugin::audioGetSample( int ) { -// qDebug( "WavPlugin::audioGetSample" ); + qDebug( "WavPlugin::audioGetSample" ); return 0; @@ -326,3 +484,3 @@ bool WavPlugin::audioReadStereoSamples( short *output, long samples, long& sampl bool WavPlugin::audioReadSamples( short *output, int channels, long samples, long& samplesMade, int ) { -// qDebug( "WavPlugin::audioReadSamples" ); + qDebug( "WavPlugin::audioReadSamples" ); return d->add( output, samples, samplesMade, channels != 1 ); @@ -331,3 +489,3 @@ bool WavPlugin::audioReadSamples( short *output, int channels, long samples, lon double WavPlugin::getTime() { -// qDebug( "WavPlugin::getTime" ); + qDebug( "WavPlugin::getTime" ); return 0.0; @@ -335,7 +493,2 @@ double WavPlugin::getTime() { -int WavPlugin::audioBitsPerSample( int ) { -// qDebug( "WavPlugin::audioFormat %d", d->chunkdata.wBitsPerSample ); - return d->chunkdata.wBitsPerSample; // -} - diff --git a/core/multimedia/opieplayer/wavplugin/wavplugin.h b/core/multimedia/opieplayer/wavplugin/wavplugin.h index 6afd67e..19d1a8e 100644 --- a/core/multimedia/opieplayer/wavplugin/wavplugin.h +++ b/core/multimedia/opieplayer/wavplugin/wavplugin.h @@ -19,4 +19,2 @@ **********************************************************************/ -// L.J.Potter added changes Fri 02-15-2002 - #ifndef WAV_PLUGIN_H @@ -24,6 +22,5 @@ - #include <qstring.h> #include <qapplication.h> -#include "../mediaplayerplugininterface.h" +#include <qpe/mediaplayerplugininterface.h> @@ -56,3 +53,2 @@ public: int audioFrequency( int stream ); - int audioBitsPerSample( int stream ); int audioSamples( int stream ); diff --git a/core/multimedia/opieplayer/wavplugin/wavpluginimpl.cpp b/core/multimedia/opieplayer/wavplugin/wavpluginimpl.cpp index 1f7b85b..2923180 100644 --- a/core/multimedia/opieplayer/wavplugin/wavpluginimpl.cpp +++ b/core/multimedia/opieplayer/wavplugin/wavpluginimpl.cpp @@ -22,3 +22,2 @@ - WavPluginImpl::WavPluginImpl() diff --git a/core/multimedia/opieplayer/wavplugin/wavpluginimpl.h b/core/multimedia/opieplayer/wavplugin/wavpluginimpl.h index ee32f54..71f5f20 100644 --- a/core/multimedia/opieplayer/wavplugin/wavpluginimpl.h +++ b/core/multimedia/opieplayer/wavplugin/wavpluginimpl.h @@ -22,4 +22,3 @@ - -#include "../mediaplayerplugininterface.h" +#include <qpe/mediaplayerplugininterface.h> |