author | harlekin <harlekin> | 2002-09-02 17:18:30 (UTC) |
---|---|---|
committer | harlekin <harlekin> | 2002-09-02 17:18:30 (UTC) |
commit | 99b610f06af444e2636d1afe93d3de89a524ee8a (patch) (side-by-side diff) | |
tree | a664829bd5149686b906253f71d4cc01eeb9b059 | |
parent | bf0f423d8aed59da90db9e9748a53fdd5e1efab0 (diff) | |
download | opie-99b610f06af444e2636d1afe93d3de89a524ee8a.zip opie-99b610f06af444e2636d1afe93d3de89a524ee8a.tar.gz opie-99b610f06af444e2636d1afe93d3de89a524ee8a.tar.bz2 |
first parts of gamma correction, fullscreen on arm need some more work
-rw-r--r-- | noncore/multimedia/opieplayer2/lib.cpp | 7 | ||||
-rw-r--r-- | noncore/multimedia/opieplayer2/lib.h | 7 | ||||
-rw-r--r-- | noncore/multimedia/opieplayer2/mediaplayerstate.cpp | 48 | ||||
-rw-r--r-- | noncore/multimedia/opieplayer2/mediaplayerstate.h | 10 | ||||
-rw-r--r-- | noncore/multimedia/opieplayer2/nullvideo.c | 43 | ||||
-rw-r--r-- | noncore/multimedia/opieplayer2/playlistwidget.cpp | 5 | ||||
-rw-r--r-- | noncore/multimedia/opieplayer2/playlistwidget.h | 4 | ||||
-rw-r--r-- | noncore/multimedia/opieplayer2/playlistwidgetgui.cpp | 23 | ||||
-rw-r--r-- | noncore/multimedia/opieplayer2/playlistwidgetgui.h | 10 | ||||
-rw-r--r-- | noncore/multimedia/opieplayer2/xinecontrol.cpp | 11 | ||||
-rw-r--r-- | noncore/multimedia/opieplayer2/xinecontrol.h | 31 | ||||
-rw-r--r-- | noncore/multimedia/opieplayer2/xinevideowidget.cpp | 0 | ||||
-rw-r--r-- | noncore/multimedia/opieplayer2/yuv2rgb.c | 1 |
13 files changed, 178 insertions, 22 deletions
diff --git a/noncore/multimedia/opieplayer2/lib.cpp b/noncore/multimedia/opieplayer2/lib.cpp index b2143a0..748ae1f 100644 --- a/noncore/multimedia/opieplayer2/lib.cpp +++ b/noncore/multimedia/opieplayer2/lib.cpp @@ -61,4 +61,5 @@ extern "C" { void null_set_gui_height( vo_driver_t* self, int height ); void null_set_mode( vo_driver_t* self, int depth, int rgb ); + void null_set_videoGamma( vo_driver_t* self , int value ); void null_display_handler(vo_driver_t* self, display_xine_frame_t t, void* user_data); } @@ -204,4 +205,10 @@ void Lib::setScaling( bool scale ) { ::null_set_scaling( m_videoOutput, scale ); } + +void Lib::setGamma( int value ) { + //qDebug( QString( "%1").arg(value) ); + ::null_set_videoGamma( m_videoOutput, value ); +} + bool Lib::isScaling() { return ::null_is_scaling( m_videoOutput ); diff --git a/noncore/multimedia/opieplayer2/lib.h b/noncore/multimedia/opieplayer2/lib.h index abd8c65..b9d0a8a 100644 --- a/noncore/multimedia/opieplayer2/lib.h +++ b/noncore/multimedia/opieplayer2/lib.h @@ -113,4 +113,11 @@ namespace XINE { */ void setScaling( bool ); + + /** + * Set the Gamma value for video output + * @param int the value between -100 and 100, 0 is original + */ + void setGamma( int ); + /** * test diff --git a/noncore/multimedia/opieplayer2/mediaplayerstate.cpp b/noncore/multimedia/opieplayer2/mediaplayerstate.cpp index d984022..4ec5989 100644 --- a/noncore/multimedia/opieplayer2/mediaplayerstate.cpp +++ b/noncore/multimedia/opieplayer2/mediaplayerstate.cpp @@ -1,2 +1,37 @@ +/* + This file is part of the Opie Project + + Copyright (c) 2002 Max Reiss <harlekin@handhelds.org> + Copyright (c) 2002 L. Potter <ljp@llornkcor.com> + Copyright (c) 2002 Holger Freyther <zecke@handhelds.org> + =. + .=l. + .>+-= + _;:, .> :=|. This program is free software; you can +.> <`_, > . <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- : the terms of the GNU General Public +.="- .-=="i, .._ License as published by the Free Software + - . .-<_> .<> Foundation; either version 2 of the License, + ._= =} : or (at your option) any later version. + .%`+i> _;_. + .i_,=:_. -<s. This program is distributed in the hope that + + . -:. = it will be useful, but WITHOUT ANY WARRANTY; + : .. .:, . . . without even the implied warranty of + =_ + =;=|` MERCHANTABILITY or FITNESS FOR A + _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU +..}^=.= = ; General Public License for more +++= -. .` .: details. + : = ...= . :.=- + -. .:....=;==+<; You should have received a copy of the GNU + -_. . . )=. = General Public License along with + -- :-=` this library; see the file COPYING.LIB. + If not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. + +*/ + +// this file is based on work by trolltech + #include <qpe/qpeapplication.h> #include <qpe/qlibrary.h> @@ -22,7 +57,4 @@ MediaPlayerState::MediaPlayerState( QObject *parent, const char *name ) MediaPlayerState::~MediaPlayerState() { -// Config cfg( "OpiePlayer" ); -// writeConfig( cfg ); - } @@ -35,4 +67,5 @@ void MediaPlayerState::readConfig( Config& cfg ) { isShuffled = cfg.readBoolEntry( "Shuffle" ); usePlaylist = cfg.readBoolEntry( "UsePlayList" ); + videoGamma = cfg.readNumEntry( "VideoGamma" ); usePlaylist = TRUE; isPlaying = FALSE; @@ -52,4 +85,5 @@ void MediaPlayerState::writeConfig( Config& cfg ) const { cfg.writeEntry("Shuffle", isShuffled ); cfg.writeEntry("UsePlayList", usePlaylist ); + cfg.writeEntry( "VideoGamma", videoGamma ); } @@ -210,4 +244,12 @@ void MediaPlayerState::updatePosition( long p ){ } +void MediaPlayerState::setVideoGamma( int v ){ + if ( videoGamma == v ) { + return; + } + videoGamma = v; + emit videoGammaChanged( v ); +} + void MediaPlayerState::setLength( long l ) { if ( curLength == l ) { diff --git a/noncore/multimedia/opieplayer2/mediaplayerstate.h b/noncore/multimedia/opieplayer2/mediaplayerstate.h index 215a2a8..4fef8e0 100644 --- a/noncore/multimedia/opieplayer2/mediaplayerstate.h +++ b/noncore/multimedia/opieplayer2/mediaplayerstate.h @@ -20,9 +20,9 @@ =_ + =;=|` MERCHANTABILITY or FITNESS FOR A _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU -..}^=.= = ; Library General Public License for more +..}^=.= = ; General Public License for more ++= -. .` .: details. : = ...= . :.=- -. .:....=;==+<; You should have received a copy of the GNU - -_. . . )=. = Library General Public License along with + -_. . . )=. = General Public License along with -- :-=` this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, @@ -32,4 +32,6 @@ */ +// this file is based on work by trolltech + #ifndef MEDIA_PLAYER_STATE_H #define MEDIA_PLAYER_STATE_H @@ -80,4 +82,5 @@ public slots: void setView( char v ); void setBlanked( bool b ); + void setVideoGamma( int v ); void setPrev(); @@ -112,4 +115,5 @@ signals: void viewChanged( char ); void blankToggled( bool ); + void videoGammaChanged( int ); void prev(); void next(); @@ -126,5 +130,5 @@ private: long curLength; char curView; - + int videoGamma; void readConfig( Config& cfg ); diff --git a/noncore/multimedia/opieplayer2/nullvideo.c b/noncore/multimedia/opieplayer2/nullvideo.c index bd52869..ceda333 100644 --- a/noncore/multimedia/opieplayer2/nullvideo.c +++ b/noncore/multimedia/opieplayer2/nullvideo.c @@ -1,2 +1,34 @@ +/* + This file is part of the Opie Project + + Copyright (c) 2002 Max Reiss <harlekin@handhelds.org> + Copyright (c) 2002 L. Potter <ljp@llornkcor.com> + Copyright (c) 2002 Holger Freyther <zecke@handhelds.org> + =. + .=l. + .>+-= + _;:, .> :=|. This program is free software; you can +.> <`_, > . <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- : the terms of the GNU General Public +.="- .-=="i, .._ License as published by the Free Software + - . .-<_> .<> Foundation; either version 2 of the License, + ._= =} : or (at your option) any later version. + .%`+i> _;_. + .i_,=:_. -<s. This program is distributed in the hope that + + . -:. = it will be useful, but WITHOUT ANY WARRANTY; + : .. .:, . . . without even the implied warranty of + =_ + =;=|` MERCHANTABILITY or FITNESS FOR A + _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU +..}^=.= = ; General Public License for more +++= -. .` .: details. + : = ...= . :.=- + -. .:....=;==+<; You should have received a copy of the GNU + -_. . . )=. = General Public License along with + -- :-=` this library; see the file COPYING.LIB. + If not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. + +*/ /*#include <xine.h>*/ @@ -32,5 +64,5 @@ struct null_driver_s { int yuv2rgb_mode; int yuv2rgb_swap; - int zuv2rgb_gamma; + int yuv2rgb_gamma; uint8_t *yuv2rgb_cmap; yuv2rgb_factory_t *yuv2rgb_factory; @@ -606,4 +638,10 @@ int null_is_scaling( vo_driver_t* self ){ return ((null_driver_t*)self)->m_is_scaling; } + +void null_set_videoGamma( vo_driver_t* self , int value ) { + ((null_driver_t*) self) ->yuv2rgb_gamma = value; + ((null_driver_t*) self) ->yuv2rgb_factory->set_gamma( ((null_driver_t*) self) ->yuv2rgb_factory, value ); +} + void null_set_scaling( vo_driver_t* self, int scale ){ ((null_driver_t*)self)->m_is_scaling = scale; @@ -616,4 +654,6 @@ void null_set_gui_height( vo_driver_t* self, int height ){ ((null_driver_t*)self)->gui_height = height; } + + void null_set_mode( vo_driver_t* self, int depth, int rgb ){ null_driver_t* this = (null_driver_t*)self; @@ -671,2 +711,3 @@ void null_display_handler(vo_driver_t* self, display_xine_frame_t t, void* user_ this->frameDis = t; } + diff --git a/noncore/multimedia/opieplayer2/playlistwidget.cpp b/noncore/multimedia/opieplayer2/playlistwidget.cpp index 6c4d07f..3bd04bc 100644 --- a/noncore/multimedia/opieplayer2/playlistwidget.cpp +++ b/noncore/multimedia/opieplayer2/playlistwidget.cpp @@ -20,9 +20,9 @@ =_ + =;=|` MERCHANTABILITY or FITNESS FOR A _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU -..}^=.= = ; Library General Public License for more +..}^=.= = ; General Public License for more ++= -. .` .: details. : = ...= . :.=- -. .:....=;==+<; You should have received a copy of the GNU - -_. . . )=. = Library General Public License along with + -_. . . )=. = General Public License along with -- :-=` this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, @@ -119,4 +119,5 @@ PlayListWidget::PlayListWidget( QWidget* parent, const char* name, WFlags fl ) connect( mediaPlayerState, SIGNAL( playlistToggled( bool ) ), this, SLOT( setPlaylist( bool ) ) ); connect( d->selectedFiles, SIGNAL( doubleClicked( QListViewItem *) ), this, SLOT( playIt( QListViewItem *) ) ); + connect ( gammaSlider, SIGNAL( valueChanged( int ) ), mediaPlayerState, SLOT( setVideoGamma( int ) ) ); readConfig( cfg ); diff --git a/noncore/multimedia/opieplayer2/playlistwidget.h b/noncore/multimedia/opieplayer2/playlistwidget.h index 2742252..dcfdd48 100644 --- a/noncore/multimedia/opieplayer2/playlistwidget.h +++ b/noncore/multimedia/opieplayer2/playlistwidget.h @@ -20,9 +20,9 @@ =_ + =;=|` MERCHANTABILITY or FITNESS FOR A _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU -..}^=.= = ; Library General Public License for more +..}^=.= = ; General Public License for more ++= -. .` .: details. : = ...= . :.=- -. .:....=;==+<; You should have received a copy of the GNU - -_. . . )=. = Library General Public License along with + -_. . . )=. = General Public License along with -- :-=` this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, diff --git a/noncore/multimedia/opieplayer2/playlistwidgetgui.cpp b/noncore/multimedia/opieplayer2/playlistwidgetgui.cpp index 6ecd016..250833c 100644 --- a/noncore/multimedia/opieplayer2/playlistwidgetgui.cpp +++ b/noncore/multimedia/opieplayer2/playlistwidgetgui.cpp @@ -20,9 +20,9 @@ =_ + =;=|` MERCHANTABILITY or FITNESS FOR A _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU -..}^=.= = ; Library General Public License for more +..}^=.= = ; General Public License for more ++= -. .` .: details. : = ...= . :.=- -. .:....=;==+<; You should have received a copy of the GNU - -_. . . )=. = Library General Public License along with + -_. . . )=. = General Public License along with -- :-=` this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, @@ -100,4 +100,23 @@ PlayListWidgetGui::PlayListWidgetGui( QWidget* parent, const char* name, WFlags skinsMenu->isCheckable(); + gammaMenu = new QPopupMenu( this ); + pmView->insertItem( tr( "Gamma" ), gammaMenu ); + gammaMenu->setMinimumHeight( 50 ); + + gammaSlider = new QSlider( QSlider::Vertical, gammaMenu ); + gammaSlider->setRange( -100, 100 ); + gammaSlider->setTickmarks( QSlider::Left ); + gammaSlider->setTickInterval( 20 ); + gammaSlider->setFocusPolicy( QWidget::NoFocus ); + gammaSlider->setValue( 0 ); + gammaSlider->setMinimumHeight( 50 ); + + gammaLCD = new QLCDNumber( 3, gammaMenu ); + + gammaMenu->insertItem( gammaSlider ); + gammaMenu->insertItem( gammaLCD ); + + connect( gammaSlider, SIGNAL( valueChanged( int ) ), gammaLCD, SLOT( display( int ) ) ); + vbox5 = new QVBox( this ); QVBox *vbox4 = new QVBox( vbox5 ); diff --git a/noncore/multimedia/opieplayer2/playlistwidgetgui.h b/noncore/multimedia/opieplayer2/playlistwidgetgui.h index 4c8d737..61fd40d 100644 --- a/noncore/multimedia/opieplayer2/playlistwidgetgui.h +++ b/noncore/multimedia/opieplayer2/playlistwidgetgui.h @@ -20,9 +20,9 @@ =_ + =;=|` MERCHANTABILITY or FITNESS FOR A _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU -..}^=.= = ; Library General Public License for more +..}^=.= = ; General Public License for more ++= -. .` .: details. : = ...= . :.=- -. .:....=;==+<; You should have received a copy of the GNU - -_. . . )=. = Library General Public License along with + -_. . . )=. = General Public License along with -- :-=` this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, @@ -45,5 +45,6 @@ #include <qpopupmenu.h> #include <qaction.h> - +#include <qslider.h> +#include <qlcdnumber.h> class PlayListWidgetPrivate; @@ -105,4 +106,7 @@ protected: QLabel *libString; QPopupMenu *pmView ; + QPopupMenu *gammaMenu; + QSlider *gammaSlider; + QLCDNumber *gammaLCD; bool fromSetDocument; bool insanityBool; diff --git a/noncore/multimedia/opieplayer2/xinecontrol.cpp b/noncore/multimedia/opieplayer2/xinecontrol.cpp index 12d80ba..d18fde5 100644 --- a/noncore/multimedia/opieplayer2/xinecontrol.cpp +++ b/noncore/multimedia/opieplayer2/xinecontrol.cpp @@ -20,9 +20,9 @@ =_ + =;=|` MERCHANTABILITY or FITNESS FOR A _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU -..}^=.= = ; Library General Public License for more +..}^=.= = ; General Public License for more ++= -. .` .: details. : = ...= . :.=- -. .:....=;==+<; You should have received a copy of the GNU - -_. . . )=. = Library General Public License along with + -_. . . )=. = General Public License along with -- :-=` this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, @@ -52,4 +52,5 @@ XineControl::XineControl( QObject *parent, const char *name ) connect( mediaPlayerState, SIGNAL( fullscreenToggled( bool ) ), this, SLOT( setFullscreen( bool ) ) ); connect( mediaPlayerState, SIGNAL( positionChanged( long ) ), this, SLOT( seekTo( long ) ) ); + connect( mediaPlayerState, SIGNAL( videoGammaChanged( int ) ), this, SLOT( setGamma( int ) ) ); connect( libXine, SIGNAL( stopped() ), this, SLOT( nextMedia() ) ); @@ -73,5 +74,5 @@ void XineControl::play( const QString& fileName ) { m_fileName = fileName; - qDebug("<<FILENAME: " + fileName + ">>>>"); + //qDebug("<<FILENAME: " + fileName + ">>>>"); libXine->play( fileName ); @@ -115,4 +116,8 @@ void XineControl::nextMedia() { } +void XineControl::setGamma( int value ) { + libXine->setGamma( value ); +} + void XineControl::stop( bool isSet ) { if ( !isSet) { diff --git a/noncore/multimedia/opieplayer2/xinecontrol.h b/noncore/multimedia/opieplayer2/xinecontrol.h index 4263b36..1de610b 100644 --- a/noncore/multimedia/opieplayer2/xinecontrol.h +++ b/noncore/multimedia/opieplayer2/xinecontrol.h @@ -20,9 +20,9 @@ =_ + =;=|` MERCHANTABILITY or FITNESS FOR A _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU -..}^=.= = ; Library General Public License for more +..}^=.= = ; General Public License for more ++= -. .` .: details. : = ...= . :.=- -. .:....=;==+<; You should have received a copy of the GNU - -_. . . )=. = Library General Public License along with + -_. . . )=. = General Public License along with -- :-=` this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, @@ -51,6 +51,20 @@ public slots: void play( const QString& fileName ); void stop( bool ); + + /** + * Pause the media stream + * @param if pause or not + */ void pause( bool ); + + /** + * Set videos fullscreen + * @param yes or no + */ void setFullscreen( bool ); + + /** + * + */ long currentTime(); void seekTo( long ); @@ -58,7 +72,19 @@ public slots: void length(); long position(); + + /** + * Proceed to the next media file in playlist + */ void nextMedia(); + void videoResized ( const QSize &s ); + /** + * Set the gamma value of the video output + * @param int value between -100 and 100, 0 is original + */ + void setGamma( int ); + + private: XINE::Lib *libXine; @@ -71,4 +97,5 @@ private: bool hasVideoChannel : 1; bool hasAudioChannel : 1; + signals: void positionChanged( long ); diff --git a/noncore/multimedia/opieplayer2/xinevideowidget.cpp b/noncore/multimedia/opieplayer2/xinevideowidget.cpp index bc95d86..d06d62a 100644 --- a/noncore/multimedia/opieplayer2/xinevideowidget.cpp +++ b/noncore/multimedia/opieplayer2/xinevideowidget.cpp diff --git a/noncore/multimedia/opieplayer2/yuv2rgb.c b/noncore/multimedia/opieplayer2/yuv2rgb.c index 22bb4cb..e8e86e6 100644 --- a/noncore/multimedia/opieplayer2/yuv2rgb.c +++ b/noncore/multimedia/opieplayer2/yuv2rgb.c @@ -3064,5 +3064,4 @@ yuv2rgb_t *yuv2rgb_create_converter (yuv2rgb_factory_t *factory) { * factory functions */ - void yuv2rgb_set_gamma (yuv2rgb_factory_t *this, int gamma) { |