summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/multimedia/opieplayer/videowidget.cpp158
1 files changed, 79 insertions, 79 deletions
diff --git a/core/multimedia/opieplayer/videowidget.cpp b/core/multimedia/opieplayer/videowidget.cpp
index e851044..2396ed5 100644
--- a/core/multimedia/opieplayer/videowidget.cpp
+++ b/core/multimedia/opieplayer/videowidget.cpp
@@ -61,118 +61,115 @@ MediaButton videoButtons[] = {
61 { FALSE, FALSE, FALSE }, // previous 61 { FALSE, FALSE, FALSE }, // previous
62 { FALSE, FALSE, FALSE }, // next 62 { FALSE, FALSE, FALSE }, // next
63 { FALSE, FALSE, FALSE }, // volUp 63 { FALSE, FALSE, FALSE }, // volUp
64 { FALSE, FALSE, FALSE }, // volDown 64 { FALSE, FALSE, FALSE }, // volDown
65 { TRUE, FALSE, FALSE } // fullscreen 65 { TRUE, FALSE, FALSE } // fullscreen
66}; 66};
67 67
68//static const int numButtons = (sizeof(videoButtons)/sizeof(MediaButton)); 68//static const int numButtons = (sizeof(videoButtons)/sizeof(MediaButton));
69 69
70const char *skinV_mask_file_names[7] = { 70const char *skinV_mask_file_names[7] = {
71 "stop","play","back","fwd","up","down","full" 71 "stop","play","back","fwd","up","down","full"
72}; 72};
73 73
74static const int numVButtons = (sizeof(videoButtons)/sizeof(MediaButton)); 74static const int numVButtons = (sizeof(videoButtons)/sizeof(MediaButton));
75 75
76VideoWidget::VideoWidget(QWidget* parent, const char* name, WFlags f) : 76VideoWidget::VideoWidget(QWidget* parent, const char* name, WFlags f) :
77 QWidget( parent, name, f ), scaledWidth( 0 ), scaledHeight( 0 ) 77 QWidget( parent, name, f ), scaledWidth( 0 ), scaledHeight( 0 )
78{ 78{
79 setCaption( tr("OpiePlayer") ); 79 setCaption( tr("OpiePlayer") );
80 Config cfg("OpiePlayer"); 80 Config cfg("OpiePlayer");
81 81
82 cfg.setGroup("Options"); 82 cfg.setGroup("Options");
83 skin = cfg.readEntry("Skin","default"); 83 skin = cfg.readEntry("Skin","default");
84 84
85 QString skinPath; 85 QString skinPath;
86 skinPath = "opieplayer2/skins/" + skin; 86 skinPath = "opieplayer2/skins/" + skin;
87 if(!QDir(QString(getenv("OPIEDIR")) +"/pics/"+skinPath).exists()) 87 if(!QDir(QString(getenv("OPIEDIR")) +"/pics/"+skinPath).exists())
88 skinPath = "opieplayer2/skins/default"; 88 skinPath = "opieplayer2/skins/default";
89 89
90 // odebug << "skin path " + skinPath << oendl;
91 90
92// QString skinPath = "opieplayer2/skins/" + skin; 91// QString skinPath = "opieplayer2/skins/" + skin;
93 92
94 pixBg = new QPixmap( Resource::loadPixmap( QString("%1/background").arg(skinPath) ) ); 93 pixBg = new QPixmap( Resource::loadPixmap( QString("%1/background").arg(skinPath) ) );
95 imgUp = new QImage( Resource::loadImage( QString("%1/skinV_up").arg(skinPath) ) ); 94 imgUp = new QImage( Resource::loadImage( QString("%1/skinV_up").arg(skinPath) ) );
96 imgDn = new QImage( Resource::loadImage( QString("%1/skinV_down").arg(skinPath) ) ); 95 imgDn = new QImage( Resource::loadImage( QString("%1/skinV_down").arg(skinPath) ) );
97 96
98 imgButtonMask = new QImage( imgUp->width(), imgUp->height(), 8, 255 ); 97 imgButtonMask = new QImage( imgUp->width(), imgUp->height(), 8, 255 );
99 imgButtonMask->fill( 0 ); 98 imgButtonMask->fill( 0 );
100 99
101 for ( int i = 0; i < 7; i++ ) { 100 for ( int i = 0; i < 7; i++ ) {
102 QString filename = QString( QPEApplication::qpeDir() + "/pics/" + skinPath + 101 QString filename = QString( QPEApplication::qpeDir() + "/pics/" + skinPath +
103 "/skinV_mask_" + skinV_mask_file_names[i] + ".png" ); 102 "/skinV_mask_" + skinV_mask_file_names[i] + ".png" );
104 // odebug << "loading "+filename << oendl; 103 // odebug << "loading "+filename << oendl;
105 masks[i] = new QBitmap( filename ); 104 masks[i] = new QBitmap( filename );
106 105
107 if ( !masks[i]->isNull() ) { 106 if ( !masks[i]->isNull() ) {
108 QImage imgMask = masks[i]->convertToImage(); 107 QImage imgMask = masks[i]->convertToImage();
109 uchar **dest = imgButtonMask->jumpTable(); 108 uchar **dest = imgButtonMask->jumpTable();
110 for ( int y = 0; y < imgUp->height(); y++ ) { 109 for ( int y = 0; y < imgUp->height(); y++ ) {
111 uchar *line = dest[y]; 110 uchar *line = dest[y];
112 for ( int x = 0; x < imgUp->width(); x++ ) { 111 for ( int x = 0; x < imgUp->width(); x++ ) {
113 if ( !qRed( imgMask.pixel( x, y ) ) ) 112 if ( !qRed( imgMask.pixel( x, y ) ) )
114 line[x] = i + 1; 113 line[x] = i + 1;
115 } 114 }
116 } 115 }
117 } 116 }
118 } 117 }
119 // odebug << "finished loading first pics" << oendl; 118 for ( int i = 0; i < 7; i++ ) {
120 for ( int i = 0; i < 7; i++ ) { 119 buttonPixUp[i] = NULL;
121 buttonPixUp[i] = NULL; 120 buttonPixDown[i] = NULL;
122 buttonPixDown[i] = NULL; 121 }
123 } 122
124 123 QWidget *d = QApplication::desktop();
125 124 int width = d->width();
126 QWidget *d = QApplication::desktop(); 125 int height = d->height();
127 int width = d->width(); 126
128 int height = d->height(); 127 if( (width != pixBg->width() ) || (height != pixBg->height() ) ) {
129 128 QImage img;
130 if( (width != pixBg->width() ) || (height != pixBg->height() ) ) { 129 img = pixBg->convertToImage();
131// odebug << "<<<<<<<< scale image >>>>>>>>>>>>" << oendl; 130 pixBg->convertFromImage( img.smoothScale( width, height));
132 QImage img; 131 }
133 img = pixBg->convertToImage(); 132
134 pixBg->convertFromImage( img.smoothScale( width, height)); 133 setBackgroundPixmap( *pixBg );
135 } 134 currentFrame = new QImage( 220 + 2, 160, (QPixmap::defaultDepth() == 16) ? 16 : 32 );
136 setBackgroundPixmap( *pixBg ); 135 slider = new QSlider( Qt::Horizontal, this );
137 136 slider->setMinValue( 0 );
138 currentFrame = new QImage( 220 + 2, 160, (QPixmap::defaultDepth() == 16) ? 16 : 32 ); 137 slider->setMaxValue( 1 );
139 138
140 slider = new QSlider( Qt::Horizontal, this ); 139 slider->setBackgroundPixmap( *pixBg );
141 slider->setMinValue( 0 ); 140 slider->setFocusPolicy( QWidget::NoFocus );
142 slider->setMaxValue( 1 );
143 slider->setBackgroundPixmap( Resource::loadPixmap( backgroundPix ) );
144 slider->setFocusPolicy( QWidget::NoFocus );
145// slider->setGeometry( QRect( 7, 250, 220, 20 ) ); 141// slider->setGeometry( QRect( 7, 250, 220, 20 ) );
146 142
147 connect( slider, SIGNAL( sliderPressed() ), this, SLOT( sliderPressed() ) ); 143 connect(slider,SIGNAL(sliderPressed()),this,SLOT(sliderPressed()));
148 connect( slider, SIGNAL( sliderReleased() ), this, SLOT( sliderReleased() ) ); 144 connect(slider,SIGNAL(sliderReleased()),this,SLOT(sliderReleased()));
149 145
150 connect( mediaPlayerState, SIGNAL( lengthChanged(long) ), this, SLOT( setLength(long) ) ); 146 connect(mediaPlayerState,SIGNAL(lengthChanged(long)),this,SLOT(setLength(long)));
151 connect( mediaPlayerState, SIGNAL( positionChanged(long) ),this, SLOT( setPosition(long) ) ); 147 connect(mediaPlayerState,SIGNAL(positionChanged(long)),this,SLOT(setPosition(long)));
152 connect( mediaPlayerState, SIGNAL( positionUpdated(long) ),this, SLOT( setPosition(long) ) ); 148 connect(mediaPlayerState,SIGNAL(positionUpdated(long)),this,SLOT(setPosition(long)));
153 connect( mediaPlayerState, SIGNAL( viewChanged(char) ), this, SLOT( setView(char) ) ); 149 connect(mediaPlayerState,SIGNAL(viewChanged(char)),this,SLOT(setView(char)));
154// connect( mediaPlayerState, SIGNAL( pausedToggled(bool) ), this, SLOT( setPaused(bool) ) ); 150// connect( mediaPlayerState, SIGNAL( pausedToggled(bool) ), this, SLOT( setPaused(bool) ) );
155 connect( mediaPlayerState, SIGNAL( playingToggled(bool) ), this, SLOT( setPlaying(bool) ) ); 151 connect(mediaPlayerState,SIGNAL(playingToggled(bool)),this,SLOT(setPlaying(bool)));
156 152
157 // Intialise state 153 // Intialise state
158 setLength( mediaPlayerState->length() ); 154 setLength( mediaPlayerState->length() );
159 setPosition( mediaPlayerState->position() ); 155 setPosition( mediaPlayerState->position() );
160 setFullscreen( mediaPlayerState->fullscreen() ); 156 setFullscreen( mediaPlayerState->fullscreen() );
161// setPaused( mediaPlayerState->paused() ); 157// setPlaying( mediaPlayerState->playing() );
162 setPlaying( mediaPlayerState->playing() ); 158 // if(this->x() < 0 || this->y() < 0)
159 // this->move(0,0);
163} 160}
164 161
165 162
166VideoWidget::~VideoWidget() { 163VideoWidget::~VideoWidget() {
167 164
168 for ( int i = 0; i < 7; i++ ) 165 for ( int i = 0; i < 7; i++ )
169 { 166 {
170 delete buttonPixUp[i]; 167 delete buttonPixUp[i];
171 delete buttonPixDown[i]; 168 delete buttonPixDown[i];
172 } 169 }
173 170
174 delete pixBg; 171 delete pixBg;
175 delete imgUp; 172 delete imgUp;
176 delete imgDn; 173 delete imgDn;
177 delete imgButtonMask; 174 delete imgButtonMask;
178 for ( int i = 0; i < 7; i++ ) 175 for ( int i = 0; i < 7; i++ )
@@ -459,45 +456,49 @@ void VideoWidget::paintEvent( QPaintEvent * pe) {
459void VideoWidget::closeEvent( QCloseEvent* ) { 456void VideoWidget::closeEvent( QCloseEvent* ) {
460 mediaPlayerState->setList(); 457 mediaPlayerState->setList();
461} 458}
462 459
463 460
464bool VideoWidget::playVideo() { 461bool VideoWidget::playVideo() {
465 bool result = FALSE; 462 bool result = FALSE;
466// odebug << "<<<<<<<<<<<<<<<< play video" << oendl; 463// odebug << "<<<<<<<<<<<<<<<< play video" << oendl;
467 int stream = 0; 464 int stream = 0;
468 465
469 int sw = mediaPlayerState->curDecoder()->videoWidth( stream ); 466 int sw = mediaPlayerState->curDecoder()->videoWidth( stream );
470 int sh = mediaPlayerState->curDecoder()->videoHeight( stream ); 467 int sh = mediaPlayerState->curDecoder()->videoHeight( stream );
471 int dd = QPixmap::defaultDepth(); 468 int dd = QPixmap::defaultDepth();
472 int w = height(); 469 int w = height();
473 int h = width(); 470 int h = width();
474 471
472 QWidget *d = QApplication::desktop();
473 int d_width = d->width();
474 int d_height = d->height();
475
475 ColorFormat format = (dd == 16) ? RGB565 : BGRA8888; 476 ColorFormat format = (dd == 16) ? RGB565 : BGRA8888;
476 477
477 if ( mediaPlayerState->fullscreen() ) 478 if ( mediaPlayerState->fullscreen() )
478 { 479 {
479#ifdef USE_DIRECT_PAINTER 480#ifdef USE_DIRECT_PAINTER
480 QDirectPainter p(this); 481 QDirectPainter p(this);
481 482
482 if ( ( qt_screen->transformOrientation() == 3 ) && 483 if ( ( qt_screen->transformOrientation() == 3 ) &&
483 ( ( dd == 16 ) || ( dd == 32 ) ) && ( p.numRects() == 1 ) ) 484 ( ( dd == 16 ) || ( dd == 32 ) ) && ( p.numRects() == 1 ) )
484 { 485 {
485 486
486 w = 320; 487 w = d_width; //320;
487 h = 240; 488 h = d_height; //240;
488 489
489 if ( mediaPlayerState->scaled() ) 490 if ( mediaPlayerState->scaled() )
490 { 491 {
491 // maintain aspect ratio 492 // maintain aspect ratio
492 if ( w * sh > sw * h ) 493 if ( w * sh > sw * h )
493 w = sw * h / sh; 494 w = sw * h / sh;
494 else 495 else
495 h = sh * w / sw; 496 h = sh * w / sw;
496 } 497 }
497 else 498 else
498 { 499 {
499 w = sw; 500 w = sw;
500 h = sh; 501 h = sh;
501 } 502 }
502 503
503 w--; // we can't allow libmpeg to overwrite. 504 w--; // we can't allow libmpeg to overwrite.
@@ -512,35 +513,34 @@ bool VideoWidget::playVideo() {
512 uchar **jt = new uchar*[h]; 513 uchar **jt = new uchar*[h];
513 514
514 for ( int i = h; i; i-- ) 515 for ( int i = h; i; i-- )
515 { 516 {
516 jt[h - i] = fp; 517 jt[h - i] = fp;
517 fp += p.lineStep(); 518 fp += p.lineStep();
518 } 519 }
519 520
520 result = mediaPlayerState->curDecoder()->videoReadScaledFrame( jt, sx, sy, sw, sh, w, h, format, 0) == 0; 521 result = mediaPlayerState->curDecoder()->videoReadScaledFrame( jt, sx, sy, sw, sh, w, h, format, 0) == 0;
521 522
522 delete [] jt; 523 delete [] jt;
523 } 524 }
524 else 525 else
525 { 526 {
526#endif 527#endif
527 QPainter p(this); 528 QPainter p(this);
528 529 w = d_width; //320;
529 w = 320; 530 h = d_height; //240;
530 h = 240;
531 531
532 if ( mediaPlayerState->scaled() ) 532 if ( mediaPlayerState->scaled() )
533 { 533 {
534 // maintain aspect ratio 534 // maintain aspect ratio
535 if ( w * sh > sw * h ) 535 if ( w * sh > sw * h )
536 w = sw * h / sh; 536 w = sw * h / sh;
537 else 537 else
538 h = sh * w / sw; 538 h = sh * w / sw;
539 } 539 }
540 else 540 else
541 { 541 {
542 w = sw; 542 w = sw;
543 h = sh; 543 h = sh;
544 } 544 }
545 545
546 int bytes = ( dd == 16 ) ? 2 : 4; 546 int bytes = ( dd == 16 ) ? 2 : 4;