summaryrefslogtreecommitdiff
path: root/core
authorbipolar <bipolar>2002-03-03 17:13:17 (UTC)
committer bipolar <bipolar>2002-03-03 17:13:17 (UTC)
commita99347380a9006ec81a9dba2340d6aaab690a86e (patch) (unidiff)
tree73fdc2eff476fba2113172ed881dd64a4031def6 /core
parent0e245156b28b70be5cd98a58a9256fe5e2739562 (diff)
downloadopie-a99347380a9006ec81a9dba2340d6aaab690a86e.zip
opie-a99347380a9006ec81a9dba2340d6aaab690a86e.tar.gz
opie-a99347380a9006ec81a9dba2340d6aaab690a86e.tar.bz2
commited by ljp (llornkcor) reverted to qpe's interface for compatibility. Added playlist features:
save, remove, and have different ones. Uncommented code for background image and added opielogo.
Diffstat (limited to 'core') (more/less context) (ignore whitespace changes)
-rw-r--r--core/multimedia/opieplayer/audiodevice.cpp7
-rw-r--r--core/multimedia/opieplayer/inputDialog.cpp45
-rw-r--r--core/multimedia/opieplayer/inputDialog.h31
-rw-r--r--core/multimedia/opieplayer/libmad/libmadplugin.h6
-rw-r--r--core/multimedia/opieplayer/libmad/libmadpluginimpl.cpp8
-rw-r--r--core/multimedia/opieplayer/libmad/libmadpluginimpl.h4
-rw-r--r--core/multimedia/opieplayer/libmpeg3/libmpeg3plugin.h23
-rw-r--r--core/multimedia/opieplayer/libmpeg3/libmpeg3pluginimpl.cpp8
-rw-r--r--core/multimedia/opieplayer/libmpeg3/libmpeg3pluginimpl.h4
-rw-r--r--core/multimedia/opieplayer/loopcontrol.cpp34
-rw-r--r--core/multimedia/opieplayer/main.cpp2
-rw-r--r--core/multimedia/opieplayer/mediaplayer.cpp65
-rw-r--r--core/multimedia/opieplayer/mediaplayer.h4
-rw-r--r--core/multimedia/opieplayer/mediaplayerplugininterface.h15
-rw-r--r--core/multimedia/opieplayer/mediaplayerstate.cpp11
-rw-r--r--core/multimedia/opieplayer/mediaplayerstate.h65
-rw-r--r--core/multimedia/opieplayer/mpegplayer.pro7
-rw-r--r--core/multimedia/opieplayer/playlistselection.cpp6
-rw-r--r--core/multimedia/opieplayer/playlistwidget.cpp399
-rw-r--r--core/multimedia/opieplayer/playlistwidget.h12
-rw-r--r--core/multimedia/opieplayer/videowidget.cpp2
-rw-r--r--core/multimedia/opieplayer/wavplugin/wavplugin.cpp16
-rw-r--r--core/multimedia/opieplayer/wavplugin/wavplugin.h5
-rw-r--r--core/multimedia/opieplayer/wavplugin/wavpluginimpl.cpp8
-rw-r--r--core/multimedia/opieplayer/wavplugin/wavpluginimpl.h3
25 files changed, 505 insertions, 285 deletions
diff --git a/core/multimedia/opieplayer/audiodevice.cpp b/core/multimedia/opieplayer/audiodevice.cpp
index 9a10eb4..5fef792 100644
--- a/core/multimedia/opieplayer/audiodevice.cpp
+++ b/core/multimedia/opieplayer/audiodevice.cpp
@@ -187,17 +187,18 @@ void AudioDevice::setVolume( unsigned int leftVolume, unsigned int rightVolume,
187 187
188 188
189AudioDevice::AudioDevice( unsigned int f, unsigned int chs, unsigned int bps ) { 189AudioDevice::AudioDevice( unsigned int f, unsigned int chs, unsigned int bps ) {
190 d = new AudioDevicePrivate; 190 qDebug("creating new audio device");
191 d = new AudioDevicePrivate;
191 d->frequency = f; 192 d->frequency = f;
192 d->channels = chs; 193 d->channels = chs;
193 d->bytesPerSample = bps; 194 d->bytesPerSample = bps;
194// qDebug("%d",bps); 195 qDebug("%d",bps);
195 int format=0; 196 int format=0;
196 if( bps == 8) format = AFMT_U8; 197 if( bps == 8) format = AFMT_U8;
197 else if( bps <= 0) format = AFMT_S16_LE; 198 else if( bps <= 0) format = AFMT_S16_LE;
198 else format = AFMT_S16_LE; 199 else format = AFMT_S16_LE;
199 200
200// qDebug("AD- freq %d, channels %d, b/sample %d, bitrate %d",f,chs,bps,format); 201 qDebug("AD- freq %d, channels %d, b/sample %d, bitrate %d",f,chs,bps,format);
201 connect( qApp, SIGNAL( volumeChanged(bool) ), this, SLOT( volumeChanged(bool) ) ); 202 connect( qApp, SIGNAL( volumeChanged(bool) ), this, SLOT( volumeChanged(bool) ) );
202 203
203 204
diff --git a/core/multimedia/opieplayer/inputDialog.cpp b/core/multimedia/opieplayer/inputDialog.cpp
new file mode 100644
index 0000000..b443747
--- a/dev/null
+++ b/core/multimedia/opieplayer/inputDialog.cpp
@@ -0,0 +1,45 @@
1/****************************************************************************
2** Form implementation generated from reading ui file 'inputDialog.ui'
3**
4** Created: Sat Mar 2 07:55:03 2002
5** by: The User Interface Compiler (uic)
6**
7** WARNING! All changes made in this file will be lost!
8****************************************************************************/
9#include "inputDialog.h"
10
11#include <qlineedit.h>
12#include <qlayout.h>
13#include <qvariant.h>
14#include <qtooltip.h>
15#include <qwhatsthis.h>
16
17/*
18 * Constructs a InputDialog which is a child of 'parent', with the
19 * name 'name' and widget flags set to 'f'
20 *
21 * The dialog will by default be modeless, unless you set 'modal' to
22 * TRUE to construct a modal dialog.
23 */
24InputDialog::InputDialog( QWidget* parent, const char* name, bool modal, WFlags fl )
25 : QDialog( parent, name, modal, fl )
26{
27 if ( !name )
28 setName( "InputDialog" );
29 resize( 234, 50 );
30 setMaximumSize( QSize( 240, 50 ) );
31 setCaption( tr(name ) );
32
33 LineEdit1 = new QLineEdit( this, "LineEdit1" );
34 LineEdit1->setGeometry( QRect( 10, 10, 216, 22 ) );
35}
36
37/*
38 * Destroys the object and frees any allocated resources
39 */
40InputDialog::~InputDialog()
41{
42 inputText= LineEdit1->text();
43
44}
45
diff --git a/core/multimedia/opieplayer/inputDialog.h b/core/multimedia/opieplayer/inputDialog.h
new file mode 100644
index 0000000..26d5cd0
--- a/dev/null
+++ b/core/multimedia/opieplayer/inputDialog.h
@@ -0,0 +1,31 @@
1/****************************************************************************
2** Form interface generated from reading ui file 'inputDialog.ui'
3**
4** Created: Sat Mar 2 07:54:46 2002
5** by: The User Interface Compiler (uic)
6**
7** WARNING! All changes made in this file will be lost!
8****************************************************************************/
9#ifndef INPUTDIALOG_H
10#define INPUTDIALOG_H
11
12#include <qvariant.h>
13#include <qdialog.h>
14class QVBoxLayout;
15class QHBoxLayout;
16class QGridLayout;
17class QLineEdit;
18
19class InputDialog : public QDialog
20{
21 Q_OBJECT
22
23public:
24 InputDialog( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 );
25 ~InputDialog();
26 QString inputText;
27 QLineEdit* LineEdit1;
28
29};
30
31#endif // INPUTDIALOG_H
diff --git a/core/multimedia/opieplayer/libmad/libmadplugin.h b/core/multimedia/opieplayer/libmad/libmadplugin.h
index d163458..b240b77 100644
--- a/core/multimedia/opieplayer/libmad/libmadplugin.h
+++ b/core/multimedia/opieplayer/libmad/libmadplugin.h
@@ -21,8 +21,8 @@
21#define LIBMAD_PLUGIN_H 21#define LIBMAD_PLUGIN_H
22 22
23#include <qstring.h> 23#include <qstring.h>
24//#include <qpe/mediaplayerplugininterface.h> 24#include <qpe/mediaplayerplugininterface.h>
25#include "../mediaplayerplugininterface.h" 25/* #include "../mediaplayerplugininterface.h" */
26 26
27 27
28// #define OLD_MEDIAPLAYER_API 28// #define OLD_MEDIAPLAYER_API
@@ -53,7 +53,7 @@ public:
53 int audioFrequency( int stream ); 53 int audioFrequency( int stream );
54 int audioSamples( int stream ); 54 int audioSamples( int stream );
55 bool audioSetSample( long sample, int stream ); 55 bool audioSetSample( long sample, int stream );
56 int audioBitsPerSample(int) {return 0;} 56/* int audioBitsPerSample(int) {return 0;} */
57 long audioGetSample( int stream ); 57 long audioGetSample( int stream );
58#ifdef OLD_MEDIAPLAYER_API 58#ifdef OLD_MEDIAPLAYER_API
59 bool audioReadMonoSamples( short *output, long samples, long& samplesRead, int stream ); 59 bool audioReadMonoSamples( short *output, long samples, long& samplesRead, int stream );
diff --git a/core/multimedia/opieplayer/libmad/libmadpluginimpl.cpp b/core/multimedia/opieplayer/libmad/libmadpluginimpl.cpp
index 028c658..67779e8 100644
--- a/core/multimedia/opieplayer/libmad/libmadpluginimpl.cpp
+++ b/core/multimedia/opieplayer/libmad/libmadpluginimpl.cpp
@@ -30,14 +30,14 @@ LibMadPluginImpl::LibMadPluginImpl()
30LibMadPluginImpl::~LibMadPluginImpl() 30LibMadPluginImpl::~LibMadPluginImpl()
31{ 31{
32 if ( libmadplugin ) 32 if ( libmadplugin )
33 delete libmadplugin; 33 delete libmadplugin;
34} 34}
35 35
36 36
37MediaPlayerDecoder *LibMadPluginImpl::decoder() 37MediaPlayerDecoder *LibMadPluginImpl::decoder()
38{ 38{
39 if ( !libmadplugin ) 39 if ( !libmadplugin )
40 libmadplugin = new LibMadPlugin; 40 libmadplugin = new LibMadPlugin;
41 return libmadplugin; 41 return libmadplugin;
42} 42}
43 43
@@ -54,8 +54,8 @@ MediaPlayerEncoder *LibMadPluginImpl::encoder()
54QRESULT LibMadPluginImpl::queryInterface( const QUuid &uuid, QUnknownInterface **iface ) 54QRESULT LibMadPluginImpl::queryInterface( const QUuid &uuid, QUnknownInterface **iface )
55{ 55{
56 *iface = 0; 56 *iface = 0;
57 if ( ( uuid == IID_QUnknown ) || ( uuid == IID_MediaPlayerPlugin ) ) 57 if ( ( uuid == IID_QUnknown ) || ( uuid == IID_MediaPlayerPlugin ) )
58 *iface = this, (*iface)->addRef(); 58 *iface = this, (*iface)->addRef();
59 return QS_OK; 59 return QS_OK;
60} 60}
61 61
diff --git a/core/multimedia/opieplayer/libmad/libmadpluginimpl.h b/core/multimedia/opieplayer/libmad/libmadpluginimpl.h
index bc864ee..9b35b90 100644
--- a/core/multimedia/opieplayer/libmad/libmadpluginimpl.h
+++ b/core/multimedia/opieplayer/libmad/libmadpluginimpl.h
@@ -20,8 +20,8 @@
20#ifndef LIBMAD_PLUGIN_IMPL_H 20#ifndef LIBMAD_PLUGIN_IMPL_H
21#define LIBMAD_PLUGIN_IMPL_H 21#define LIBMAD_PLUGIN_IMPL_H
22 22
23//#include <qpe/mediaplayerplugininterface.h> 23#include <qpe/mediaplayerplugininterface.h>
24#include "../mediaplayerplugininterface.h" 24//#include "../mediaplayerplugininterface.h"
25 25
26 26
27class LibMadPlugin; 27class LibMadPlugin;
diff --git a/core/multimedia/opieplayer/libmpeg3/libmpeg3plugin.h b/core/multimedia/opieplayer/libmpeg3/libmpeg3plugin.h
index bd31706..b573e84 100644
--- a/core/multimedia/opieplayer/libmpeg3/libmpeg3plugin.h
+++ b/core/multimedia/opieplayer/libmpeg3/libmpeg3plugin.h
@@ -24,8 +24,7 @@
24#include <qapplication.h> 24#include <qapplication.h>
25#include "libmpeg3.h" 25#include "libmpeg3.h"
26#include "mpeg3protos.h" 26#include "mpeg3protos.h"
27//#include <qpe/mediaplayerplugininterface.h> 27#include <qpe/mediaplayerplugininterface.h>
28#include "../mediaplayerplugininterface.h"
29 28
30 29
31// #define OLD_MEDIAPLAYER_API 30// #define OLD_MEDIAPLAYER_API
@@ -51,7 +50,7 @@ public:
51 int audioStreams() { return file ? mpeg3_total_astreams( file ) : 0; } 50 int audioStreams() { return file ? mpeg3_total_astreams( file ) : 0; }
52 int audioChannels( int stream ) { return file ? mpeg3_audio_channels( file, stream ) : 0; } 51 int audioChannels( int stream ) { return file ? mpeg3_audio_channels( file, stream ) : 0; }
53 int audioFrequency( int stream ) { return file ? mpeg3_sample_rate( file, stream ) : 0; } 52 int audioFrequency( int stream ) { return file ? mpeg3_sample_rate( file, stream ) : 0; }
54 int audioBitsPerSample(int) { return 0;} 53/* int audioBitsPerSample(int) { return 0;} */
55 int audioSamples( int stream ) { return file ? mpeg3_audio_samples( file, stream ) : 0; } 54 int audioSamples( int stream ) { return file ? mpeg3_audio_samples( file, stream ) : 0; }
56 bool audioSetSample( long sample, int stream ) { return file ? mpeg3_set_sample( file, sample, stream) == 1 : FALSE; } 55 bool audioSetSample( long sample, int stream ) { return file ? mpeg3_set_sample( file, sample, stream) == 1 : FALSE; }
57 long audioGetSample( int stream ) { return file ? mpeg3_get_sample( file, stream ) : 0; } 56 long audioGetSample( int stream ) { return file ? mpeg3_get_sample( file, stream ) : 0; }
@@ -74,15 +73,15 @@ public:
74/* 73/*
75{ 74{
76 if ( file ) { 75 if ( file ) {
77 int frames = mpeg3_video_frames( file, stream ); 76 int frames = mpeg3_video_frames( file, stream );
78 if ( frames == 1 ) { 77 if ( frames == 1 ) {
79 int res = mpeg3_seek_percentage( file, 0.99 ); 78 int res = mpeg3_seek_percentage( file, 0.99 );
80 printf("res: %i\n", res ); 79 printf("res: %i\n", res );
81 mpeg3video_seek( file->vtrack[stream]->video ); 80 mpeg3video_seek( file->vtrack[stream]->video );
82 frames = mpeg3_get_frame( file, stream ); 81 frames = mpeg3_get_frame( file, stream );
83 mpeg3_seek_percentage( file, 0.0 ); 82 mpeg3_seek_percentage( file, 0.0 );
84 } 83 }
85 return frames; 84 return frames;
86 } 85 }
87 return 0; 86 return 0;
88} 87}
diff --git a/core/multimedia/opieplayer/libmpeg3/libmpeg3pluginimpl.cpp b/core/multimedia/opieplayer/libmpeg3/libmpeg3pluginimpl.cpp
index e7216af..bf3f372 100644
--- a/core/multimedia/opieplayer/libmpeg3/libmpeg3pluginimpl.cpp
+++ b/core/multimedia/opieplayer/libmpeg3/libmpeg3pluginimpl.cpp
@@ -30,14 +30,14 @@ LibMpeg3PluginImpl::LibMpeg3PluginImpl()
30LibMpeg3PluginImpl::~LibMpeg3PluginImpl() 30LibMpeg3PluginImpl::~LibMpeg3PluginImpl()
31{ 31{
32 if ( libmpeg3plugin ) 32 if ( libmpeg3plugin )
33 delete libmpeg3plugin; 33 delete libmpeg3plugin;
34} 34}
35 35
36 36
37MediaPlayerDecoder *LibMpeg3PluginImpl::decoder() 37MediaPlayerDecoder *LibMpeg3PluginImpl::decoder()
38{ 38{
39 if ( !libmpeg3plugin ) 39 if ( !libmpeg3plugin )
40 libmpeg3plugin = new LibMpeg3Plugin; 40 libmpeg3plugin = new LibMpeg3Plugin;
41 return libmpeg3plugin; 41 return libmpeg3plugin;
42} 42}
43 43
@@ -54,8 +54,8 @@ MediaPlayerEncoder *LibMpeg3PluginImpl::encoder()
54QRESULT LibMpeg3PluginImpl::queryInterface( const QUuid &uuid, QUnknownInterface **iface ) 54QRESULT LibMpeg3PluginImpl::queryInterface( const QUuid &uuid, QUnknownInterface **iface )
55{ 55{
56 *iface = 0; 56 *iface = 0;
57 if ( ( uuid == IID_QUnknown ) || ( uuid == IID_MediaPlayerPlugin ) ) 57 if ( ( uuid == IID_QUnknown ) || ( uuid == IID_MediaPlayerPlugin ) )
58 *iface = this, (*iface)->addRef(); 58 *iface = this, (*iface)->addRef();
59 return QS_OK; 59 return QS_OK;
60} 60}
61 61
diff --git a/core/multimedia/opieplayer/libmpeg3/libmpeg3pluginimpl.h b/core/multimedia/opieplayer/libmpeg3/libmpeg3pluginimpl.h
index a2f5211..ef3743e 100644
--- a/core/multimedia/opieplayer/libmpeg3/libmpeg3pluginimpl.h
+++ b/core/multimedia/opieplayer/libmpeg3/libmpeg3pluginimpl.h
@@ -20,8 +20,8 @@
20#ifndef LIBMPEG3_PLUGIN_IMPL_H 20#ifndef LIBMPEG3_PLUGIN_IMPL_H
21#define LIBMPEG3_PLUGIN_IMPL_H 21#define LIBMPEG3_PLUGIN_IMPL_H
22 22
23//#include <qpe/mediaplayerplugininterface.h> 23#include <qpe/mediaplayerplugininterface.h>
24#include "../mediaplayerplugininterface.h" 24//#include "../mediaplayerplugininterface.h"
25 25
26 26
27class LibMpeg3Plugin; 27class LibMpeg3Plugin;
diff --git a/core/multimedia/opieplayer/loopcontrol.cpp b/core/multimedia/opieplayer/loopcontrol.cpp
index 90a7cc6..cb8de8a 100644
--- a/core/multimedia/opieplayer/loopcontrol.cpp
+++ b/core/multimedia/opieplayer/loopcontrol.cpp
@@ -34,7 +34,7 @@
34#include "loopcontrol.h" 34#include "loopcontrol.h"
35#include "videowidget.h" 35#include "videowidget.h"
36#include "audiodevice.h" 36#include "audiodevice.h"
37#include "mediaplayerplugininterface.h" 37#include <qpe/mediaplayerplugininterface.h>
38#include "mediaplayerstate.h" 38#include "mediaplayerstate.h"
39 39
40 40
@@ -101,7 +101,7 @@ LoopControl::LoopControl( QObject *parent, const char *name )
101 : QObject( parent, name ) { 101 : QObject( parent, name ) {
102 isMuted = FALSE; 102 isMuted = FALSE;
103 connect( qApp, SIGNAL( volumeChanged(bool) ), this, SLOT( setMute(bool) ) ); 103 connect( qApp, SIGNAL( volumeChanged(bool) ), this, SLOT( setMute(bool) ) );
104 104//qDebug("starting loopcontrol");
105 audioMutex = new Mutex; 105 audioMutex = new Mutex;
106 106
107 pthread_attr_init(&audio_attr); 107 pthread_attr_init(&audio_attr);
@@ -118,6 +118,7 @@ LoopControl::LoopControl( QObject *parent, const char *name )
118 pthread_attr_init(&audio_attr); 118 pthread_attr_init(&audio_attr);
119 } 119 }
120#endif 120#endif
121//qDebug("create audio thread");
121 pthread_create(&audio_tid, &audio_attr, (void * (*)(void *))startAudioThread, this); 122 pthread_create(&audio_tid, &audio_attr, (void * (*)(void *))startAudioThread, this);
122} 123}
123 124
@@ -220,8 +221,8 @@ void LoopControl::startVideo() {
220 221
221void LoopControl::startAudio() { 222void LoopControl::startAudio() {
222 223
224//qDebug("start audio");
223 audioMutex->lock(); 225 audioMutex->lock();
224
225 if ( moreAudio ) { 226 if ( moreAudio ) {
226 227
227 if ( !isMuted && mediaPlayerState->curDecoder() ) { 228 if ( !isMuted && mediaPlayerState->curDecoder() ) {
@@ -236,14 +237,14 @@ void LoopControl::startAudio() {
236 long sampleWeShouldBeAt = long( playtime.elapsed() ) * freq / 1000; 237 long sampleWeShouldBeAt = long( playtime.elapsed() ) * freq / 1000;
237 long sampleWaitTime = currentSample - sampleWeShouldBeAt; 238 long sampleWaitTime = currentSample - sampleWeShouldBeAt;
238 239
239 if ( ( sampleWaitTime > 2000 ) && ( sampleWaitTime < 20000 ) ) { 240// if ( ( sampleWaitTime > 2000 ) && ( sampleWaitTime < 20000 ) ) {
240 usleep( (long)((double)sampleWaitTime * 1000000.0 / freq) ); 241// usleep( (long)((double)sampleWaitTime * 1000000.0 / freq) );
241 } 242// }
242 else if ( sampleWaitTime <= -5000 ) { 243// else if ( sampleWaitTime <= -5000 ) {
243 qDebug("need to catch up by: %li (%i,%li)", -sampleWaitTime, currentSample, sampleWeShouldBeAt ); 244// qDebug("need to catch up by: %li (%i,%li)", -sampleWaitTime, currentSample, sampleWeShouldBeAt );
244 //mediaPlayerState->curDecoder()->audioSetSample( sampleWeShouldBeAt, stream ); 245// //mediaPlayerState->curDecoder()->audioSetSample( sampleWeShouldBeAt, stream );
245 currentSample = sampleWeShouldBeAt; 246// currentSample = sampleWeShouldBeAt;
246 } 247// }
247 248
248 audioDevice->write( audioBuffer, samplesRead * 2 * channels ); 249 audioDevice->write( audioBuffer, samplesRead * 2 * channels );
249 audioSampleCounter = currentSample + samplesRead - 1; 250 audioSampleCounter = currentSample + samplesRead - 1;
@@ -391,8 +392,13 @@ bool LoopControl::init( const QString& filename ) {
391 qDebug( "LC- frequency = %d", freq ); 392 qDebug( "LC- frequency = %d", freq );
392 393
393 audioSampleCounter = 0; 394 audioSampleCounter = 0;
394 395 int bits_per_sample;
395 int bits_per_sample = mediaPlayerState->curDecoder()->audioBitsPerSample( astream); 396 if ( mediaPlayerState->curDecoder()->pluginName() == QString("LibWavPlugin") ) {
397 bits_per_sample =(int) mediaPlayerState->curDecoder()->getTime();
398 qDebug("using stupid hack");
399 } else {
400 bits_per_sample=0;
401 }
396 402
397 audioDevice = new AudioDevice( freq, channels, bits_per_sample); 403 audioDevice = new AudioDevice( freq, channels, bits_per_sample);
398 audioBuffer = new char[ audioDevice->bufferSize() ]; 404 audioBuffer = new char[ audioDevice->bufferSize() ];
@@ -437,7 +443,7 @@ bool LoopControl::init( const QString& filename ) {
437 443
438 444
439void LoopControl::play() { 445void LoopControl::play() {
440 446 qDebug("LC- play");
441#if defined(Q_WS_QWS) && !defined(QT_NO_COP) 447#if defined(Q_WS_QWS) && !defined(QT_NO_COP)
442 if ( !disabledSuspendScreenSaver || previousSuspendMode != hasVideoChannel ) { 448 if ( !disabledSuspendScreenSaver || previousSuspendMode != hasVideoChannel ) {
443 disabledSuspendScreenSaver = TRUE; 449 disabledSuspendScreenSaver = TRUE;
diff --git a/core/multimedia/opieplayer/main.cpp b/core/multimedia/opieplayer/main.cpp
index 720a1ca..4f43ff6 100644
--- a/core/multimedia/opieplayer/main.cpp
+++ b/core/multimedia/opieplayer/main.cpp
@@ -47,7 +47,7 @@ int main(int argc, char **argv) {
47 loopControl = &lc; 47 loopControl = &lc;
48 MediaPlayer mp( 0, "mediaPlayer" ); 48 MediaPlayer mp( 0, "mediaPlayer" );
49 49
50 pl.setCaption( MediaPlayer::tr("Media Player") ); 50 pl.setCaption( MediaPlayer::tr("OpiePlayer") );
51 a.showMainDocumentWidget(&pl); 51 a.showMainDocumentWidget(&pl);
52 52
53 return a.exec(); 53 return a.exec();
diff --git a/core/multimedia/opieplayer/mediaplayer.cpp b/core/multimedia/opieplayer/mediaplayer.cpp
index ce42c2c..c971a3c 100644
--- a/core/multimedia/opieplayer/mediaplayer.cpp
+++ b/core/multimedia/opieplayer/mediaplayer.cpp
@@ -48,8 +48,8 @@ MediaPlayer::MediaPlayer( QObject *parent, const char *name )
48 48
49 connect( mediaPlayerState, SIGNAL( playingToggled( bool ) ), this, SLOT( setPlaying( bool ) ) ); 49 connect( mediaPlayerState, SIGNAL( playingToggled( bool ) ), this, SLOT( setPlaying( bool ) ) );
50 connect( mediaPlayerState, SIGNAL( pausedToggled( bool ) ), this, SLOT( pauseCheck( bool ) ) ); 50 connect( mediaPlayerState, SIGNAL( pausedToggled( bool ) ), this, SLOT( pauseCheck( bool ) ) );
51 connect( mediaPlayerState, SIGNAL( next() ), this, SLOT( next() ) ); 51 connect( mediaPlayerState, SIGNAL( next() ), this, SLOT( next() ) );
52 connect( mediaPlayerState, SIGNAL( prev() ), this, SLOT( prev() ) ); 52 connect( mediaPlayerState, SIGNAL( prev() ), this, SLOT( prev() ) );
53 53
54 connect( audioUI, SIGNAL( moreClicked() ), this, SLOT( startIncreasingVolume() ) ); 54 connect( audioUI, SIGNAL( moreClicked() ), this, SLOT( startIncreasingVolume() ) );
55 connect( audioUI, SIGNAL( lessClicked() ), this, SLOT( startDecreasingVolume() ) ); 55 connect( audioUI, SIGNAL( lessClicked() ), this, SLOT( startDecreasingVolume() ) );
@@ -65,7 +65,7 @@ MediaPlayer::~MediaPlayer() {
65void MediaPlayer::pauseCheck( bool b ) { 65void MediaPlayer::pauseCheck( bool b ) {
66 // Only pause if playing 66 // Only pause if playing
67 if ( b && !mediaPlayerState->playing() ) 67 if ( b && !mediaPlayerState->playing() )
68 mediaPlayerState->setPaused( FALSE ); 68 mediaPlayerState->setPaused( FALSE );
69} 69}
70 70
71 71
@@ -76,55 +76,50 @@ void MediaPlayer::play() {
76 76
77 77
78void MediaPlayer::setPlaying( bool play ) { 78void MediaPlayer::setPlaying( bool play ) {
79
80 if ( !play ) { 79 if ( !play ) {
81 mediaPlayerState->setPaused( FALSE ); 80 mediaPlayerState->setPaused( FALSE );
82 loopControl->stop( FALSE ); 81 loopControl->stop( FALSE );
83 return; 82 return;
84 } 83 }
85 84
86 if ( mediaPlayerState->paused() ) { 85 if ( mediaPlayerState->paused() ) {
87 mediaPlayerState->setPaused( FALSE ); 86 mediaPlayerState->setPaused( FALSE );
88 return; 87 return;
89 } 88 }
90 89
91 const DocLnk *playListCurrent = playList->current(); 90 const DocLnk *playListCurrent = playList->current();
92
93 if ( playListCurrent != NULL ) { 91 if ( playListCurrent != NULL ) {
94 loopControl->stop( TRUE ); 92 loopControl->stop( TRUE );
95 currentFile = playListCurrent; 93 currentFile = playListCurrent;
96 } 94 }
97
98 if ( currentFile == NULL ) { 95 if ( currentFile == NULL ) {
99 QMessageBox::critical( 0, tr( "No file"), tr( "Error: There is no file selected" ) ); 96 QMessageBox::critical( 0, tr( "No file"), tr( "Error: There is no file selected" ) );
100 mediaPlayerState->setPlaying( FALSE ); 97 mediaPlayerState->setPlaying( FALSE );
101 return; 98 return;
102 } 99 }
103
104 if ( !QFile::exists( currentFile->file() ) ) { 100 if ( !QFile::exists( currentFile->file() ) ) {
105 QMessageBox::critical( 0, tr( "File not found"), tr( "The following file was not found: <i>" ) + currentFile->file() + "</i>" ); 101 QMessageBox::critical( 0, tr( "File not found"), tr( "The following file was not found: <i>" ) + currentFile->file() + "</i>" );
106 mediaPlayerState->setPlaying( FALSE ); 102 mediaPlayerState->setPlaying( FALSE );
107 return; 103 return;
108 } 104 }
109 105
110 if ( !mediaPlayerState->newDecoder( currentFile->file() ) ) { 106 if ( !mediaPlayerState->newDecoder( currentFile->file() ) ) {
111 QMessageBox::critical( 0, tr( "No decoder found"), tr( "Sorry, no appropriate decoders found for this file: <i>" ) + currentFile->file() + "</i>" ); 107 QMessageBox::critical( 0, tr( "No decoder found"), tr( "Sorry, no appropriate decoders found for this file: <i>" ) + currentFile->file() + "</i>" );
112 mediaPlayerState->setPlaying( FALSE ); 108 mediaPlayerState->setPlaying( FALSE );
113 return; 109 return;
114 } 110 }
115 111
116 if ( !loopControl->init( currentFile->file() ) ) { 112 if ( !loopControl->init( currentFile->file() ) ) {
117 QMessageBox::critical( 0, tr( "Error opening file"), tr( "Sorry, an error occured trying to play the file: <i>" ) + currentFile->file() + "</i>" ); 113 QMessageBox::critical( 0, tr( "Error opening file"), tr( "Sorry, an error occured trying to play the file: <i>" ) + currentFile->file() + "</i>" );
118 mediaPlayerState->setPlaying( FALSE ); 114 mediaPlayerState->setPlaying( FALSE );
119 return; 115 return;
120 } 116 }
121
122 long seconds = loopControl->totalPlaytime(); 117 long seconds = loopControl->totalPlaytime();
123 QString time; time.sprintf("%li:%02i", seconds/60, (int)seconds%60 ); 118 QString time; time.sprintf("%li:%02i", seconds/60, (int)seconds%60 );
124 QString tickerText = tr( " File: " ) + currentFile->name() + tr(", Length: ") + time; 119 QString tickerText = tr( " File: " ) + currentFile->name() + tr(", Length: ") + time;
125 QString fileInfo = mediaPlayerState->curDecoder()->fileInfo(); 120 QString fileInfo = mediaPlayerState->curDecoder()->fileInfo();
126 if ( !fileInfo.isEmpty() ) 121 if ( !fileInfo.isEmpty() )
127 tickerText += ", " + fileInfo; 122 tickerText += ", " + fileInfo;
128 audioUI->setTickerText( tickerText + "." ); 123 audioUI->setTickerText( tickerText + "." );
129 124
130 loopControl->play(); 125 loopControl->play();
@@ -135,23 +130,23 @@ void MediaPlayer::setPlaying( bool play ) {
135 130
136void MediaPlayer::prev() { 131void MediaPlayer::prev() {
137 if ( playList->prev() ) 132 if ( playList->prev() )
138 play(); 133 play();
139 else if ( mediaPlayerState->looping() ) { 134 else if ( mediaPlayerState->looping() ) {
140 if ( playList->last() ) 135 if ( playList->last() )
141 play(); 136 play();
142 } else 137 } else
143 mediaPlayerState->setList(); 138 mediaPlayerState->setList();
144} 139}
145 140
146 141
147void MediaPlayer::next() { 142void MediaPlayer::next() {
148 if ( playList->next() ) 143 if ( playList->next() )
149 play(); 144 play();
150 else if ( mediaPlayerState->looping() ) { 145 else if ( mediaPlayerState->looping() ) {
151 if ( playList->first() ) 146 if ( playList->first() )
152 play(); 147 play();
153 } else 148 } else
154 mediaPlayerState->setList(); 149 mediaPlayerState->setList();
155} 150}
156 151
157 152
@@ -176,7 +171,7 @@ void MediaPlayer::stopChangingVolume() {
176 171
177void MediaPlayer::timerEvent( QTimerEvent * ) { 172void MediaPlayer::timerEvent( QTimerEvent * ) {
178 if ( volumeDirection == +1 ) 173 if ( volumeDirection == +1 )
179 AudioDevice::increaseVolume(); 174 AudioDevice::increaseVolume();
180 else if ( volumeDirection == -1 ) 175 else if ( volumeDirection == -1 )
181 AudioDevice::decreaseVolume(); 176 AudioDevice::decreaseVolume();
182} 177}
diff --git a/core/multimedia/opieplayer/mediaplayer.h b/core/multimedia/opieplayer/mediaplayer.h
index 73f8124..d6e90cb 100644
--- a/core/multimedia/opieplayer/mediaplayer.h
+++ b/core/multimedia/opieplayer/mediaplayer.h
@@ -49,8 +49,8 @@ protected:
49 void timerEvent( QTimerEvent *e ); 49 void timerEvent( QTimerEvent *e );
50 50
51private: 51private:
52 int volumeDirection; 52 int volumeDirection;
53 const DocLnk*currentFile; 53 const DocLnk *currentFile;
54}; 54};
55 55
56 56
diff --git a/core/multimedia/opieplayer/mediaplayerplugininterface.h b/core/multimedia/opieplayer/mediaplayerplugininterface.h
index 339b2e4..97e4066 100644
--- a/core/multimedia/opieplayer/mediaplayerplugininterface.h
+++ b/core/multimedia/opieplayer/mediaplayerplugininterface.h
@@ -23,8 +23,12 @@
23#include <qpe/qcom.h> 23#include <qpe/qcom.h>
24 24
25#ifndef QT_NO_COMPONENT 25#ifndef QT_NO_COMPONENT
26// {c0093632-b44c-4cf7-a279-d82fe8a8890c} 26# ifndef IID_OpiePlayerPlugin
27// {F56F6CE0-1333-41FD-9B46-C0AF44D0B006}
28# define IID_OpiePlayerPlugin QUuid( 0xF56F6CE0, 0x1333, 0x41FD, 0x9B, 0x46, 0xC0, 0xAF, 0x44, 0xD0, 0xB0, 0x06);
29# endif
27# ifndef IID_MediaPlayerPlugin 30# ifndef IID_MediaPlayerPlugin
31// {c0093632-b44c-4cf7-a279-d82fe8a8890c}
28# define IID_MediaPlayerPlugin QUuid( 0xc0093632, 0xb44c, 0x4cf7, 0xa2, 0x79, 0xd8, 0x2f, 0xe8, 0xa8, 0x89, 0x0c ) 32# define IID_MediaPlayerPlugin QUuid( 0xc0093632, 0xb44c, 0x4cf7, 0xa2, 0x79, 0xd8, 0x2f, 0xe8, 0xa8, 0x89, 0x0c )
29# endif 33# endif
30#endif 34#endif
@@ -93,7 +97,9 @@ public:
93 97
94 // File Properies 98 // File Properies
95 virtual long getPlayTime() { return -1; } 99 virtual long getPlayTime() { return -1; }
100#ifdef IID_OpiePlayerPlugin
96 virtual int audioBitsPerSample( int stream ) = 0; 101 virtual int audioBitsPerSample( int stream ) = 0;
102#endif
97}; 103};
98 104
99 105
@@ -106,6 +112,13 @@ struct MediaPlayerPluginInterface : public QUnknownInterface
106 virtual MediaPlayerEncoder *encoder() = 0; 112 virtual MediaPlayerEncoder *encoder() = 0;
107}; 113};
108 114
115#ifdef IID_OpiePlayerPlugin
116struct OpiePlayerPluginInterface : public QUnknownInterface
117{
118 virtual MediaPlayerDecoder *decoder() = 0;
119 virtual MediaPlayerEncoder *encoder() = 0;
120};
121#endif
109 122
110#endif 123#endif
111 124
diff --git a/core/multimedia/opieplayer/mediaplayerstate.cpp b/core/multimedia/opieplayer/mediaplayerstate.cpp
index 13741f6..a960c49 100644
--- a/core/multimedia/opieplayer/mediaplayerstate.cpp
+++ b/core/multimedia/opieplayer/mediaplayerstate.cpp
@@ -23,10 +23,11 @@
23#include <qvaluelist.h> 23#include <qvaluelist.h>
24#include <qobject.h> 24#include <qobject.h>
25#include <qdir.h> 25#include <qdir.h>
26#include "mediaplayerplugininterface.h" 26#include <qpe/mediaplayerplugininterface.h>
27#include "mediaplayerstate.h" 27#include "mediaplayerstate.h"
28 28
29 29
30
30#ifdef QT_NO_COMPONENT 31#ifdef QT_NO_COMPONENT
31// Plugins which are compiled in when no plugin architecture available 32// Plugins which are compiled in when no plugin architecture available
32#include "libmad/libmadpluginimpl.h" 33#include "libmad/libmadpluginimpl.h"
@@ -60,6 +61,7 @@ void MediaPlayerState::readConfig( Config& cfg ) {
60 isLooping = cfg.readBoolEntry( "Looping" ); 61 isLooping = cfg.readBoolEntry( "Looping" );
61 isShuffled = cfg.readBoolEntry( "Shuffle" ); 62 isShuffled = cfg.readBoolEntry( "Shuffle" );
62 usePlaylist = cfg.readBoolEntry( "UsePlayList" ); 63 usePlaylist = cfg.readBoolEntry( "UsePlayList" );
64 usePlaylist = TRUE;
63 isPlaying = FALSE; 65 isPlaying = FALSE;
64 isPaused = FALSE; 66 isPaused = FALSE;
65 curPosition = 0; 67 curPosition = 0;
@@ -121,7 +123,7 @@ MediaPlayerDecoder *MediaPlayerState::libMpeg3Decoder() {
121// } 123// }
122 124
123void MediaPlayerState::loadPlugins() { 125void MediaPlayerState::loadPlugins() {
124 126 qDebug("load plugins");
125#ifndef QT_NO_COMPONENT 127#ifndef QT_NO_COMPONENT
126 QValueList<MediaPlayerPlugin>::Iterator mit; 128 QValueList<MediaPlayerPlugin>::Iterator mit;
127 for ( mit = pluginList.begin(); mit != pluginList.end(); ++mit ) { 129 for ( mit = pluginList.begin(); mit != pluginList.end(); ++mit ) {
@@ -138,12 +140,11 @@ void MediaPlayerState::loadPlugins() {
138 for ( it = list.begin(); it != list.end(); ++it ) { 140 for ( it = list.begin(); it != list.end(); ++it ) {
139 MediaPlayerPluginInterface *iface = 0; 141 MediaPlayerPluginInterface *iface = 0;
140 QLibrary *lib = new QLibrary( path + "/" + *it ); 142 QLibrary *lib = new QLibrary( path + "/" + *it );
141 143// qDebug( "querying: %s", QString( path + "/" + *it ).latin1() );
142 MediaPlayerDebug(( "querying: %s", QString( path + "/" + *it ).latin1() ));
143 144
144 if ( lib->queryInterface( IID_MediaPlayerPlugin, (QUnknownInterface**)&iface ) == QS_OK ) { 145 if ( lib->queryInterface( IID_MediaPlayerPlugin, (QUnknownInterface**)&iface ) == QS_OK ) {
145 146
146 MediaPlayerDebug(( "loading: %s", QString( path + "/" + *it ).latin1() )); 147// qDebug( "loading: %s", QString( path + "/" + *it ).latin1() );
147 148
148 MediaPlayerPlugin plugin; 149 MediaPlayerPlugin plugin;
149 plugin.library = lib; 150 plugin.library = lib;
diff --git a/core/multimedia/opieplayer/mediaplayerstate.h b/core/multimedia/opieplayer/mediaplayerstate.h
index e82c263..ad273f1 100644
--- a/core/multimedia/opieplayer/mediaplayerstate.h
+++ b/core/multimedia/opieplayer/mediaplayerstate.h
@@ -1,7 +1,7 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. 2** Copyright (C) 2000 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of the Qtopia Environment. 4** This file is part of Qtopia Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
@@ -20,6 +20,7 @@
20#ifndef MEDIA_PLAYER_STATE_H 20#ifndef MEDIA_PLAYER_STATE_H
21#define MEDIA_PLAYER_STATE_H 21#define MEDIA_PLAYER_STATE_H
22 22
23
23#include <qobject.h> 24#include <qobject.h>
24 25
25 26
@@ -33,47 +34,48 @@ public:
33 MediaPlayerState( QObject *parent, const char *name ); 34 MediaPlayerState( QObject *parent, const char *name );
34 ~MediaPlayerState(); 35 ~MediaPlayerState();
35 36
36 bool fullscreen() { return isFullscreen; } 37
37 bool scaled() { return isScaled; } 38 bool fullscreen() { return isFullscreen; }
38 bool looping() { return isLooping; } 39 bool scaled() { return isScaled; }
39 bool shuffled() { return isShuffled; } 40 bool looping() { return isLooping; }
40 bool playlist() { return usePlaylist; } 41 bool shuffled() { return isShuffled; }
41 bool paused() { return isPaused; } 42 bool playlist() { return usePlaylist; }
42 bool playing() { return isPlaying; } 43 bool paused() { return isPaused; }
43 long position() { return curPosition; } 44 bool playing() { return isPlaying; }
44 long length() { return curLength; } 45 long position() { return curPosition; }
45 char view() { return curView; } 46 long length() { return curLength; }
47 char view() { return curView; }
46 48
47 MediaPlayerDecoder *newDecoder( const QString& file ); 49 MediaPlayerDecoder *newDecoder( const QString& file );
48 MediaPlayerDecoder *curDecoder(); 50 MediaPlayerDecoder *curDecoder();
49 MediaPlayerDecoder *libMpeg3Decoder(); // ### Yucky hack needed to use libmpeg3plugin to get the 51 MediaPlayerDecoder *libMpeg3Decoder(); // ### Yucky hack needed to use libmpeg3plugin to get the
50 // number of audio samples if we are using the libmad plugin 52 // number of audio samples if we are using the libmad plugin
51public slots: 53public slots:
52 void setFullscreen( bool b ) { if ( isFullscreen == b ) return; isFullscreen = b; emit fullscreenToggled(b); } 54 void setFullscreen( bool b ) { if ( isFullscreen == b ) return; isFullscreen = b; emit fullscreenToggled(b); }
53 void setScaled( bool b ) { if ( isScaled == b ) return; isScaled = b; emit scaledToggled(b); } 55 void setScaled( bool b ) { if ( isScaled == b ) return; isScaled = b; emit scaledToggled(b); }
54 void setLooping( bool b ) { if ( isLooping == b ) return; isLooping = b; emit loopingToggled(b); } 56 void setLooping( bool b ) { if ( isLooping == b ) return; isLooping = b; emit loopingToggled(b); }
55 void setShuffled( bool b ) { if ( isShuffled == b ) return; isShuffled = b; emit shuffledToggled(b); } 57 void setShuffled( bool b ) { if ( isShuffled == b ) return; isShuffled = b; emit shuffledToggled(b); }
56 void setPlaylist( bool b ) { if ( usePlaylist == b ) return; usePlaylist = b; emit playlistToggled(b); } 58 void setPlaylist( bool b ) { if ( usePlaylist == b ) return; usePlaylist = b; emit playlistToggled(b); }
57 void setPaused( bool b ) { if ( isPaused == b ) return; isPaused = b; emit pausedToggled(b); } 59 void setPaused( bool b ) { if ( isPaused == b ) return; isPaused = b; emit pausedToggled(b); }
58 void setPlaying( bool b ) { if ( isPlaying == b ) return; isPlaying = b; emit playingToggled(b); } 60 void setPlaying( bool b ) { if ( isPlaying == b ) return; isPlaying = b; emit playingToggled(b); }
59 void setPosition( long p ) { if ( curPosition == p ) return; curPosition = p; emit positionChanged(p); } 61 void setPosition( long p ) { if ( curPosition == p ) return; curPosition = p; emit positionChanged(p); }
60 void updatePosition( long p ){ if ( curPosition == p ) return; curPosition = p; emit positionUpdated(p); } 62 void updatePosition( long p ){ if ( curPosition == p ) return; curPosition = p; emit positionUpdated(p); }
61 void setLength( long l ) { if ( curLength == l ) return; curLength = l; emit lengthChanged(l); } 63 void setLength( long l ) { if ( curLength == l ) return; curLength = l; emit lengthChanged(l); }
62 void setView( char v ) { if ( curView == v ) return; curView = v; emit viewChanged(v); } 64 void setView( char v ) { if ( curView == v ) return; curView = v; emit viewChanged(v); }
63 65
64 void setPrev() { emit prev(); } 66 void setPrev() { emit prev(); }
65 void setNext() { emit next(); } 67 void setNext() { emit next(); }
66 void setList() { setPlaying( FALSE ); setView('l'); } 68 void setList() { setPlaying( FALSE ); setView('l'); }
67 void setVideo() { setView('v'); } 69 void setVideo() { setView('v'); }
68 void setAudio() { setView('a'); } 70 void setAudio() { setView('a'); }
69 71
70 void toggleFullscreen() { setFullscreen( !isFullscreen ); } 72 void toggleFullscreen() { setFullscreen( !isFullscreen ); }
71 void toggleScaled() { setScaled( !isScaled); } 73 void toggleScaled() { setScaled( !isScaled); }
72 void toggleLooping() { setLooping( !isLooping); } 74 void toggleLooping() { setLooping( !isLooping); }
73 void toggleShuffled() { setShuffled( !isShuffled); } 75 void toggleShuffled() { setShuffled( !isShuffled); }
74 void togglePlaylist() { setPlaylist( !usePlaylist); } 76 void togglePlaylist() { setPlaylist( !usePlaylist); }
75 void togglePaused() { setPaused( !isPaused); } 77 void togglePaused() { setPaused( !isPaused); }
76 void togglePlaying() { setPlaying( !isPlaying); } 78 void togglePlaying() { setPlaying( !isPlaying); }
77 79
78signals: 80signals:
79 void fullscreenToggled( bool ); 81 void fullscreenToggled( bool );
@@ -105,6 +107,7 @@ private:
105 107
106 MediaPlayerDecoder *decoder; 108 MediaPlayerDecoder *decoder;
107 MediaPlayerDecoder *libmpeg3decoder; 109 MediaPlayerDecoder *libmpeg3decoder;
110// MediaPlayerDecoder *libwavdecoder;
108 111
109 void loadPlugins(); 112 void loadPlugins();
110 void readConfig( Config& cfg ); 113 void readConfig( Config& cfg );
diff --git a/core/multimedia/opieplayer/mpegplayer.pro b/core/multimedia/opieplayer/mpegplayer.pro
index 41f2de0..5bea541 100644
--- a/core/multimedia/opieplayer/mpegplayer.pro
+++ b/core/multimedia/opieplayer/mpegplayer.pro
@@ -3,10 +3,10 @@ CONFIG = qt warn_on release
3#release 3#release
4DESTDIR = $(OPIEDIR)/bin 4DESTDIR = $(OPIEDIR)/bin
5HEADERS = loopcontrol.h mediaplayerplugininterface.h playlistselection.h mediaplayerstate.h \ 5HEADERS = loopcontrol.h mediaplayerplugininterface.h playlistselection.h mediaplayerstate.h \
6 videowidget.h audiowidget.h playlistwidget.h mediaplayer.h audiodevice.h 6 videowidget.h audiowidget.h playlistwidget.h mediaplayer.h audiodevice.h inputDialog.h
7SOURCES = main.cpp \ 7SOURCES = main.cpp \
8 loopcontrol.cpp playlistselection.cpp mediaplayerstate.cpp \ 8 loopcontrol.cpp playlistselection.cpp mediaplayerstate.cpp \
9 videowidget.cpp audiowidget.cpp playlistwidget.cpp mediaplayer.cpp audiodevice.cpp 9 videowidget.cpp audiowidget.cpp playlistwidget.cpp mediaplayer.cpp audiodevice.cpp inputDialog.cpp
10TARGET = mpegplayer 10TARGET = mpegplayer
11INCLUDEPATH += $(OPIEDIR)/include 11INCLUDEPATH += $(OPIEDIR)/include
12DEPENDPATH += $(OPIEDIR)/include 12DEPENDPATH += $(OPIEDIR)/include
@@ -19,4 +19,7 @@ LIBS += -lqpe -lpthread
19# LIBS += libmpeg3/libmpeg3.a -lpthread 19# LIBS += libmpeg3/libmpeg3.a -lpthread
20# LIBS += $(OPIEDIR)/plugins/codecs/liblibmadplugin.so 20# LIBS += $(OPIEDIR)/plugins/codecs/liblibmadplugin.so
21 21
22INCLUDEPATH += $(OPIEDIR)/include
23DEPENDPATH += $(OPIEDIR)/include
24
22TRANSLATIONS = ../i18n/de/mpegplayer.ts 25TRANSLATIONS = ../i18n/de/mpegplayer.ts
diff --git a/core/multimedia/opieplayer/playlistselection.cpp b/core/multimedia/opieplayer/playlistselection.cpp
index 2c62e86..d70df51 100644
--- a/core/multimedia/opieplayer/playlistselection.cpp
+++ b/core/multimedia/opieplayer/playlistselection.cpp
@@ -55,9 +55,9 @@ PlayListSelection::PlayListSelection( QWidget *parent, const char *name )
55// setBackgroundPixmap( Resource::loadPixmap( "mpegplayer/background" ) ); 55// setBackgroundPixmap( Resource::loadPixmap( "mpegplayer/background" ) );
56 setBackgroundPixmap( Resource::loadPixmap( "opielogo" ) ); 56 setBackgroundPixmap( Resource::loadPixmap( "opielogo" ) );
57// #endif 57// #endif
58 addColumn("Title",236); 58// addColumn("Title",236);
59 setAllColumnsShowFocus( TRUE ); 59// setAllColumnsShowFocus( TRUE );
60 addColumn( tr( "Playlist Selection" ) ); 60 addColumn( tr( "Playlist Selection" ) );
61 header()->hide(); 61 header()->hide();
62 setSorting( -1, FALSE ); 62 setSorting( -1, FALSE );
63} 63}
diff --git a/core/multimedia/opieplayer/playlistwidget.cpp b/core/multimedia/opieplayer/playlistwidget.cpp
index 202f351..7862d8d 100644
--- a/core/multimedia/opieplayer/playlistwidget.cpp
+++ b/core/multimedia/opieplayer/playlistwidget.cpp
@@ -17,6 +17,7 @@
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20// code added by L. J. Potter Sat 03-02-2002 06:17:54
20 21
21#include <qpe/qpemenubar.h> 22#include <qpe/qpemenubar.h>
22#include <qpe/qpetoolbar.h> 23#include <qpe/qpetoolbar.h>
@@ -40,12 +41,18 @@
40#include <qtabwidget.h> 41#include <qtabwidget.h>
41#include <qlistview.h> 42#include <qlistview.h>
42#include <qpoint.h> 43#include <qpoint.h>
44#include <qlineedit.h>
45#include <qpushbutton.h>
46
43//#include <qtimer.h> 47//#include <qtimer.h>
44 48
45#include "playlistselection.h" 49#include "playlistselection.h"
46#include "playlistwidget.h" 50#include "playlistwidget.h"
47#include "mediaplayerstate.h" 51#include "mediaplayerstate.h"
48 52
53#include "fileBrowser.h"
54#include "inputDialog.h"
55
49#include <stdlib.h> 56#include <stdlib.h>
50 57
51#define BUTTONS_ON_TOOLBAR 58#define BUTTONS_ON_TOOLBAR
@@ -119,11 +126,25 @@ PlayListWidget::PlayListWidget( QWidget* parent, const char* name, WFlags fl )
119 126
120 QPEToolBar *bar = new QPEToolBar( this ); 127 QPEToolBar *bar = new QPEToolBar( this );
121 bar->setLabel( tr( "Play Operations" ) ); 128 bar->setLabel( tr( "Play Operations" ) );
122 d->tbAddToList = new ToolButton( bar, tr( "Add to Playlist" ),"mpegplayer/add_to_playlist",this , SLOT(addSelected()) ); 129// d->tbPlayCurList = new ToolButton( bar, tr( "play List" ), "mpegplayer/play_current_list",
123 d->tbRemoveFromList = new ToolButton( bar, tr( "Remove from Playlist" ), "mpegplayer/remove_from_playlist", this , SLOT(removeSelected()) ); 130// this , SLOT( addSelected()) );
124 d->tbPlay = new ToolButton( bar, tr( "Play" ),"mpegplayer/play", mediaPlayerState, SLOT( setPlaying(bool)), TRUE ); 131 tbDeletePlaylist = new QPushButton( Resource::loadIconSet("close"),"",bar,"close");
125 d->tbShuffle = new ToolButton( bar, tr( "Randomize" ), "mpegplayer/shuffle", mediaPlayerState, SLOT(setShuffled(bool)), TRUE ); 132 tbDeletePlaylist->setFlat(TRUE);
126 d->tbLoop = new ToolButton( bar, tr( "Loop" ),"mpegplayer/loop", mediaPlayerState, SLOT(setLooping(bool)), TRUE ); 133 tbDeletePlaylist->setFixedSize(20,20);
134 connect(tbDeletePlaylist,(SIGNAL(released())),SLOT( deletePlaylist()));
135
136 d->tbAddToList = new ToolButton( bar, tr( "Add to Playlist" ), "mpegplayer/add_to_playlist",
137 this , SLOT(addSelected()) );
138 d->tbRemoveFromList = new ToolButton( bar, tr( "Remove from Playlist" ), "mpegplayer/remove_from_playlist",
139 this , SLOT(removeSelected()) );
140// d->tbPlay = new ToolButton( bar, tr( "Play" ), "mpegplayer/play", /*this */mediaPlayerState , SLOT(setPlaying(bool) /* btnPlay() */), TRUE );
141 d->tbPlay = new ToolButton( bar, tr( "Play" ), "mpegplayer/play",
142 this , SLOT( btnPlay(bool) ), TRUE );
143 d->tbShuffle = new ToolButton( bar, tr( "Randomize" ),"mpegplayer/shuffle",
144 mediaPlayerState, SLOT(setShuffled(bool)), TRUE );
145 d->tbLoop = new ToolButton( bar, tr( "Loop" ),"mpegplayer/loop",
146 mediaPlayerState, SLOT(setLooping(bool)), TRUE );
147 tbDeletePlaylist->hide();
127 148
128 QPopupMenu *pmPlayList = new QPopupMenu( this ); 149 QPopupMenu *pmPlayList = new QPopupMenu( this );
129 menu->insertItem( tr( "File" ), pmPlayList ); 150 menu->insertItem( tr( "File" ), pmPlayList );
@@ -132,7 +153,7 @@ PlayListWidget::PlayListWidget( QWidget* parent, const char* name, WFlags fl )
132 new MenuItem( pmPlayList, tr( "Add all video files" ), this, SLOT( addAllVideoToList() ) ); 153 new MenuItem( pmPlayList, tr( "Add all video files" ), this, SLOT( addAllVideoToList() ) );
133 new MenuItem( pmPlayList, tr( "Add all files" ), this, SLOT( addAllToList() ) ); 154 new MenuItem( pmPlayList, tr( "Add all files" ), this, SLOT( addAllToList() ) );
134 new MenuItem( pmPlayList, tr( "Save PlayList" ), this, SLOT( saveList() ) ); 155 new MenuItem( pmPlayList, tr( "Save PlayList" ), this, SLOT( saveList() ) );
135 new MenuItem( pmPlayList, tr( "Load PlayList" ), this, SLOT( loadList() ) ); 156 // new MenuItem( pmPlayList, tr( "Load PlayList" ), this, SLOT( loadList() ) );
136 157
137 QPopupMenu *pmView = new QPopupMenu( this ); 158 QPopupMenu *pmView = new QPopupMenu( this );
138 menu->insertItem( tr( "View" ), pmView ); 159 menu->insertItem( tr( "View" ), pmView );
@@ -151,7 +172,7 @@ PlayListWidget::PlayListWidget( QWidget* parent, const char* name, WFlags fl )
151 172
152 tabWidget = new QTabWidget( hbox6, "tabWidget" ); 173 tabWidget = new QTabWidget( hbox6, "tabWidget" );
153 tabWidget->setTabShape(QTabWidget::Triangular); 174 tabWidget->setTabShape(QTabWidget::Triangular);
154 175
155 QWidget *pTab; 176 QWidget *pTab;
156 pTab = new QWidget( tabWidget, "pTab" ); 177 pTab = new QWidget( tabWidget, "pTab" );
157 playlistView = new QListView( pTab, "Videoview" ); 178 playlistView = new QListView( pTab, "Videoview" );
@@ -228,35 +249,39 @@ PlayListWidget::PlayListWidget( QWidget* parent, const char* name, WFlags fl )
228 newItem->setPixmap(0, Resource::loadPixmap( "mpegplayer/videofile" )); 249 newItem->setPixmap(0, Resource::loadPixmap( "mpegplayer/videofile" ));
229 } 250 }
230 } 251 }
231 // add the library area
232 QPEApplication::setStylusOperation( this, QPEApplication::RightOnHold );
233 252
234// connect( audioView, SIGNAL( clicked( QListViewItem *) ), this, SLOT( playIt( QListViewItem *) ) ); 253//playlists list
235// connect( videoView, SIGNAL( clicked( QListViewItem *) ), this, SLOT( playIt( QListViewItem *) ) ); 254 QWidget *LTab;
255 LTab = new QWidget( tabWidget, "LTab" );
256 playLists = new FileSelector( "playlist/plain", LTab, "fileselector" , FALSE, FALSE); //buggy
257 playLists->setMinimumSize(233,260);;
258 tabWidget->insertTab(LTab,"Lists");
259 connect( playLists, SIGNAL( fileSelected( const DocLnk &) ), this, SLOT( loadList( const DocLnk & ) ) );
260// connect( playLists, SIGNAL( newSelected( const DocLnk &) ), this, SLOT( newFile( const DocLnk & ) ) );
236 261
237 connect( audioView, SIGNAL( clicked( QListViewItem *) ), this, SLOT( addToSelection( QListViewItem *) ) );
238 connect( videoView, SIGNAL( clicked( QListViewItem *) ), this, SLOT( addToSelection( QListViewItem *) ) );
239 262
240 connect( audioView, SIGNAL( rightButtonPressed( QListViewItem *, const QPoint&, int ) ), 263// add the library area
241 this, SLOT( addToSelection( QListViewItem *, const QPoint&, int )) ); 264 QPEApplication::setStylusOperation( this, QPEApplication::RightOnHold );
242 connect( videoView, SIGNAL( rightButtonPressed( QListViewItem *, const QPoint&, int ) ),
243 this, SLOT( addToSelection( QListViewItem *, const QPoint&, int )) );
244 265
245 266
246 connect( tabWidget, SIGNAL (currentChanged(QWidget*)),this,SLOT(tabChanged(QWidget*))); 267 connect( audioView, SIGNAL( rightButtonClicked( QListViewItem *, const QPoint &, int)),
247 // connect( d->files, SIGNAL( fileSelected( const DocLnk & ) ), this, SLOT( addToSelection( const DocLnk & ) ) ); 268 this, SLOT( fauxPlay( QListViewItem *) ) );
248 // connect( d->files, SIGNAL( fileSelected( const DocLnk & ) ), this, SLOT( addToSelection( const DocLnk & ) ) ); 269 connect( videoView, SIGNAL( rightButtonClicked( QListViewItem *, const QPoint &, int)),
249 connect( mediaPlayerState, SIGNAL( playingToggled( bool ) ), d->tbPlay, SLOT( setOn( bool ) ) ); 270 this, SLOT( fauxPlay( QListViewItem *)) );
250 connect( mediaPlayerState, SIGNAL( loopingToggled( bool ) ), d->tbLoop, SLOT( setOn( bool ) ) );
251 connect( mediaPlayerState, SIGNAL( shuffledToggled( bool ) ), d->tbShuffle, SLOT( setOn( bool ) ) );
252 271
253// connect( mediaPlayerState, SIGNAL( fullscreenToggled( bool ) ), fullScreenButton, SLOT( setOn( bool ) ) ); 272// connect( audioView, SIGNAL( clicked( QListViewItem *) ), this, SLOT( fauxPlay( QListViewItem *) ) );
254// connect( mediaPlayerState, SIGNAL( scaledToggled( bool ) ), scaleButton, SLOT( setEnabled( bool ) ) ); 273// connect( videoView, SIGNAL( clicked( QListViewItem *) ), this, SLOT( fauxPlay( QListViewItem *) ) );
255// connect( mediaPlayerState, SIGNAL( fullscreenToggled( bool ) ), fullScreenButton, SLOT( setEnabled( bool ) ) );
256 274
257 connect( mediaPlayerState, SIGNAL( playlistToggled( bool ) ), this, SLOT( setPlaylist( bool ) ) ); 275 connect( audioView, SIGNAL( doubleClicked( QListViewItem *) ), this, SLOT( addToSelection( QListViewItem *) ) );
276 connect( videoView, SIGNAL( doubleClicked( QListViewItem *) ), this, SLOT( addToSelection( QListViewItem *) ) );
258 277
259 connect( d->selectedFiles, SIGNAL( clicked( QListViewItem *) ), this, SLOT( playIt( QListViewItem *) ) ); 278 connect( tabWidget, SIGNAL (currentChanged(QWidget*)),this,SLOT(tabChanged(QWidget*)));
279 connect( mediaPlayerState, SIGNAL( playingToggled( bool ) ), d->tbPlay, SLOT( setOn( bool ) ) );
280 connect( mediaPlayerState, SIGNAL( loopingToggled( bool ) ), d->tbLoop, SLOT( setOn( bool ) ) );
281 connect( mediaPlayerState, SIGNAL( shuffledToggled( bool ) ), d->tbShuffle, SLOT( setOn( bool ) ) );
282 connect( mediaPlayerState, SIGNAL( playlistToggled( bool ) ), this, SLOT( setPlaylist( bool ) ) );
283
284 connect( d->selectedFiles, SIGNAL( doubleClicked( QListViewItem *) ), this, SLOT( playIt( QListViewItem *) ) );
260// connect( d->selectedFiles, SIGNAL( fileSelected( const DocLnk & ) ), this, SLOT( addToSelection( const DocLnk & ) ) ); 285// connect( d->selectedFiles, SIGNAL( fileSelected( const DocLnk & ) ), this, SLOT( addToSelection( const DocLnk & ) ) );
261 286
262 setCentralWidget( vbox5 ); 287 setCentralWidget( vbox5 );
@@ -287,6 +312,9 @@ void PlayListWidget::initializeStates() {
287// d->tbScale->setOn( mediaPlayerState->scaled() ); 312// d->tbScale->setOn( mediaPlayerState->scaled() );
288// d->tbScale->setEnabled( mediaPlayerState->fullscreen() ); 313// d->tbScale->setEnabled( mediaPlayerState->fullscreen() );
289// setPlaylist( mediaPlayerState->playlist() ); 314// setPlaylist( mediaPlayerState->playlist() );
315 setPlaylist( true);
316 d->selectedFiles->first();
317
290} 318}
291 319
292 320
@@ -296,13 +324,12 @@ void PlayListWidget::readConfig( Config& cfg ) {
296 int noOfFiles = cfg.readNumEntry("NumberOfFiles", 0 ); 324 int noOfFiles = cfg.readNumEntry("NumberOfFiles", 0 );
297 325
298 for ( int i = 0; i < noOfFiles; i++ ) { 326 for ( int i = 0; i < noOfFiles; i++ ) {
299 QString entryName; 327 QString entryName;
300 entryName.sprintf( "File%i", i + 1 ); 328 entryName.sprintf( "File%i", i + 1 );
301 QString linkFile = cfg.readEntry( entryName ); 329 QString linkFile = cfg.readEntry( entryName );
302 DocLnk lnk( linkFile ); 330 DocLnk lnk( linkFile );
303 if ( lnk.isValid() ) 331 if ( lnk.isValid() )
304 d->selectedFiles->addToSelection( lnk ); 332 d->selectedFiles->addToSelection( lnk );
305
306 } 333 }
307} 334}
308 335
@@ -334,16 +361,19 @@ void PlayListWidget::writeConfig( Config& cfg ) const {
334 ); 361 );
335 } 362 }
336 } 363 }
337 noOfFiles++; 364 noOfFiles++;
338 } 365 }
339 } while ( d->selectedFiles->next() ); 366 } while ( d->selectedFiles->next() );
340 367
341 cfg.writeEntry("NumberOfFiles", noOfFiles ); 368 cfg.writeEntry("NumberOfFiles", noOfFiles );
369
370
342} 371}
343 372
344 373
345void PlayListWidget::addToSelection( const DocLnk& lnk ) { 374void PlayListWidget::addToSelection( const DocLnk& lnk ) {
346 d->setDocumentUsed = FALSE; 375 qDebug("add");
376 d->setDocumentUsed = FALSE;
347 if ( mediaPlayerState->playlist() ) 377 if ( mediaPlayerState->playlist() )
348 d->selectedFiles->addToSelection( lnk ); 378 d->selectedFiles->addToSelection( lnk );
349 else 379 else
@@ -351,16 +381,6 @@ void PlayListWidget::addToSelection( const DocLnk& lnk ) {
351} 381}
352 382
353 383
354void PlayListWidget::addToSelection( QListViewItem *it ,const QPoint & p, int index) {
355 qDebug("add");
356// d->selectedFiles->addToSelection( lnk );
357 // }
358// else
359// mediaPlayerState->setPlaying( TRUE );
360//
361}
362
363
364void PlayListWidget::clearList() { 384void PlayListWidget::clearList() {
365 while ( first() ) 385 while ( first() )
366 d->selectedFiles->removeSelected(); 386 d->selectedFiles->removeSelected();
@@ -396,16 +416,16 @@ void PlayListWidget::addAllVideoToList() {
396 416
397void PlayListWidget::setDocument(const QString& fileref) { 417void PlayListWidget::setDocument(const QString& fileref) {
398 if ( fileref.isNull() ) { 418 if ( fileref.isNull() ) {
399 QMessageBox::critical( 0, tr( "Invalid File" ), tr( "There was a problem in getting the file." ) ); 419 QMessageBox::critical( 0, tr( "Invalid File" ), tr( "There was a problem in getting the file." ) );
400 return; 420 return;
401 } 421 }
402 if ( mediaPlayerState->playlist() ) 422 if ( mediaPlayerState->playlist() )
403 addToSelection( DocLnk( fileref ) ); 423 addToSelection( DocLnk( fileref ) );
404 else { 424 else {
405 d->setDocumentUsed = TRUE; 425 d->setDocumentUsed = TRUE;
406 if ( d->current ) 426 if ( d->current )
407 delete d->current; 427 delete d->current;
408 d->current = new DocLnk( fileref ); 428 d->current = new DocLnk( fileref );
409 } 429 }
410 mediaPlayerState->setPlaying( FALSE ); 430 mediaPlayerState->setPlaying( FALSE );
411 mediaPlayerState->setPlaying( TRUE ); 431 mediaPlayerState->setPlaying( TRUE );
@@ -426,12 +446,16 @@ void PlayListWidget::useSelectedDocument() {
426 446
427 447
428const DocLnk *PlayListWidget::current() { 448const DocLnk *PlayListWidget::current() {
429 if ( mediaPlayerState->playlist() ) 449
430 return d->selectedFiles->current(); 450// qDebug("in Playlist widget ::current");
451 if ( mediaPlayerState->playlist() ) {
452 return d->selectedFiles->current();
453 }
431 else if ( d->setDocumentUsed && d->current ) { 454 else if ( d->setDocumentUsed && d->current ) {
432 return d->current; 455 return d->current;
433 } else 456 } else {
434 return d->files->selected(); 457 return d->files->selected();
458 }
435} 459}
436 460
437 461
@@ -501,20 +525,48 @@ bool PlayListWidget::last() {
501 525
502 526
503void PlayListWidget::saveList() { 527void PlayListWidget::saveList() {
528
504 QString filename; 529 QString filename;
505// pseudo code 530 InputDialog *fileDlg;
506// filename = QLineEdit->getText(); 531 fileDlg=new InputDialog(this,"Save Playlist",TRUE, 0);
507 Config cfg( filename + ".playlist" ); 532 fileDlg->exec();
508 writeConfig( cfg ); 533 if( fileDlg->result() == 1 ) {
534 filename = fileDlg->LineEdit1->text();//+".playlist";
535 qDebug("saving playlist "+filename+".playlist");
536
537// DocLnk *lnk;
538// lnk.setName( filename); //sets file name
539// // lnk.setComment(title);
540// lnk.setFile( filename+".playlist"); //sets File property
541// lnk.setType("player/plain");// hey is this a REGISTERED mime type?!?!? ;D
542// lnk.setIcon("MPEGPlayer");
543// if(!lnk.writeLink())
544// qDebug("Writing doclink did not work");
545
546 Config cfg( filename +".playlist");
547 writeConfig( cfg );
548 }
549 DocLnk lnk;
550 lnk.setName( filename); //sets file name
551// lnk.setComment(title);
552 lnk.setFile(QPEApplication::qpeDir()+"Settings/"+filename+".playlist.conf"); //sets File property
553 lnk.setType("playlist/plain");// hey is this a REGISTERED mime type?!?!? ;D
554 lnk.setIcon("MPEGPlayer");
555 if(!lnk.writeLink())
556 qDebug("Writing doclink did not work");
557
558 if(fileDlg)
559 delete fileDlg;
509} 560}
510 561
511 562
512void PlayListWidget::loadList() { 563void PlayListWidget::loadList( const DocLnk & lnk) {
513 QString filename; 564
514// pseudo code 565 clearList();
515// filename = FileSelector->openFile( "*.playlist" ); 566 Config cfg( lnk.file());
516 Config cfg( filename + ".playlist" ); 567 readConfig(cfg);
517 readConfig( cfg ); 568 tabWidget->setCurrentPage(0);
569 setCaption("OpiePlayer: "+lnk.name());
518} 570}
519 571
520 572
@@ -534,20 +586,19 @@ void PlayListWidget::setView( char view ) {
534} 586}
535 587
536void PlayListWidget::addSelected() { 588void PlayListWidget::addSelected() {
537// QMessageBox::message("Note","Bozo the clown thinks\nthere's something actually here"); 589
538 int tabPage=tabWidget->currentPageIndex(); 590 switch (tabWidget->currentPageIndex()) {
539 switch (tabPage) { 591 case 0: //playlist
540 case 0: //playlist
541 break; 592 break;
542 case 1: { //audio 593 case 1: { //audio
543 addToSelection( audioView->selectedItem() ); 594 addToSelection( audioView->selectedItem() );
544 } 595 }
545 break; 596 break;
546 case 2: { // video 597 case 2: { // video
547 addToSelection( videoView->selectedItem() ); 598 addToSelection( videoView->selectedItem() );
548 } 599 }
549 break; 600 break;
550 }; 601 };
551} 602}
552 603
553void PlayListWidget::removeSelected() { 604void PlayListWidget::removeSelected() {
@@ -557,93 +608,155 @@ void PlayListWidget::removeSelected() {
557 608
558void PlayListWidget::playIt( QListViewItem *it) { 609void PlayListWidget::playIt( QListViewItem *it) {
559// d->setDocumentUsed = FALSE; 610// d->setDocumentUsed = FALSE;
560 mediaPlayerState->setPlaying(true); 611 mediaPlayerState->setPlaying(TRUE);
561} 612}
562 613
563void PlayListWidget::addToSelection( QListViewItem *it) { 614void PlayListWidget::addToSelection( QListViewItem *it) {
564 d->setDocumentUsed = FALSE; 615 d->setDocumentUsed = FALSE;
565 616
566 if(it) { 617 if(it) {
567 qDebug("add to selection"); 618// qDebug("add to selection");
568 int tabPage=tabWidget->currentPageIndex(); 619 switch (tabWidget->currentPageIndex()) {
569 switch (tabPage) { 620 case 1: {
570 case 1: { 621// qDebug("case 1");
622 QListIterator<DocLnk> dit( files.children() );
623 for ( ; dit.current(); ++dit ) {
624// qDebug(dit.current()->name());
625 if( dit.current()->name() == it->text(0)) {
626 d->selectedFiles->addToSelection( **dit );
627 }
628 }
629 }
630 break;
631 case 2: {
632// qDebug("case 2");
633 QListIterator<DocLnk> dit( vFiles.children() );
634 for ( ; dit.current(); ++dit ) {
635// qDebug(dit.current()->name());
636 if( dit.current()->name() == it->text(0)) {
637 d->selectedFiles->addToSelection( **dit );
638 }
639 }
640 }
641 break;
642 case 0:
643 break;
644 };
645 tabWidget->setCurrentPage(0);
646// mediaPlayerState->setPlaying( TRUE );
647 }
648}
649
650void PlayListWidget::tabChanged(QWidget *widg) {
651
652 switch ( tabWidget->currentPageIndex()) {
653 case 0:
654 {
655 if( !tbDeletePlaylist->isHidden())
656 tbDeletePlaylist->hide();
657 d->tbRemoveFromList->setEnabled(TRUE);
658 d->tbAddToList->setEnabled(FALSE);
659 }
660 break;
661 case 1:
662 {
663 if( !tbDeletePlaylist->isHidden())
664 tbDeletePlaylist->hide();
665 d->tbRemoveFromList->setEnabled(FALSE);
666 d->tbAddToList->setEnabled(TRUE);
667 }
668 break;
669 case 2:
670 {
671 if( !tbDeletePlaylist->isHidden())
672 tbDeletePlaylist->hide();
673 d->tbRemoveFromList->setEnabled(FALSE);
674 d->tbAddToList->setEnabled(TRUE);
675 }
676 break;
677 case 3:
678 {
679 if( tbDeletePlaylist->isHidden())
680 tbDeletePlaylist->show();
681 playLists->reread();
682 }
683 break;
684 };
685}
686
687/*
688 list is right clicked*/
689void PlayListWidget::fauxPlay(QListViewItem *it) {
690
691 switch (tabWidget->currentPageIndex()) {
692 case 0: //playlist
693 break;
694 case 1: { //audio
571 QListIterator<DocLnk> dit( files.children() ); 695 QListIterator<DocLnk> dit( files.children() );
572 for ( ; dit.current(); ++dit ) { 696 for ( ; dit.current(); ++dit ) {
697// qDebug(dit.current()->name());
573 if( dit.current()->name() == it->text(0)) { 698 if( dit.current()->name() == it->text(0)) {
574 d->selectedFiles->addToSelection( **dit ); 699 d->selectedFiles->addToSelection( **dit );
575 } 700 }
576 } 701 }
577 } 702 }
578 break; 703 break;
579 case 2: { 704 case 2: { // video
580 QListIterator<DocLnk> dit( vFiles.children() ); 705 QListIterator<DocLnk> dit( vFiles.children() );
581 for ( ; dit.current(); ++dit ) { 706 for ( ; dit.current(); ++dit ) {
582 qDebug(dit.current()->name()); 707// qDebug(dit.current()->name());
583 if( dit.current()->name() == it->text(0)) { 708 if( dit.current()->name() == it->text(0)) {
584 d->selectedFiles->addToSelection( **dit ); 709 d->selectedFiles->addToSelection( **dit );
585 } 710 }
586 } 711 }
587 } 712 }
588 break; 713 break;
589 case 0:
590 break;
591 }; 714 };
592 tabWidget->setCurrentPage(0); 715 mediaPlayerState->setPlaying( TRUE );
593// mediaPlayerState->setPlaying( TRUE ); 716// tabWidget->setCurrentPage(0);
594 } 717 d->selectedFiles->removeSelected();
595} 718}
596 719
597void PlayListWidget::tabChanged(QWidget *widg) { 720/*
598 721 play button is pressed*/
599 int tabPage=tabWidget->currentPageIndex(); 722void PlayListWidget::btnPlay(bool b) { // this is fugly
600 switch (tabPage) { 723 switch ( tabWidget->currentPageIndex()) {
601 case 0: 724 case 0:
602 { 725 {
603 d->tbRemoveFromList->setEnabled(TRUE); 726 mediaPlayerState->setPlaying(b);
604 d->tbAddToList->setEnabled(FALSE);
605 } 727 }
606 break; 728 break;
607 case 1: 729 case 1:
608 { 730 {
609 d->tbRemoveFromList->setEnabled(FALSE); 731 addToSelection( audioView->selectedItem() );
610 d->tbAddToList->setEnabled(TRUE); 732 mediaPlayerState->setPlaying(b);
611 } 733 d->selectedFiles->removeSelected( );
612 break; 734 tabWidget->setCurrentPage(1);
613 case 2: 735 }
614 { 736 break;
615 d->tbRemoveFromList->setEnabled(FALSE); 737 case 2:
616 d->tbAddToList->setEnabled(TRUE); 738 {
617 } 739 addToSelection( videoView->selectedItem() );
618 break; 740 mediaPlayerState->setPlaying(b);
619 }; 741 d->selectedFiles->removeSelected( );
620} 742 tabWidget->setCurrentPage(2);
621 743 }
622// void PlayListWidget::cancelMenuTimer() { 744 break;
623// if( menuTimer->isActive() ) 745 };
624// menuTimer->stop();
625// }
626
627// void PlayListWidget::showFileMenu() {
628
629// }
630
631// void PlayListWidget::contentsMousePressEvent( QMouseEvent * e )
632// {
633// // QListView::contentsMousePressEvent( e );
634// menuTimer->start( 750, TRUE );
635// }
636 746
747}
637 748
638// void PlayListWidget::contentsMouseReleaseEvent( QMouseEvent * e ) 749void PlayListWidget::deletePlaylist() {
639// { 750 switch( QMessageBox::information( this, (tr("Remove Playlist?")),
640// // QListView::contentsMouseReleaseEvent( e ); 751 (tr("You really want to delete\nthis playlist?")),
641// menuTimer->stop(); 752 (tr("Yes")), (tr("No")), 0 )){
642// } 753 case 0: // Yes clicked,
643// // void PlayListWidget::setFullScreen() { 754 QFile().remove(playLists->selected()->file());
644// mediaPlayerState->toggleFullscreen( ); 755 QFile().remove(playLists->selected()->linkFile());
645// } 756 playLists->reread();
757 break;
758 case 1: // Cancel
759 break;
760 };
646 761
647// void PlayListWidget::setScaled() { 762}
648// mediaPlayerState->toggleScaled();
649// }
diff --git a/core/multimedia/opieplayer/playlistwidget.h b/core/multimedia/opieplayer/playlistwidget.h
index 5b05f11..46272a0 100644
--- a/core/multimedia/opieplayer/playlistwidget.h
+++ b/core/multimedia/opieplayer/playlistwidget.h
@@ -23,6 +23,9 @@
23#include <qmainwindow.h> 23#include <qmainwindow.h>
24#include <qpe/applnk.h> 24#include <qpe/applnk.h>
25#include <qtabwidget.h> 25#include <qtabwidget.h>
26#include <fileselector.h>
27#include <qpushbutton.h>
28
26/* #include <qtimer.h> */ 29/* #include <qtimer.h> */
27 30
28 31
@@ -49,12 +52,12 @@ public:
49 const DocLnk *current(); 52 const DocLnk *current();
50 void useSelectedDocument(); 53 void useSelectedDocument();
51/* QTimer * menuTimer; */ 54/* QTimer * menuTimer; */
52 55 FileSelector* playLists;
56 QPushButton *tbDeletePlaylist;
53public slots: 57public slots:
54 void setDocument( const QString& fileref ); 58 void setDocument( const QString& fileref );
55 void addToSelection( const DocLnk& ); // Add a media file to the playlist 59 void addToSelection( const DocLnk& ); // Add a media file to the playlist
56 void addToSelection( QListViewItem* ); // Add a media file to the playlist 60 void addToSelection( QListViewItem* ); // Add a media file to the playlist
57 void addToSelection( QListViewItem*, const QPoint&,int ); // Add a media file to the playlist
58 void setActiveWindow(); // need to handle this to show the right view 61 void setActiveWindow(); // need to handle this to show the right view
59 void setPlaylist( bool ); // Show/Hide the playlist 62 void setPlaylist( bool ); // Show/Hide the playlist
60 void setView( char ); 63 void setView( char );
@@ -63,8 +66,11 @@ public slots:
63 void addAllMusicToList(); 66 void addAllMusicToList();
64 void addAllVideoToList(); 67 void addAllVideoToList();
65 void saveList(); // Save the playlist 68 void saveList(); // Save the playlist
66 void loadList(); // Load a playlist 69 void loadList( const DocLnk &); // Load a playlist
67 void playIt( QListViewItem *); 70 void playIt( QListViewItem *);
71 void fauxPlay(QListViewItem *);
72 void btnPlay(bool);
73 void deletePlaylist();
68 bool first(); 74 bool first();
69 bool last(); 75 bool last();
70 bool next(); 76 bool next();
diff --git a/core/multimedia/opieplayer/videowidget.cpp b/core/multimedia/opieplayer/videowidget.cpp
index 1f128a4..be838c4 100644
--- a/core/multimedia/opieplayer/videowidget.cpp
+++ b/core/multimedia/opieplayer/videowidget.cpp
@@ -18,7 +18,7 @@
18** 18**
19**********************************************************************/ 19**********************************************************************/
20#include <qpe/resource.h> 20#include <qpe/resource.h>
21#include "mediaplayerplugininterface.h" 21#include <qpe/mediaplayerplugininterface.h>
22#include <qwidget.h> 22#include <qwidget.h>
23#include <qpainter.h> 23#include <qpainter.h>
24#include <qpixmap.h> 24#include <qpixmap.h>
diff --git a/core/multimedia/opieplayer/wavplugin/wavplugin.cpp b/core/multimedia/opieplayer/wavplugin/wavplugin.cpp
index 7ac63c0..4a0da16 100644
--- a/core/multimedia/opieplayer/wavplugin/wavplugin.cpp
+++ b/core/multimedia/opieplayer/wavplugin/wavplugin.cpp
@@ -70,7 +70,7 @@ public:
70 samples = -1; 70 samples = -1;
71 } 71 }
72 72
73 // expands out samples to the frequency of 44kHz 73 // expands out samples to the frequency of 44kHz //not any more
74 bool add( short *output, long count, long& done, bool stereo ) 74 bool add( short *output, long count, long& done, bool stereo )
75 { 75 {
76 done = 0; 76 done = 0;
@@ -88,6 +88,8 @@ public:
88 return FALSE; 88 return FALSE;
89 } 89 }
90 samples_due += chunkdata.samplesPerSec; 90 samples_due += chunkdata.samplesPerSec;
91 printf("samples due %d\r", samples_due);
92 fflush(stdout);
91 while ( count && (samples_due > chunkdata.samplesPerSec) ) { 93 while ( count && (samples_due > chunkdata.samplesPerSec) ) {
92 *output++ = l; 94 *output++ = l;
93 if ( stereo ) 95 if ( stereo )
@@ -328,13 +330,13 @@ bool WavPlugin::audioReadSamples( short *output, int channels, long samples, lon
328} 330}
329 331
330double WavPlugin::getTime() { 332double WavPlugin::getTime() {
331// qDebug( "WavPlugin::getTime" ); 333// qDebug( "WavPlugin::getTime" ); //this is a stupid hack here!!
332 return 0.0; 334 return d->chunkdata.wBitsPerSample; /*0.0*/;
333} 335}
334 336
335int WavPlugin::audioBitsPerSample( int ) { 337// int WavPlugin::audioBitsPerSample( int ) {
336// qDebug( "WavPlugin::audioFormat %d", d->chunkdata.wBitsPerSample ); 338// // qDebug( "WavPlugin::audioFormat %d", d->chunkdata.wBitsPerSample );
337 return d->chunkdata.wBitsPerSample; // 339// return d->chunkdata.wBitsPerSample; //
338} 340// }
339 341
340 342
diff --git a/core/multimedia/opieplayer/wavplugin/wavplugin.h b/core/multimedia/opieplayer/wavplugin/wavplugin.h
index 6ae6e06..1c8ba14 100644
--- a/core/multimedia/opieplayer/wavplugin/wavplugin.h
+++ b/core/multimedia/opieplayer/wavplugin/wavplugin.h
@@ -24,7 +24,8 @@
24 24
25#include <qstring.h> 25#include <qstring.h>
26#include <qapplication.h> 26#include <qapplication.h>
27#include "../mediaplayerplugininterface.h" 27/* #include "../mediaplayerplugininterface.h" */
28#include <qpe/mediaplayerplugininterface.h>
28 29
29 30
30// #define OLD_MEDIAPLAYER_API 31// #define OLD_MEDIAPLAYER_API
@@ -53,7 +54,7 @@ public:
53 int audioStreams(); 54 int audioStreams();
54 int audioChannels( int stream ); 55 int audioChannels( int stream );
55 int audioFrequency( int stream ); 56 int audioFrequency( int stream );
56 int audioBitsPerSample( int stream ); 57/* int audioBitsPerSample( int stream ); */
57 int audioSamples( int stream ); 58 int audioSamples( int stream );
58 bool audioSetSample( long sample, int stream ); 59 bool audioSetSample( long sample, int stream );
59 long audioGetSample( int stream ); 60 long audioGetSample( int stream );
diff --git a/core/multimedia/opieplayer/wavplugin/wavpluginimpl.cpp b/core/multimedia/opieplayer/wavplugin/wavpluginimpl.cpp
index 2923180..c232d7b 100644
--- a/core/multimedia/opieplayer/wavplugin/wavpluginimpl.cpp
+++ b/core/multimedia/opieplayer/wavplugin/wavpluginimpl.cpp
@@ -29,14 +29,14 @@ WavPluginImpl::WavPluginImpl()
29WavPluginImpl::~WavPluginImpl() 29WavPluginImpl::~WavPluginImpl()
30{ 30{
31 if ( libmadplugin ) 31 if ( libmadplugin )
32 delete libmadplugin; 32 delete libmadplugin;
33} 33}
34 34
35 35
36MediaPlayerDecoder *WavPluginImpl::decoder() 36MediaPlayerDecoder *WavPluginImpl::decoder()
37{ 37{
38 if ( !libmadplugin ) 38 if ( !libmadplugin )
39 libmadplugin = new WavPlugin; 39 libmadplugin = new WavPlugin;
40 return libmadplugin; 40 return libmadplugin;
41} 41}
42 42
@@ -53,8 +53,8 @@ MediaPlayerEncoder *WavPluginImpl::encoder()
53QRESULT WavPluginImpl::queryInterface( const QUuid &uuid, QUnknownInterface **iface ) 53QRESULT WavPluginImpl::queryInterface( const QUuid &uuid, QUnknownInterface **iface )
54{ 54{
55 *iface = 0; 55 *iface = 0;
56 if ( ( uuid == IID_QUnknown ) || ( uuid == IID_MediaPlayerPlugin ) ) 56 if ( ( uuid == IID_QUnknown ) || ( uuid == IID_MediaPlayerPlugin ) )
57 *iface = this, (*iface)->addRef(); 57 *iface = this, (*iface)->addRef();
58 return QS_OK; 58 return QS_OK;
59} 59}
60 60
diff --git a/core/multimedia/opieplayer/wavplugin/wavpluginimpl.h b/core/multimedia/opieplayer/wavplugin/wavpluginimpl.h
index 10f9305..fb1fa73 100644
--- a/core/multimedia/opieplayer/wavplugin/wavpluginimpl.h
+++ b/core/multimedia/opieplayer/wavplugin/wavpluginimpl.h
@@ -20,7 +20,8 @@
20#ifndef WAV_PLUGIN_IMPL_H 20#ifndef WAV_PLUGIN_IMPL_H
21#define WAV_PLUGIN_IMPL_H 21#define WAV_PLUGIN_IMPL_H
22 22
23#include "../mediaplayerplugininterface.h" 23
24/* #include "../mediaplayerplugininterface.h" */
24 25
25 26
26class WavPlugin; 27class WavPlugin;