summaryrefslogtreecommitdiff
path: root/noncore
authorharlekin <harlekin>2002-11-10 15:46:12 (UTC)
committer harlekin <harlekin>2002-11-10 15:46:12 (UTC)
commitee6938139a5f8f24da901ab5a41930a98af00d44 (patch) (unidiff)
treedc9c2d23efc1e9fe600206d8c10d1c0c567208b6 /noncore
parentb0b173498acde27957f8ed9297bb2ed2346eb700 (diff)
downloadopie-ee6938139a5f8f24da901ab5a41930a98af00d44.zip
opie-ee6938139a5f8f24da901ab5a41930a98af00d44.tar.gz
opie-ee6938139a5f8f24da901ab5a41930a98af00d44.tar.bz2
better seek slider code for videowidget too
Diffstat (limited to 'noncore') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer2/audiowidget.cpp9
-rw-r--r--noncore/multimedia/opieplayer2/audiowidget.h1
-rw-r--r--noncore/multimedia/opieplayer2/videowidget.cpp36
-rw-r--r--noncore/multimedia/opieplayer2/videowidget.h1
-rw-r--r--noncore/multimedia/opieplayer2/xinecontrol.cpp2
5 files changed, 30 insertions, 19 deletions
diff --git a/noncore/multimedia/opieplayer2/audiowidget.cpp b/noncore/multimedia/opieplayer2/audiowidget.cpp
index 00d516c..de91a59 100644
--- a/noncore/multimedia/opieplayer2/audiowidget.cpp
+++ b/noncore/multimedia/opieplayer2/audiowidget.cpp
@@ -144,99 +144,96 @@ AudioWidget::AudioWidget(QWidget* parent, const char* name, WFlags f) :
144 QString skinPath = "opieplayer2/skins/" + skin; 144 QString skinPath = "opieplayer2/skins/" + skin;
145 pixBg = new QPixmap( Resource::loadPixmap( QString("%1/background").arg(skinPath) ) ); 145 pixBg = new QPixmap( Resource::loadPixmap( QString("%1/background").arg(skinPath) ) );
146 imgUp = new QImage( Resource::loadImage( QString("%1/skin_up").arg(skinPath) ) ); 146 imgUp = new QImage( Resource::loadImage( QString("%1/skin_up").arg(skinPath) ) );
147 imgDn = new QImage( Resource::loadImage( QString("%1/skin_down").arg(skinPath) ) ); 147 imgDn = new QImage( Resource::loadImage( QString("%1/skin_down").arg(skinPath) ) );
148 148
149 imgButtonMask = new QImage( imgUp->width(), imgUp->height(), 8, 255 ); 149 imgButtonMask = new QImage( imgUp->width(), imgUp->height(), 8, 255 );
150 imgButtonMask->fill( 0 ); 150 imgButtonMask->fill( 0 );
151 151
152 for ( int i = 0; i < 10; i++ ) { 152 for ( int i = 0; i < 10; i++ ) {
153 QString filename = QString( QPEApplication::qpeDir() + "/pics/" + skinPath + "/skin_mask_" + skin_mask_file_names[i] + ".png" ); 153 QString filename = QString( QPEApplication::qpeDir() + "/pics/" + skinPath + "/skin_mask_" + skin_mask_file_names[i] + ".png" );
154 masks[i] = new QBitmap( filename ); 154 masks[i] = new QBitmap( filename );
155 155
156 if ( !masks[i]->isNull() ) { 156 if ( !masks[i]->isNull() ) {
157 QImage imgMask = masks[i]->convertToImage(); 157 QImage imgMask = masks[i]->convertToImage();
158 uchar **dest = imgButtonMask->jumpTable(); 158 uchar **dest = imgButtonMask->jumpTable();
159 for ( int y = 0; y < imgUp->height(); y++ ) { 159 for ( int y = 0; y < imgUp->height(); y++ ) {
160 uchar *line = dest[y]; 160 uchar *line = dest[y];
161 for ( int x = 0; x < imgUp->width(); x++ ) 161 for ( int x = 0; x < imgUp->width(); x++ )
162 if ( !qRed( imgMask.pixel( x, y ) ) ) 162 if ( !qRed( imgMask.pixel( x, y ) ) )
163 line[x] = i + 1; 163 line[x] = i + 1;
164 } 164 }
165 } 165 }
166 166
167 } 167 }
168 168
169 for ( int i = 0; i < 10; i++ ) { 169 for ( int i = 0; i < 10; i++ ) {
170 buttonPixUp[i] = 0l; 170 buttonPixUp[i] = 0l;
171 buttonPixDown[i] = 0l; 171 buttonPixDown[i] = 0l;
172 } 172 }
173 173
174 setBackgroundPixmap( *pixBg ); 174 setBackgroundPixmap( *pixBg );
175 175
176 songInfo.setFocusPolicy( QWidget::NoFocus ); 176 songInfo.setFocusPolicy( QWidget::NoFocus );
177 changeTextColor( &songInfo ); 177 changeTextColor( &songInfo );
178 178
179 slider.setFixedHeight( 20 ); 179 slider.setFixedHeight( 20 );
180 slider.setMinValue( 0 ); 180 slider.setMinValue( 0 );
181 slider.setMaxValue( 1 ); 181 slider.setMaxValue( 1 );
182 slider.setFocusPolicy( QWidget::NoFocus ); 182 slider.setFocusPolicy( QWidget::NoFocus );
183 slider.setBackgroundPixmap( *pixBg ); 183 slider.setBackgroundPixmap( *pixBg );
184 184
185 time.setFocusPolicy( QWidget::NoFocus ); 185 time.setFocusPolicy( QWidget::NoFocus );
186 time.setAlignment( Qt::AlignCenter ); 186 time.setAlignment( Qt::AlignCenter );
187 time.setFrame(FALSE); 187 time.setFrame(FALSE);
188 changeTextColor( &time ); 188 changeTextColor( &time );
189 189
190 resizeEvent( NULL ); 190 resizeEvent( NULL );
191 191
192 connect( &slider, SIGNAL( sliderPressed() ), this, SLOT( sliderPressed() ) );
193 connect( &slider, SIGNAL( sliderReleased() ), this, SLOT( sliderReleased() ) );
194
195 connect( mediaPlayerState, SIGNAL( lengthChanged(long) ), this, SLOT( setLength(long) ) ); 192 connect( mediaPlayerState, SIGNAL( lengthChanged(long) ), this, SLOT( setLength(long) ) );
196 connect( mediaPlayerState, SIGNAL( viewChanged(char) ), this, SLOT( setView(char) ) ); 193 connect( mediaPlayerState, SIGNAL( viewChanged(char) ), this, SLOT( setView(char) ) );
197 connect( mediaPlayerState, SIGNAL( loopingToggled(bool) ), this, SLOT( setLooping(bool) ) ); 194 connect( mediaPlayerState, SIGNAL( loopingToggled(bool) ), this, SLOT( setLooping(bool) ) );
198 connect( mediaPlayerState, SIGNAL( playingToggled(bool) ), this, SLOT( setPlaying(bool) ) ); 195 connect( mediaPlayerState, SIGNAL( playingToggled(bool) ), this, SLOT( setPlaying(bool) ) );
199 connect( mediaPlayerState, SIGNAL( isSeekableToggled( bool ) ), this, SLOT( setSeekable( bool ) ) ); 196 connect( mediaPlayerState, SIGNAL( isSeekableToggled( bool ) ), this, SLOT( setSeekable( bool ) ) );
200 197
201 connect( this, SIGNAL( forwardClicked() ), this, SLOT( skipFor() ) ); 198 connect( this, SIGNAL( forwardClicked() ), this, SLOT( skipFor() ) );
202 connect( this, SIGNAL( backClicked() ), this, SLOT( skipBack() ) ); 199 connect( this, SIGNAL( backClicked() ), this, SLOT( skipBack() ) );
203 connect( this, SIGNAL( forwardReleased() ), this, SLOT( stopSkip() ) ); 200 connect( this, SIGNAL( forwardReleased() ), this, SLOT( stopSkip() ) );
204 connect( this, SIGNAL( backReleased() ), this, SLOT( stopSkip() ) ); 201 connect( this, SIGNAL( backReleased() ), this, SLOT( stopSkip() ) );
205 202
206 // Intialise state 203 // Intialise state
207 setLength( mediaPlayerState->length() ); 204 setLength( mediaPlayerState->length() );
208 setPosition( mediaPlayerState->position() ); 205 setPosition( mediaPlayerState->position() );
209 setLooping( mediaPlayerState->fullscreen() ); 206 setLooping( mediaPlayerState->fullscreen() );
210 // setPaused( mediaPlayerState->paused() ); 207 // setPaused( mediaPlayerState->paused() );
211 setPlaying( mediaPlayerState->playing() ); 208 setPlaying( mediaPlayerState->playing() );
212 209
213} 210}
214 211
215AudioWidget::~AudioWidget() { 212AudioWidget::~AudioWidget() {
216 213
217 for ( int i = 0; i < 10; i++ ) { 214 for ( int i = 0; i < 10; i++ ) {
218 delete buttonPixUp[i]; 215 delete buttonPixUp[i];
219 delete buttonPixDown[i]; 216 delete buttonPixDown[i];
220 } 217 }
221 delete pixBg; 218 delete pixBg;
222 delete imgUp; 219 delete imgUp;
223 delete imgDn; 220 delete imgDn;
224 delete imgButtonMask; 221 delete imgButtonMask;
225 for ( int i = 0; i < 10; i++ ) { 222 for ( int i = 0; i < 10; i++ ) {
226 delete masks[i]; 223 delete masks[i];
227 } 224 }
228// mediaPlayerState->setPlaying(false); 225// mediaPlayerState->setPlaying(false);
229} 226}
230 227
231namespace { 228namespace {
232 229
233QPixmap *combineImageWithBackground( QImage img, QPixmap bg, QPoint offset ) { 230QPixmap *combineImageWithBackground( QImage img, QPixmap bg, QPoint offset ) {
234 QPixmap pix( img.width(), img.height() ); 231 QPixmap pix( img.width(), img.height() );
235 QPainter p( &pix ); 232 QPainter p( &pix );
236 p.drawTiledPixmap( pix.rect(), bg, offset ); 233 p.drawTiledPixmap( pix.rect(), bg, offset );
237 p.drawImage( 0, 0, img ); 234 p.drawImage( 0, 0, img );
238 return new QPixmap( pix ); 235 return new QPixmap( pix );
239} 236}
240 237
241 238
242QPixmap *maskPixToMask( QPixmap pix, QBitmap mask ) { 239QPixmap *maskPixToMask( QPixmap pix, QBitmap mask ) {
@@ -274,110 +271,114 @@ void AudioWidget::resizeEvent( QResizeEvent * ) {
274 } 271 }
275 272
276 delete pixUp; 273 delete pixUp;
277 delete pixDn; 274 delete pixDn;
278} 275}
279 276
280static bool audioSliderBeingMoved = FALSE; 277static bool audioSliderBeingMoved = FALSE;
281 278
282 279
283void AudioWidget::sliderPressed() { 280void AudioWidget::sliderPressed() {
284 audioSliderBeingMoved = TRUE; 281 audioSliderBeingMoved = TRUE;
285} 282}
286 283
287 284
288void AudioWidget::sliderReleased() { 285void AudioWidget::sliderReleased() {
289 audioSliderBeingMoved = FALSE; 286 audioSliderBeingMoved = FALSE;
290 if ( slider.width() == 0 ) 287 if ( slider.width() == 0 )
291 return; 288 return;
292 long val = long((double)slider.value() * mediaPlayerState->length() / slider.width()); 289 long val = long((double)slider.value() * mediaPlayerState->length() / slider.width());
293 mediaPlayerState->setPosition( val ); 290 mediaPlayerState->setPosition( val );
294} 291}
295 292
296void AudioWidget::setPosition( long i ) { 293void AudioWidget::setPosition( long i ) {
297 // qDebug("<<<<<<<<<<<<<<<<<<<<<<<<set position %d",i); 294 // qDebug("<<<<<<<<<<<<<<<<<<<<<<<<set position %d",i);
298 updateSlider( i, mediaPlayerState->length() ); 295 updateSlider( i, mediaPlayerState->length() );
299} 296}
300 297
301 298
302void AudioWidget::setLength( long max ) { 299void AudioWidget::setLength( long max ) {
303 updateSlider( mediaPlayerState->position(), max ); 300 updateSlider( mediaPlayerState->position(), max );
304} 301}
305 302
306 303
307void AudioWidget::setView( char view ) { 304void AudioWidget::setView( char view ) {
308 305
309if ( view == 'a' ) { 306if ( view == 'a' ) {
310 // startTimer( 150 ); 307 // startTimer( 150 );
311 showMaximized(); 308 showMaximized();
312 } else { 309 } else {
313 killTimers(); 310 killTimers();
314 hide(); 311 hide();
315 } 312 }
316 // qApp->processEvents(); 313 // qApp->processEvents();
317} 314}
318 315
319 316
320void AudioWidget::setSeekable( bool isSeekable ) { 317void AudioWidget::setSeekable( bool isSeekable ) {
321 318
322 if ( isSeekable ) { 319 if ( !isSeekable ) {
323 qDebug("<<<<<<<<<<<<<<file is STREAMING>>>>>>>>>>>>>>>>>>>"); 320 qDebug("<<<<<<<<<<<<<<file is STREAMING>>>>>>>>>>>>>>>>>>>");
324 if( !slider.isHidden()) { 321 if( !slider.isHidden()) {
325 slider.hide(); 322 slider.hide();
326 } 323 }
327 disconnect( mediaPlayerState, SIGNAL( positionChanged(long) ),this, SLOT( setPosition(long) ) ); 324 disconnect( mediaPlayerState, SIGNAL( positionChanged(long) ),this, SLOT( setPosition(long) ) );
328 disconnect( mediaPlayerState, SIGNAL( positionUpdated(long) ),this, SLOT( setPosition(long) ) ); 325 disconnect( mediaPlayerState, SIGNAL( positionUpdated(long) ),this, SLOT( setPosition(long) ) );
326 disconnect( &slider, SIGNAL( sliderPressed() ), this, SLOT( sliderPressed() ) );
327 disconnect( &slider, SIGNAL( sliderReleased() ), this, SLOT( sliderReleased() ) );
329 } else { 328 } else {
330 // this stops the slider from being moved, thus 329 // this stops the slider from being moved, thus
331 // does not stop stream when it reaches the end 330 // does not stop stream when it reaches the end
332 slider.show(); 331 slider.show();
333 qDebug( " CONNECT SET POSTION " ); 332 qDebug( " CONNECT SET POSTION " );
334 connect( mediaPlayerState, SIGNAL( positionChanged(long) ),this, SLOT( setPosition(long) ) ); 333 connect( mediaPlayerState, SIGNAL( positionChanged(long) ),this, SLOT( setPosition(long) ) );
335 connect( mediaPlayerState, SIGNAL( positionUpdated(long) ),this, SLOT( setPosition(long) ) ); 334 connect( mediaPlayerState, SIGNAL( positionUpdated(long) ),this, SLOT( setPosition(long) ) );
335 connect( &slider, SIGNAL( sliderPressed() ), this, SLOT( sliderPressed() ) );
336 connect( &slider, SIGNAL( sliderReleased() ), this, SLOT( sliderReleased() ) );
336 } 337 }
337} 338}
338 339
339 340
340static QString timeAsString( long length ) { 341static QString timeAsString( long length ) {
341 int minutes = length / 60; 342 int minutes = length / 60;
342 int seconds = length % 60; 343 int seconds = length % 60;
343 return QString("%1:%2%3").arg( minutes ).arg( seconds / 10 ).arg( seconds % 10 ); 344 return QString("%1:%2%3").arg( minutes ).arg( seconds / 10 ).arg( seconds % 10 );
344} 345}
345 346
346void AudioWidget::updateSlider( long i, long max ) { 347void AudioWidget::updateSlider( long i, long max ) {
347 348
348 time.setText( timeAsString( i ) + " / " + timeAsString( max ) ); 349 time.setText( timeAsString( i ) + " / " + timeAsString( max ) );
349// qDebug( timeAsString( i ) + " / " + timeAsString( max ) ) ; 350// qDebug( timeAsString( i ) + " / " + timeAsString( max ) ) ;
350 351
351 if ( max == 0 ) { 352 if ( max == 0 ) {
352 return; 353 return;
353 } 354 }
354 // Will flicker too much if we don't do this 355 // Will flicker too much if we don't do this
355 // Scale to something reasonable 356 // Scale to something reasonable
356 int width = slider.width(); 357 int width = slider.width();
357 int val = int((double)i * width / max); 358 int val = int((double)i * width / max);
358 if ( !audioSliderBeingMoved ) { 359 if ( !audioSliderBeingMoved ) {
359 if ( slider.value() != val ) { 360 if ( slider.value() != val ) {
360 slider.setValue( val ); 361 slider.setValue( val );
361 } 362 }
362 363
363 if ( slider.maxValue() != width ) { 364 if ( slider.maxValue() != width ) {
364 slider.setMaxValue( width ); 365 slider.setMaxValue( width );
365 } 366 }
366 } 367 }
367} 368}
368 369
369 370
370void AudioWidget::setToggleButton( int i, bool down ) { 371void AudioWidget::setToggleButton( int i, bool down ) {
371 qDebug("setToggleButton %d", i); 372 qDebug("setToggleButton %d", i);
372 if ( down != audioButtons[i].isDown ) { 373 if ( down != audioButtons[i].isDown ) {
373 toggleButton( i ); 374 toggleButton( i );
374 } 375 }
375} 376}
376 377
377 378
378void AudioWidget::toggleButton( int i ) { 379void AudioWidget::toggleButton( int i ) {
379 audioButtons[i].isDown = !audioButtons[i].isDown; 380 audioButtons[i].isDown = !audioButtons[i].isDown;
380 QPainter p(this); 381 QPainter p(this);
381 paintButton ( &p, i ); 382 paintButton ( &p, i );
382} 383}
383 384
diff --git a/noncore/multimedia/opieplayer2/audiowidget.h b/noncore/multimedia/opieplayer2/audiowidget.h
index 09dc19b..bcd941e 100644
--- a/noncore/multimedia/opieplayer2/audiowidget.h
+++ b/noncore/multimedia/opieplayer2/audiowidget.h
@@ -44,97 +44,96 @@
44#include <qlineedit.h> 44#include <qlineedit.h>
45 45
46 46
47class QPixmap; 47class QPixmap;
48 48
49namespace { 49namespace {
50 50
51enum AudioButtons { 51enum AudioButtons {
52 AudioPlay=0, 52 AudioPlay=0,
53 AudioStop, 53 AudioStop,
54 AudioNext, 54 AudioNext,
55 AudioPrevious, 55 AudioPrevious,
56 AudioVolumeUp, 56 AudioVolumeUp,
57 AudioVolumeDown, 57 AudioVolumeDown,
58 AudioLoop, 58 AudioLoop,
59 AudioPlayList, 59 AudioPlayList,
60 AudioForward, 60 AudioForward,
61 AudioBack 61 AudioBack
62}; 62};
63}; 63};
64 64
65class Ticker : public QFrame { 65class Ticker : public QFrame {
66 Q_OBJECT 66 Q_OBJECT
67 67
68public: 68public:
69 Ticker( QWidget* parent=0 ); 69 Ticker( QWidget* parent=0 );
70 ~Ticker(); 70 ~Ticker();
71 void setText( const QString& text ) ; 71 void setText( const QString& text ) ;
72 72
73protected: 73protected:
74 void timerEvent( QTimerEvent * ); 74 void timerEvent( QTimerEvent * );
75 void drawContents( QPainter *p ); 75 void drawContents( QPainter *p );
76private: 76private:
77 QString scrollText; 77 QString scrollText;
78 int pos, pixelLen; 78 int pos, pixelLen;
79}; 79};
80 80
81 81
82class AudioWidget : public QWidget { 82class AudioWidget : public QWidget {
83 Q_OBJECT 83 Q_OBJECT
84public: 84public:
85 AudioWidget( QWidget* parent=0, const char* name=0, WFlags f=0 ); 85 AudioWidget( QWidget* parent=0, const char* name=0, WFlags f=0 );
86 ~AudioWidget(); 86 ~AudioWidget();
87 void setTickerText( const QString &text ) { songInfo.setText( text ); } 87 void setTickerText( const QString &text ) { songInfo.setText( text ); }
88public slots: 88public slots:
89 void updateSlider( long, long ); 89 void updateSlider( long, long );
90 void sliderPressed( ); 90 void sliderPressed( );
91 void sliderReleased( ); 91 void sliderReleased( );
92// void setPaused( bool b) { setToggleButton( AudioPause, b ); }
93 void setLooping( bool b) { setToggleButton( AudioLoop, b ); } 92 void setLooping( bool b) { setToggleButton( AudioLoop, b ); }
94 void setPlaying( bool b) { setToggleButton( AudioPlay, b ); } 93 void setPlaying( bool b) { setToggleButton( AudioPlay, b ); }
95 void setPosition( long ); 94 void setPosition( long );
96 void setLength( long ); 95 void setLength( long );
97 void setSeekable( bool ); 96 void setSeekable( bool );
98 void setView( char ); 97 void setView( char );
99 98
100signals: 99signals:
101 void moreClicked(); 100 void moreClicked();
102 void lessClicked(); 101 void lessClicked();
103 void moreReleased(); 102 void moreReleased();
104 void lessReleased(); 103 void lessReleased();
105 void forwardClicked(); 104 void forwardClicked();
106 void backClicked(); 105 void backClicked();
107 void forwardReleased(); 106 void forwardReleased();
108 void backReleased(); 107 void backReleased();
109 void sliderMoved(long); 108 void sliderMoved(long);
110 109
111protected: 110protected:
112 void doBlank(); 111 void doBlank();
113 void doUnblank(); 112 void doUnblank();
114 void paintEvent( QPaintEvent *pe ); 113 void paintEvent( QPaintEvent *pe );
115 void showEvent( QShowEvent *se ); 114 void showEvent( QShowEvent *se );
116 void resizeEvent( QResizeEvent *re ); 115 void resizeEvent( QResizeEvent *re );
117 void mouseMoveEvent( QMouseEvent *event ); 116 void mouseMoveEvent( QMouseEvent *event );
118 void mousePressEvent( QMouseEvent *event ); 117 void mousePressEvent( QMouseEvent *event );
119 void mouseReleaseEvent( QMouseEvent *event ); 118 void mouseReleaseEvent( QMouseEvent *event );
120 void timerEvent( QTimerEvent *event ); 119 void timerEvent( QTimerEvent *event );
121 void closeEvent( QCloseEvent *event ); 120 void closeEvent( QCloseEvent *event );
122 void keyReleaseEvent( QKeyEvent *e); 121 void keyReleaseEvent( QKeyEvent *e);
123private slots: 122private slots:
124 void skipFor(); 123 void skipFor();
125 void skipBack(); 124 void skipBack();
126 void stopSkip(); 125 void stopSkip();
127private: 126private:
128 void toggleButton( int ); 127 void toggleButton( int );
129 void setToggleButton( int, bool ); 128 void setToggleButton( int, bool );
130 void paintButton( QPainter *p, int i ); 129 void paintButton( QPainter *p, int i );
131 int skipDirection; 130 int skipDirection;
132 QString skin; 131 QString skin;
133 QPixmap *pixBg; 132 QPixmap *pixBg;
134 QImage *imgUp; 133 QImage *imgUp;
135 QImage *imgDn; 134 QImage *imgDn;
136 QImage *imgButtonMask; 135 QImage *imgButtonMask;
137 QBitmap *masks[10]; 136 QBitmap *masks[10];
138 QPixmap *buttonPixUp[10]; 137 QPixmap *buttonPixUp[10];
139 QPixmap *buttonPixDown[10]; 138 QPixmap *buttonPixDown[10];
140 139
diff --git a/noncore/multimedia/opieplayer2/videowidget.cpp b/noncore/multimedia/opieplayer2/videowidget.cpp
index 7d71d09..a847605 100644
--- a/noncore/multimedia/opieplayer2/videowidget.cpp
+++ b/noncore/multimedia/opieplayer2/videowidget.cpp
@@ -93,101 +93,100 @@ QWidget( parent, name, f ), scaledWidth( 0 ), scaledHeight( 0 ) {
93 93
94 connect ( videoFrame, SIGNAL( videoResized ( const QSize & )), this, SIGNAL( videoResized ( const QSize & ))); 94 connect ( videoFrame, SIGNAL( videoResized ( const QSize & )), this, SIGNAL( videoResized ( const QSize & )));
95 connect ( videoFrame, SIGNAL( clicked () ), this, SLOT ( backToNormal() ) ); 95 connect ( videoFrame, SIGNAL( clicked () ), this, SLOT ( backToNormal() ) );
96 96
97 Config cfg("OpiePlayer"); 97 Config cfg("OpiePlayer");
98 cfg.setGroup("Options"); 98 cfg.setGroup("Options");
99 skin = cfg.readEntry("Skin","default"); 99 skin = cfg.readEntry("Skin","default");
100 100
101 QString skinPath = "opieplayer2/skins/" + skin; 101 QString skinPath = "opieplayer2/skins/" + skin;
102 pixBg = new QPixmap( Resource::loadPixmap( QString("%1/background").arg(skinPath) ) ); 102 pixBg = new QPixmap( Resource::loadPixmap( QString("%1/background").arg(skinPath) ) );
103 imgUp = new QImage( Resource::loadImage( QString("%1/skinV_up").arg(skinPath) ) ); 103 imgUp = new QImage( Resource::loadImage( QString("%1/skinV_up").arg(skinPath) ) );
104 imgDn = new QImage( Resource::loadImage( QString("%1/skinV_down").arg(skinPath) ) ); 104 imgDn = new QImage( Resource::loadImage( QString("%1/skinV_down").arg(skinPath) ) );
105 105
106 imgButtonMask = new QImage( imgUp->width(), imgUp->height(), 8, 255 ); 106 imgButtonMask = new QImage( imgUp->width(), imgUp->height(), 8, 255 );
107 imgButtonMask->fill( 0 ); 107 imgButtonMask->fill( 0 );
108 108
109 for ( int i = 0; i < 7; i++ ) { 109 for ( int i = 0; i < 7; i++ ) {
110 QString filename = QString( QPEApplication::qpeDir() + "/pics/" + skinPath + "/skinV_mask_" + skinV_mask_file_names[i] + ".png" ); 110 QString filename = QString( QPEApplication::qpeDir() + "/pics/" + skinPath + "/skinV_mask_" + skinV_mask_file_names[i] + ".png" );
111 masks[i] = new QBitmap( filename ); 111 masks[i] = new QBitmap( filename );
112 112
113 if ( !masks[i]->isNull() ) { 113 if ( !masks[i]->isNull() ) {
114 QImage imgMask = masks[i]->convertToImage(); 114 QImage imgMask = masks[i]->convertToImage();
115 uchar **dest = imgButtonMask->jumpTable(); 115 uchar **dest = imgButtonMask->jumpTable();
116 for ( int y = 0; y < imgUp->height(); y++ ) { 116 for ( int y = 0; y < imgUp->height(); y++ ) {
117 uchar *line = dest[y]; 117 uchar *line = dest[y];
118 for ( int x = 0; x < imgUp->width(); x++ ) { 118 for ( int x = 0; x < imgUp->width(); x++ ) {
119 if ( !qRed( imgMask.pixel( x, y ) ) ) 119 if ( !qRed( imgMask.pixel( x, y ) ) )
120 line[x] = i + 1; 120 line[x] = i + 1;
121 } 121 }
122 } 122 }
123 } 123 }
124 } 124 }
125 125
126 for ( int i = 0; i < 7; i++ ) { 126 for ( int i = 0; i < 7; i++ ) {
127 buttonPixUp[i] = NULL; 127 buttonPixUp[i] = NULL;
128 buttonPixDown[i] = NULL; 128 buttonPixDown[i] = NULL;
129 } 129 }
130 130
131 setBackgroundPixmap( *pixBg ); 131 setBackgroundPixmap( *pixBg );
132 132
133 slider = new QSlider( Qt::Horizontal, this ); 133 slider = new QSlider( Qt::Horizontal, this );
134 slider->setMinValue( 0 ); 134 slider->setMinValue( 0 );
135 slider->setMaxValue( 1 ); 135 slider->setMaxValue( 1 );
136 slider->setBackgroundPixmap( Resource::loadPixmap( backgroundPix ) ); 136 slider->setBackgroundPixmap( Resource::loadPixmap( backgroundPix ) );
137 //slider->setFocusPolicy( QWidget::NoFocus ); 137 //slider->setFocusPolicy( QWidget::NoFocus );
138 138
139 resizeEvent( NULL ); 139 resizeEvent( NULL );
140 140
141 connect( slider, SIGNAL( sliderPressed() ), this, SLOT( sliderPressed() ) );
142 connect( slider, SIGNAL( sliderReleased() ), this, SLOT( sliderReleased() ) );
143 connect( mediaPlayerState, SIGNAL( lengthChanged(long) ), this, SLOT( setLength(long) ) ); 141 connect( mediaPlayerState, SIGNAL( lengthChanged(long) ), this, SLOT( setLength(long) ) );
144 connect( mediaPlayerState, SIGNAL( viewChanged(char) ), this, SLOT( setView(char) ) ); 142 connect( mediaPlayerState, SIGNAL( viewChanged(char) ), this, SLOT( setView(char) ) );
145 connect( mediaPlayerState, SIGNAL( playingToggled(bool) ), this, SLOT( setPlaying(bool) ) ); 143 connect( mediaPlayerState, SIGNAL( playingToggled(bool) ), this, SLOT( setPlaying(bool) ) );
144 connect( mediaPlayerState, SIGNAL( isSeekableToggled( bool ) ), this, SLOT( setSeekable( bool ) ) );
146 145
147 setLength( mediaPlayerState->length() ); 146 setLength( mediaPlayerState->length() );
148 setPosition( mediaPlayerState->position() ); 147 setPosition( mediaPlayerState->position() );
149 setFullscreen( mediaPlayerState->fullscreen() ); 148 setFullscreen( mediaPlayerState->fullscreen() );
150 setPlaying( mediaPlayerState->playing() ); 149 setPlaying( mediaPlayerState->playing() );
151} 150}
152 151
153 152
154VideoWidget::~VideoWidget() { 153VideoWidget::~VideoWidget() {
155 154
156 for ( int i = 0; i < 7; i++ ) { 155 for ( int i = 0; i < 7; i++ ) {
157 delete buttonPixUp[i]; 156 delete buttonPixUp[i];
158 delete buttonPixDown[i]; 157 delete buttonPixDown[i];
159 } 158 }
160 159
161 delete pixBg; 160 delete pixBg;
162 delete imgUp; 161 delete imgUp;
163 delete imgDn; 162 delete imgDn;
164 delete imgButtonMask; 163 delete imgButtonMask;
165 for ( int i = 0; i < 7; i++ ) { 164 for ( int i = 0; i < 7; i++ ) {
166 delete masks[i]; 165 delete masks[i];
167 } 166 }
168 167
169} 168}
170 169
171QPixmap *combineVImageWithBackground( QImage img, QPixmap bg, QPoint offset ) { 170QPixmap *combineVImageWithBackground( QImage img, QPixmap bg, QPoint offset ) {
172 QPixmap pix( img.width(), img.height() ); 171 QPixmap pix( img.width(), img.height() );
173 QPainter p( &pix ); 172 QPainter p( &pix );
174 p.drawTiledPixmap( pix.rect(), bg, offset ); 173 p.drawTiledPixmap( pix.rect(), bg, offset );
175 p.drawImage( 0, 0, img ); 174 p.drawImage( 0, 0, img );
176 return new QPixmap( pix ); 175 return new QPixmap( pix );
177} 176}
178 177
179QPixmap *maskVPixToMask( QPixmap pix, QBitmap mask ) { 178QPixmap *maskVPixToMask( QPixmap pix, QBitmap mask ) {
180 QPixmap *pixmap = new QPixmap( pix ); 179 QPixmap *pixmap = new QPixmap( pix );
181 pixmap->setMask( mask ); 180 pixmap->setMask( mask );
182 return pixmap; 181 return pixmap;
183} 182}
184 183
185void VideoWidget::resizeEvent( QResizeEvent * ) { 184void VideoWidget::resizeEvent( QResizeEvent * ) {
186 int h = height(); 185 int h = height();
187 int w = width(); 186 int w = width();
188 //int Vh = 160; 187 //int Vh = 160;
189 //int Vw = 220; 188 //int Vw = 220;
190 189
191 slider->setFixedWidth( w - 20 ); 190 slider->setFixedWidth( w - 20 );
192 slider->setGeometry( QRect( 15, h - 22, w - 90, 20 ) ); 191 slider->setGeometry( QRect( 15, h - 22, w - 90, 20 ) );
193 slider->setBackgroundOrigin( QWidget::ParentOrigin ); 192 slider->setBackgroundOrigin( QWidget::ParentOrigin );
@@ -343,116 +342,127 @@ void VideoWidget::mouseMoveEvent( QMouseEvent *event ) {
343 } 342 }
344 343
345 case VideoStop: mediaPlayerState->setPlaying( FALSE ); return; 344 case VideoStop: mediaPlayerState->setPlaying( FALSE ); return;
346 case VideoNext: if(playList->whichList() ==0) mediaPlayerState->setNext(); return; 345 case VideoNext: if(playList->whichList() ==0) mediaPlayerState->setNext(); return;
347 case VideoPrevious: if(playList->whichList() ==0) mediaPlayerState->setPrev(); return; 346 case VideoPrevious: if(playList->whichList() ==0) mediaPlayerState->setPrev(); return;
348 case VideoVolUp: emit moreReleased(); return; 347 case VideoVolUp: emit moreReleased(); return;
349 case VideoVolDown: emit lessReleased(); return; 348 case VideoVolDown: emit lessReleased(); return;
350 case VideoFullscreen: mediaPlayerState->setFullscreen( TRUE ); makeVisible(); return; 349 case VideoFullscreen: mediaPlayerState->setFullscreen( TRUE ); makeVisible(); return;
351 } 350 }
352 } 351 }
353 } 352 }
354 } 353 }
355} 354}
356 355
357void VideoWidget::mousePressEvent( QMouseEvent *event ) { 356void VideoWidget::mousePressEvent( QMouseEvent *event ) {
358 mouseMoveEvent( event ); 357 mouseMoveEvent( event );
359} 358}
360 359
361void VideoWidget::mouseReleaseEvent( QMouseEvent *event ) { 360void VideoWidget::mouseReleaseEvent( QMouseEvent *event ) {
362 if ( mediaPlayerState->fullscreen() ) { 361 if ( mediaPlayerState->fullscreen() ) {
363 mediaPlayerState->setFullscreen( FALSE ); 362 mediaPlayerState->setFullscreen( FALSE );
364 makeVisible(); 363 makeVisible();
365 } 364 }
366 mouseMoveEvent( event ); 365 mouseMoveEvent( event );
367} 366}
368 367
369void VideoWidget::showEvent( QShowEvent* ) { 368void VideoWidget::showEvent( QShowEvent* ) {
370 QMouseEvent event( QEvent::MouseMove, QPoint( 0, 0 ), 0, 0 ); 369 QMouseEvent event( QEvent::MouseMove, QPoint( 0, 0 ), 0, 0 );
371 mouseMoveEvent( &event ); 370 mouseMoveEvent( &event );
372} 371}
373 372
374 373
375 void VideoWidget::backToNormal() { 374 void VideoWidget::backToNormal() {
376 mediaPlayerState->setFullscreen( FALSE ); 375 mediaPlayerState->setFullscreen( FALSE );
377 makeVisible(); 376 makeVisible();
378 } 377 }
379 378
380void VideoWidget::makeVisible() { 379void VideoWidget::makeVisible() {
381 if ( mediaPlayerState->fullscreen() ) { 380 if ( mediaPlayerState->fullscreen() ) {
382 setBackgroundMode( QWidget::NoBackground ); 381 setBackgroundMode( QWidget::NoBackground );
383 showFullScreen(); 382 showFullScreen();
384 resize( qApp->desktop()->size() ); 383 resize( qApp->desktop()->size() );
385 slider->hide(); 384 slider->hide();
386 videoFrame-> setGeometry ( 0, 0, width ( ), height ( )); 385 videoFrame-> setGeometry ( 0, 0, width ( ), height ( ));
387 } else { 386 } else {
388 showNormal(); 387 showNormal();
389 showMaximized(); 388 showMaximized();
390 setBackgroundPixmap( *pixBg ); 389 setBackgroundPixmap( *pixBg );
391 if ( mediaPlayerState->seekable() ) {
392 slider->hide();
393 disconnect( mediaPlayerState, SIGNAL( positionChanged(long) ),this, SLOT( setPosition(long) ) );
394 disconnect( mediaPlayerState, SIGNAL( positionUpdated(long) ),this, SLOT( setPosition(long) ) );
395 } else {
396 slider->show();
397 connect( mediaPlayerState, SIGNAL( positionChanged(long) ),this, SLOT( setPosition(long) ) );
398 connect( mediaPlayerState, SIGNAL( positionUpdated(long) ),this, SLOT( setPosition(long) ) );
399 }
400 QWidget *d = QApplication::desktop(); 390 QWidget *d = QApplication::desktop();
401 int w = d->width(); 391 int w = d->width();
402 int h = d->height(); 392 int h = d->height();
403 393
404 if(w>h) { 394 if(w>h) {
405 int newW=(w/2)-(246/2); //this will only work with 320x240 395 int newW=(w/2)-(246/2); //this will only work with 320x240
406 videoFrame->setGeometry( QRect( newW, 4, 240, 170 ) ); 396 videoFrame->setGeometry( QRect( newW, 4, 240, 170 ) );
407 } else 397 } else {
408 videoFrame->setGeometry( QRect( 0, 30, 240, 170 ) ); 398 videoFrame->setGeometry( QRect( 0, 30, 240, 170 ) );
399 }
400 }
401}
402
403
404void VideoWidget::setSeekable( bool isSeekable ) {
409 405
410// qApp->processEvents(); 406 if ( !isSeekable || mediaPlayerState->fullscreen() ) {
407 qDebug("<<<<<<<<<<<<<<file is STREAMING>>>>>>>>>>>>>>>>>>>");
408 if( !slider->isHidden()) {
409 slider->hide();
410 }
411 disconnect( mediaPlayerState, SIGNAL( positionChanged(long) ),this, SLOT( setPosition(long) ) );
412 disconnect( mediaPlayerState, SIGNAL( positionUpdated(long) ),this, SLOT( setPosition(long) ) );
413 disconnect( slider, SIGNAL( sliderPressed() ), this, SLOT( sliderPressed() ) );
414 disconnect( slider, SIGNAL( sliderReleased() ), this, SLOT( sliderReleased() ) );
415 } else {
416 slider->show();
417 connect( mediaPlayerState, SIGNAL( positionChanged(long) ),this, SLOT( setPosition(long) ) );
418 connect( mediaPlayerState, SIGNAL( positionUpdated(long) ),this, SLOT( setPosition(long) ) );
419 connect( slider, SIGNAL( sliderPressed() ), this, SLOT( sliderPressed() ) );
420 connect( slider, SIGNAL( sliderReleased() ), this, SLOT( sliderReleased() ) );
411 } 421 }
412} 422}
413 423
414 424
415void VideoWidget::paintEvent( QPaintEvent * pe) { 425void VideoWidget::paintEvent( QPaintEvent * pe) {
416 QPainter p( this ); 426 QPainter p( this );
417 427
418 if ( mediaPlayerState->fullscreen() ) { 428 if ( mediaPlayerState->fullscreen() ) {
419 // Clear the background 429 // Clear the background
420 p.setBrush( QBrush( Qt::black ) ); 430 p.setBrush( QBrush( Qt::black ) );
421 } else { 431 } else {
422 if ( !pe->erased() ) { 432 if ( !pe->erased() ) {
423 // Combine with background and double buffer 433 // Combine with background and double buffer
424 QPixmap pix( pe->rect().size() ); 434 QPixmap pix( pe->rect().size() );
425 QPainter p( &pix ); 435 QPainter p( &pix );
426 p.translate( -pe->rect().topLeft().x(), -pe->rect().topLeft().y() ); 436 p.translate( -pe->rect().topLeft().x(), -pe->rect().topLeft().y() );
427 p.drawTiledPixmap( pe->rect(), *pixBg, pe->rect().topLeft() ); 437 p.drawTiledPixmap( pe->rect(), *pixBg, pe->rect().topLeft() );
428 for ( int i = 0; i < numVButtons; i++ ) { 438 for ( int i = 0; i < numVButtons; i++ ) {
429 paintButton( &p, i ); 439 paintButton( &p, i );
430 } 440 }
431 QPainter p2( this ); 441 QPainter p2( this );
432 p2.drawPixmap( pe->rect().topLeft(), pix ); 442 p2.drawPixmap( pe->rect().topLeft(), pix );
433 } else { 443 } else {
434 QPainter p( this ); 444 QPainter p( this );
435 for ( int i = 0; i < numVButtons; i++ ) 445 for ( int i = 0; i < numVButtons; i++ )
436 paintButton( &p, i ); 446 paintButton( &p, i );
437 } 447 }
438 //slider->repaint( TRUE ); 448 //slider->repaint( TRUE );
439 } 449 }
440} 450}
441 451
442 452
443void VideoWidget::closeEvent( QCloseEvent* ) { 453void VideoWidget::closeEvent( QCloseEvent* ) {
444 mediaPlayerState->setList(); 454 mediaPlayerState->setList();
445} 455}
446 456
447 457
448 458
449void VideoWidget::keyReleaseEvent( QKeyEvent *e) { 459void VideoWidget::keyReleaseEvent( QKeyEvent *e) {
450 switch ( e->key() ) { 460 switch ( e->key() ) {
451////////////////////////////// Zaurus keys 461////////////////////////////// Zaurus keys
452 case Key_Home: 462 case Key_Home:
453 break; 463 break;
454 case Key_F9: //activity 464 case Key_F9: //activity
455 break; 465 break;
456 case Key_F10: //contacts 466 case Key_F10: //contacts
457// hide(); 467// hide();
458 break; 468 break;
diff --git a/noncore/multimedia/opieplayer2/videowidget.h b/noncore/multimedia/opieplayer2/videowidget.h
index 990fa5f..fd02805 100644
--- a/noncore/multimedia/opieplayer2/videowidget.h
+++ b/noncore/multimedia/opieplayer2/videowidget.h
@@ -24,96 +24,97 @@
24 :     =  ...= . :.=- 24 :     =  ...= . :.=-
25 -.   .:....=;==+<; You should have received a copy of the GNU 25 -.   .:....=;==+<; You should have received a copy of the GNU
26  -_. . .   )=.  = Library General Public License along with 26  -_. . .   )=.  = Library General Public License along with
27    --        :-=` this library; see the file COPYING.LIB. 27    --        :-=` this library; see the file COPYING.LIB.
28 If not, write to the Free Software Foundation, 28 If not, write to the Free Software Foundation,
29 Inc., 59 Temple Place - Suite 330, 29 Inc., 59 Temple Place - Suite 330,
30 Boston, MA 02111-1307, USA. 30 Boston, MA 02111-1307, USA.
31 31
32*/ 32*/
33 33
34#ifndef VIDEO_WIDGET_H 34#ifndef VIDEO_WIDGET_H
35#define VIDEO_WIDGET_H 35#define VIDEO_WIDGET_H
36 36
37#include <qwidget.h> 37#include <qwidget.h>
38#include "xinevideowidget.h" 38#include "xinevideowidget.h"
39 39
40class QPixmap; 40class QPixmap;
41class QSlider; 41class QSlider;
42 42
43enum VideoButtons { 43enum VideoButtons {
44 VideoStop = 0, 44 VideoStop = 0,
45 VideoPlay, 45 VideoPlay,
46// VideoPause, 46// VideoPause,
47 VideoPrevious, 47 VideoPrevious,
48 VideoNext, 48 VideoNext,
49 VideoVolUp, 49 VideoVolUp,
50 VideoVolDown, 50 VideoVolDown,
51 VideoFullscreen 51 VideoFullscreen
52}; 52};
53 53
54class VideoWidget : public QWidget { 54class VideoWidget : public QWidget {
55 Q_OBJECT 55 Q_OBJECT
56public: 56public:
57 VideoWidget( QWidget* parent=0, const char* name=0, WFlags f=0 ); 57 VideoWidget( QWidget* parent=0, const char* name=0, WFlags f=0 );
58 ~VideoWidget(); 58 ~VideoWidget();
59 59
60 60
61 XineVideoWidget* vidWidget(); 61 XineVideoWidget* vidWidget();
62public slots: 62public slots:
63 void updateSlider( long, long ); 63 void updateSlider( long, long );
64 void sliderPressed( ); 64 void sliderPressed( );
65 void sliderReleased( ); 65 void sliderReleased( );
66 void setPlaying( bool b); 66 void setPlaying( bool b);
67 void setFullscreen( bool b ); 67 void setFullscreen( bool b );
68 void makeVisible(); 68 void makeVisible();
69 void backToNormal(); 69 void backToNormal();
70 void setPosition( long ); 70 void setPosition( long );
71 void setLength( long ); 71 void setLength( long );
72 void setSeekable( bool );
72 void setView( char ); 73 void setView( char );
73 74
74signals: 75signals:
75 void moreClicked(); 76 void moreClicked();
76 void lessClicked(); 77 void lessClicked();
77 void moreReleased(); 78 void moreReleased();
78 void lessReleased(); 79 void lessReleased();
79 void sliderMoved( long ); 80 void sliderMoved( long );
80 void videoResized ( const QSize &s ); 81 void videoResized ( const QSize &s );
81 82
82protected: 83protected:
83 84
84 void resizeEvent( QResizeEvent * ); 85 void resizeEvent( QResizeEvent * );
85 void paintEvent( QPaintEvent *pe ); 86 void paintEvent( QPaintEvent *pe );
86 void showEvent( QShowEvent *se ); 87 void showEvent( QShowEvent *se );
87 void mouseMoveEvent( QMouseEvent *event ); 88 void mouseMoveEvent( QMouseEvent *event );
88 void mousePressEvent( QMouseEvent *event ); 89 void mousePressEvent( QMouseEvent *event );
89 void mouseReleaseEvent( QMouseEvent *event ); 90 void mouseReleaseEvent( QMouseEvent *event );
90 void closeEvent( QCloseEvent *event ); 91 void closeEvent( QCloseEvent *event );
91 void keyReleaseEvent( QKeyEvent *e); 92 void keyReleaseEvent( QKeyEvent *e);
92 93
93private: 94private:
94// Ticker songInfo; 95// Ticker songInfo;
95 QPixmap *pixBg; 96 QPixmap *pixBg;
96 QImage *imgUp; 97 QImage *imgUp;
97 QImage *imgDn; 98 QImage *imgDn;
98 QImage *imgButtonMask; 99 QImage *imgButtonMask;
99 QBitmap *masks[7]; 100 QBitmap *masks[7];
100 QPixmap *buttonPixUp[7]; 101 QPixmap *buttonPixUp[7];
101 QPixmap *buttonPixDown[7]; 102 QPixmap *buttonPixDown[7];
102 QString skin; 103 QString skin;
103// QPixmap *pixmaps[4]; 104// QPixmap *pixmaps[4];
104 int xoff, yoff; 105 int xoff, yoff;
105 106
106 107
107 void paintButton( QPainter *p, int i ); 108 void paintButton( QPainter *p, int i );
108 void toggleButton( int ); 109 void toggleButton( int );
109 void setToggleButton( int, bool ); 110 void setToggleButton( int, bool );
110 111
111 QString backgroundPix; 112 QString backgroundPix;
112 QSlider *slider; 113 QSlider *slider;
113 QPixmap *pixmaps[3]; 114 QPixmap *pixmaps[3];
114 QImage *currentFrame; 115 QImage *currentFrame;
115 int scaledWidth; 116 int scaledWidth;
116 int scaledHeight; 117 int scaledHeight;
117 XineVideoWidget* videoFrame; 118 XineVideoWidget* videoFrame;
118}; 119};
119 120
diff --git a/noncore/multimedia/opieplayer2/xinecontrol.cpp b/noncore/multimedia/opieplayer2/xinecontrol.cpp
index 65ac127..c46994a 100644
--- a/noncore/multimedia/opieplayer2/xinecontrol.cpp
+++ b/noncore/multimedia/opieplayer2/xinecontrol.cpp
@@ -54,97 +54,97 @@ XineControl::XineControl( QObject *parent, const char *name )
54 connect( mediaPlayerState, SIGNAL( fullscreenToggled( bool ) ), this, SLOT( setFullscreen( bool ) ) ); 54 connect( mediaPlayerState, SIGNAL( fullscreenToggled( bool ) ), this, SLOT( setFullscreen( bool ) ) );
55 connect( mediaPlayerState, SIGNAL( positionChanged( long ) ), this, SLOT( seekTo( long ) ) ); 55 connect( mediaPlayerState, SIGNAL( positionChanged( long ) ), this, SLOT( seekTo( long ) ) );
56 connect( mediaPlayerState, SIGNAL( videoGammaChanged( int ) ), this, SLOT( setGamma( int ) ) ); 56 connect( mediaPlayerState, SIGNAL( videoGammaChanged( int ) ), this, SLOT( setGamma( int ) ) );
57 connect( libXine, SIGNAL( stopped() ), this, SLOT( nextMedia() ) ); 57 connect( libXine, SIGNAL( stopped() ), this, SLOT( nextMedia() ) );
58 58
59 disabledSuspendScreenSaver = FALSE; 59 disabledSuspendScreenSaver = FALSE;
60} 60}
61 61
62XineControl::~XineControl() { 62XineControl::~XineControl() {
63#if defined(Q_WS_QWS) && !defined(QT_NO_COP) 63#if defined(Q_WS_QWS) && !defined(QT_NO_COP)
64 if ( disabledSuspendScreenSaver ) { 64 if ( disabledSuspendScreenSaver ) {
65 disabledSuspendScreenSaver = FALSE; 65 disabledSuspendScreenSaver = FALSE;
66 // Re-enable the suspend mode 66 // Re-enable the suspend mode
67 QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::Enable; 67 QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::Enable;
68 } 68 }
69#endif 69#endif
70 delete libXine; 70 delete libXine;
71} 71}
72 72
73void XineControl::play( const QString& fileName ) { 73void XineControl::play( const QString& fileName ) {
74 hasVideoChannel = FALSE; 74 hasVideoChannel = FALSE;
75 hasAudioChannel = FALSE; 75 hasAudioChannel = FALSE;
76 m_fileName = fileName; 76 m_fileName = fileName;
77 77
78 qDebug("<<FILENAME: " + fileName + ">>>>"); 78 qDebug("<<FILENAME: " + fileName + ">>>>");
79 79
80 if ( !libXine->play( fileName, 0, 0 ) ) { 80 if ( !libXine->play( fileName, 0, 0 ) ) {
81 QMessageBox::warning( 0l , tr( "Failure" ), getErrorCode() ); 81 QMessageBox::warning( 0l , tr( "Failure" ), getErrorCode() );
82 // toggle stop so the the play button is reset 82 // toggle stop so the the play button is reset
83 mediaPlayerState->setPlaying( false ); 83 mediaPlayerState->setPlaying( false );
84 return; 84 return;
85 } 85 }
86 mediaPlayerState->setPlaying( true ); 86 mediaPlayerState->setPlaying( true );
87 87
88 char whichGui; 88 char whichGui;
89 // qDebug( QString( "libXine->hasVideo() return : %1 ").arg( libXine->hasVideo() ) ); 89 // qDebug( QString( "libXine->hasVideo() return : %1 ").arg( libXine->hasVideo() ) );
90 if ( !libXine->hasVideo() ) { 90 if ( !libXine->hasVideo() ) {
91 whichGui = 'a'; 91 whichGui = 'a';
92 qDebug("HAS AUDIO"); 92 qDebug("HAS AUDIO");
93 libXine->setShowVideo( false ); 93 libXine->setShowVideo( false );
94 hasAudioChannel = TRUE; 94 hasAudioChannel = TRUE;
95 } else { 95 } else {
96 whichGui = 'v'; 96 whichGui = 'v';
97 qDebug("HAS VIDEO"); 97 qDebug("HAS VIDEO");
98 libXine->setShowVideo( true ); 98 libXine->setShowVideo( true );
99 hasVideoChannel = TRUE; 99 hasVideoChannel = TRUE;
100 } 100 }
101 // determine if slider is shown 101 // determine if slider is shown
102 mediaPlayerState->setIsSeekable( !libXine->isSeekable() ); 102 mediaPlayerState->setIsSeekable( libXine->isSeekable() );
103 103
104 // which gui (video / audio) 104 // which gui (video / audio)
105 mediaPlayerState->setView( whichGui ); 105 mediaPlayerState->setView( whichGui );
106 106
107#if defined(Q_WS_QWS) && !defined(QT_NO_COP) 107#if defined(Q_WS_QWS) && !defined(QT_NO_COP)
108 if ( !disabledSuspendScreenSaver ) { 108 if ( !disabledSuspendScreenSaver ) {
109 disabledSuspendScreenSaver = TRUE; 109 disabledSuspendScreenSaver = TRUE;
110 // Stop the screen from blanking and power saving state 110 // Stop the screen from blanking and power saving state
111 QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) 111 QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" )
112 << ( whichGui == 'v' ? QPEApplication::Disable : QPEApplication::DisableSuspend ); 112 << ( whichGui == 'v' ? QPEApplication::Disable : QPEApplication::DisableSuspend );
113 } 113 }
114#endif 114#endif
115 115
116 length(); 116 length();
117 position(); 117 position();
118} 118}
119 119
120void XineControl::nextMedia() { 120void XineControl::nextMedia() {
121 mediaPlayerState->setNext(); 121 mediaPlayerState->setNext();
122} 122}
123 123
124void XineControl::setGamma( int value ) { 124void XineControl::setGamma( int value ) {
125 libXine->setGamma( value ); 125 libXine->setGamma( value );
126} 126}
127 127
128void XineControl::stop( bool isSet ) { 128void XineControl::stop( bool isSet ) {
129 if ( !isSet ) { 129 if ( !isSet ) {
130 libXine->stop(); 130 libXine->stop();
131 131
132#if defined(Q_WS_QWS) && !defined(QT_NO_COP) 132#if defined(Q_WS_QWS) && !defined(QT_NO_COP)
133 if ( disabledSuspendScreenSaver ) { 133 if ( disabledSuspendScreenSaver ) {
134 disabledSuspendScreenSaver = FALSE; 134 disabledSuspendScreenSaver = FALSE;
135 // Re-enable the suspend mode 135 // Re-enable the suspend mode
136 QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::Enable; 136 QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::Enable;
137 } 137 }
138#endif 138#endif
139 } 139 }
140} 140}
141 141
142/** 142/**
143 * Pause playback 143 * Pause playback
144 * @isSet 144 * @isSet
145 */ 145 */
146void XineControl::pause( bool isSet) { 146void XineControl::pause( bool isSet) {
147 if ( isSet ) { 147 if ( isSet ) {
148 libXine->pause(); 148 libXine->pause();
149 } else { 149 } else {
150 libXine->play( m_fileName, 0, m_currentTime ); 150 libXine->play( m_fileName, 0, m_currentTime );