author | harlekin <harlekin> | 2002-08-18 23:15:50 (UTC) |
---|---|---|
committer | harlekin <harlekin> | 2002-08-18 23:15:50 (UTC) |
commit | d92fbca743e676182a8f33ae4c28044031143fb0 (patch) (side-by-side diff) | |
tree | 557b19a000a897e46ed1a8e18a4fdd41aa199e0d /noncore/multimedia/opieplayer2/audiowidget.cpp | |
parent | bec883a38720a1e1a975e5474a3085d149cf935c (diff) | |
download | opie-d92fbca743e676182a8f33ae4c28044031143fb0.zip opie-d92fbca743e676182a8f33ae4c28044031143fb0.tar.gz opie-d92fbca743e676182a8f33ae4c28044031143fb0.tar.bz2 |
small fixes regarding shoutcast, but for now user need to have http:// anything / as shoutcast url
Diffstat (limited to 'noncore/multimedia/opieplayer2/audiowidget.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/multimedia/opieplayer2/audiowidget.cpp | 67 |
1 files changed, 32 insertions, 35 deletions
diff --git a/noncore/multimedia/opieplayer2/audiowidget.cpp b/noncore/multimedia/opieplayer2/audiowidget.cpp index 6d867e5..bf3590b 100644 --- a/noncore/multimedia/opieplayer2/audiowidget.cpp +++ b/noncore/multimedia/opieplayer2/audiowidget.cpp @@ -72,37 +72,38 @@ void Ticker::setText( const QString& text ) { } update(); } void Ticker::timerEvent( QTimerEvent * ) { pos = ( pos + 1 > pixelLen ) ? 0 : pos + 1; scroll( -1, 0, contentsRect() ); repaint( FALSE ); } void Ticker::drawContents( QPainter *p ) { - for ( int i = 0; i - pos < width() && (i < 1 || pixelLen > width()); i += pixelLen ) - p->drawText( i - pos, 0, INT_MAX, height(), AlignVCenter, scrollText ); + for ( int i = 0; i - pos < width() && (i < 1 || pixelLen > width()); i += pixelLen ) { + p->drawText( i - pos, 0, INT_MAX, height(), AlignVCenter, scrollText ); + } QPixmap pm( width(), height() ); pm.fill( colorGroup().base() ); QPainter pmp( &pm ); for ( int i = 0; i - pos < width() && (i < 1 || pixelLen > width()); i += pixelLen ) { pmp.drawText( i - pos, 0, INT_MAX, height(), AlignVCenter, scrollText ); } p->drawPixmap( 0, 0, pm ); } struct MediaButton { - bool isToggle, isHeld, isDown; + bool isToggle, isHeld, isDown; }; //Layout information for the audioButtons (and if it is a toggle button or not) MediaButton audioButtons[] = { { TRUE, FALSE, FALSE }, // play { FALSE, FALSE, FALSE }, // stop { FALSE, FALSE, FALSE }, // next { FALSE, FALSE, FALSE }, // previous { FALSE, FALSE, FALSE }, // volume up { FALSE, FALSE, FALSE }, // volume down { TRUE, FALSE, FALSE }, // repeat/loop { FALSE, FALSE, FALSE }, // playlist @@ -118,35 +119,34 @@ const char *skin_mask_file_names[10] = { static void changeTextColor( QWidget *w ) { QPalette p = w->palette(); p.setBrush( QColorGroup::Background, QColor( 167, 212, 167 ) ); p.setBrush( QColorGroup::Base, QColor( 167, 212, 167 ) ); w->setPalette( p ); } static const int numButtons = (sizeof(audioButtons)/sizeof(MediaButton)); AudioWidget::AudioWidget(QWidget* parent, const char* name, WFlags f) : - QWidget( parent, name, f ), songInfo( this ), slider( Qt::Horizontal, this ), time( this ) { - + QWidget( parent, name, f ), songInfo( this ), slider( Qt::Horizontal, this ), time( this ) { setCaption( tr("OpiePlayer") ); Config cfg("OpiePlayer"); cfg.setGroup("Options"); skin = cfg.readEntry("Skin","default"); - //skin = "scaleTest"; -// color of background, frame, degree of transparency + //skin = "scaleTest"; + // color of background, frame, degree of transparency QString skinPath = "opieplayer2/skins/" + skin; pixBg = new QPixmap( Resource::loadPixmap( QString("%1/background").arg(skinPath) ) ); imgUp = new QImage( Resource::loadImage( QString("%1/skin_up").arg(skinPath) ) ); imgDn = new QImage( Resource::loadImage( QString("%1/skin_down").arg(skinPath) ) ); imgButtonMask = new QImage( imgUp->width(), imgUp->height(), 8, 255 ); imgButtonMask->fill( 0 ); for ( int i = 0; i < 10; i++ ) { QString filename = QString(getenv("OPIEDIR")) + "/pics/" + skinPath + "/skin_mask_" + skin_mask_file_names[i] + ".png"; masks[i] = new QBitmap( filename ); @@ -184,39 +184,39 @@ AudioWidget::AudioWidget(QWidget* parent, const char* name, WFlags f) : time.setAlignment( Qt::AlignCenter ); time.setFrame(FALSE); changeTextColor( &time ); resizeEvent( NULL ); connect( &slider, SIGNAL( sliderPressed() ), this, SLOT( sliderPressed() ) ); connect( &slider, SIGNAL( sliderReleased() ), this, SLOT( sliderReleased() ) ); connect( mediaPlayerState, SIGNAL( lengthChanged(long) ), this, SLOT( setLength(long) ) ); connect( mediaPlayerState, SIGNAL( viewChanged(char) ), this, SLOT( setView(char) ) ); connect( mediaPlayerState, SIGNAL( loopingToggled(bool) ), this, SLOT( setLooping(bool) ) ); -// connect( mediaPlayerState, SIGNAL( pausedToggled(bool) ), this, SLOT( setPaused(bool) ) ); + // connect( mediaPlayerState, SIGNAL( pausedToggled(bool) ), this, SLOT( setPaused(bool) ) ); connect( mediaPlayerState, SIGNAL( playingToggled(bool) ), this, SLOT( setPlaying(bool) ) ); connect( this, SIGNAL( forwardClicked() ), this, SLOT( skipFor() ) ); connect( this, SIGNAL( backClicked() ), this, SLOT( skipBack() ) ); connect( this, SIGNAL( forwardReleased() ), this, SLOT( stopSkip() ) ); connect( this, SIGNAL( backReleased() ), this, SLOT( stopSkip() ) ); // Intialise state setLength( mediaPlayerState->length() ); setPosition( mediaPlayerState->position() ); setLooping( mediaPlayerState->fullscreen() ); -// setPaused( mediaPlayerState->paused() ); + // setPaused( mediaPlayerState->paused() ); setPlaying( mediaPlayerState->playing() ); } AudioWidget::~AudioWidget() { for ( int i = 0; i < 10; i++ ) { delete buttonPixUp[i]; delete buttonPixDown[i]; } delete pixBg; delete imgUp; @@ -227,26 +227,25 @@ AudioWidget::~AudioWidget() { } } QPixmap *combineImageWithBackground( QImage img, QPixmap bg, QPoint offset ) { QPixmap pix( img.width(), img.height() ); QPainter p( &pix ); p.drawTiledPixmap( pix.rect(), bg, offset ); p.drawImage( 0, 0, img ); return new QPixmap( pix ); } -QPixmap *maskPixToMask( QPixmap pix, QBitmap mask ) -{ +QPixmap *maskPixToMask( QPixmap pix, QBitmap mask ) { QPixmap *pixmap = new QPixmap( pix ); pixmap->setMask( mask ); return pixmap; } void AudioWidget::resizeEvent( QResizeEvent * ) { int h = height(); int w = width(); songInfo.setGeometry( QRect( 2, 10, w - 4, 20 ) ); @@ -283,37 +282,37 @@ void AudioWidget::sliderPressed() { } void AudioWidget::sliderReleased() { audioSliderBeingMoved = FALSE; if ( slider.width() == 0 ) return; long val = long((double)slider.value() * mediaPlayerState->length() / slider.width()); mediaPlayerState->setPosition( val ); } void AudioWidget::setPosition( long i ) { -// qDebug("<<<<<<<<<<<<<<<<<<<<<<<<set position %d",i); + // qDebug("<<<<<<<<<<<<<<<<<<<<<<<<set position %d",i); updateSlider( i, mediaPlayerState->length() ); } void AudioWidget::setLength( long max ) { updateSlider( mediaPlayerState->position(), max ); } void AudioWidget::setView( char view ) { -// this isnt working for some reason + // this isnt working for some reason if ( mediaPlayerState->streaming() ) { qDebug("<<<<<<<<<<<<<<file is STREAMING>>>>>>>>>>>>>>>>>>>"); if( !slider.isHidden()) { slider.hide(); } disconnect( mediaPlayerState, SIGNAL( positionChanged(long) ),this, SLOT( setPosition(long) ) ); disconnect( mediaPlayerState, SIGNAL( positionUpdated(long) ),this, SLOT( setPosition(long) ) ); } else { // this stops the slider from being moved, thus // does not stop stream when it reaches the end slider.show(); @@ -397,26 +396,26 @@ void AudioWidget::skipBack() { startTimer( 50 ); mediaPlayerState->setPosition( mediaPlayerState->position() - 2 ); } void AudioWidget::stopSkip() { killTimers(); } void AudioWidget::timerEvent( QTimerEvent * ) { - if ( skipDirection == +1 ) { - mediaPlayerState->setPosition( mediaPlayerState->position() + 2 ); + if ( skipDirection == +1 ) { + mediaPlayerState->setPosition( mediaPlayerState->position() + 2 ); } else if ( skipDirection == -1 ) { mediaPlayerState->setPosition( mediaPlayerState->position() - 2 ); } } void AudioWidget::mouseMoveEvent( QMouseEvent *event ) { for ( int i = 0; i < numButtons; i++ ) { if ( event->state() == QMouseEvent::LeftButton ) { // The test to see if the mouse click is inside the button or not int x = event->pos().x() - xoff; int y = event->pos().y() - yoff; @@ -433,29 +432,28 @@ void AudioWidget::mouseMoveEvent( QMouseEvent *event ) { emit moreClicked(); return; case AudioVolumeDown: emit lessClicked(); return; case AudioForward: emit forwardClicked(); return; case AudioBack: emit backClicked(); return; } + } else if ( !isOnButton && audioButtons[i].isHeld ) { + audioButtons[i].isHeld = FALSE; + toggleButton(i); } - else if ( !isOnButton && audioButtons[i].isHeld ) { - audioButtons[i].isHeld = FALSE; - toggleButton(i); - } } else { if ( audioButtons[i].isHeld ) { audioButtons[i].isHeld = FALSE; if ( !audioButtons[i].isToggle ) { setToggleButton( i, FALSE ); } switch (i) { case AudioPlay: if( mediaPlayerState->isPaused ) { // setToggleButton( i, FALSE ); mediaPlayerState->setPaused( FALSE ); return; @@ -513,77 +511,76 @@ void AudioWidget::paintEvent( QPaintEvent * pe) { p.drawTiledPixmap( pe->rect(), *pixBg, pe->rect().topLeft() ); for ( int i = 0; i < numButtons; i++ ) paintButton( &p, i ); QPainter p2( this ); p2.drawPixmap( pe->rect().topLeft(), pix ); } else { QPainter p( this ); for ( int i = 0; i < numButtons; i++ ) paintButton( &p, i ); } } -void AudioWidget::keyReleaseEvent( QKeyEvent *e) -{ +void AudioWidget::keyReleaseEvent( QKeyEvent *e) { switch ( e->key() ) { -////////////////////////////// Zaurus keys + ////////////////////////////// Zaurus keys case Key_Home: break; case Key_F9: //activity hide(); -// qDebug("Audio F9"); + // qDebug("Audio F9"); break; case Key_F10: //contacts break; case Key_F11: //menu mediaPlayerState->toggleBlank(); break; case Key_F12: //home break; case Key_F13: //mail mediaPlayerState->toggleBlank(); break; case Key_Space: { if(mediaPlayerState->playing()) { -// toggleButton(1); + // toggleButton(1); mediaPlayerState->setPlaying(FALSE); -// toggleButton(1); + // toggleButton(1); } else { -// toggleButton(0); + // toggleButton(0); mediaPlayerState->setPlaying(TRUE); -// toggleButton(0); + // toggleButton(0); } } break; case Key_Down: -// toggleButton(6); + // toggleButton(6); emit lessClicked(); emit lessReleased(); -// toggleButton(6); + // toggleButton(6); break; case Key_Up: -// toggleButton(5); + // toggleButton(5); emit moreClicked(); emit moreReleased(); -// toggleButton(5); + // toggleButton(5); break; case Key_Right: -// toggleButton(3); + // toggleButton(3); mediaPlayerState->setNext(); -// toggleButton(3); + // toggleButton(3); break; case Key_Left: -// toggleButton(4); + // toggleButton(4); mediaPlayerState->setPrev(); -// toggleButton(4); + // toggleButton(4); break; case Key_Escape: { #if defined(QT_QWS_IPAQ) if( mediaPlayerState->isPaused ) { setToggleButton( i, FALSE ); mediaPlayerState->setPaused( FALSE ); } else if( !mediaPlayerState->isPaused ) { setToggleButton( i, TRUE ); mediaPlayerState->setPaused( TRUE ); } #endif } |