summaryrefslogtreecommitdiff
authorharlekin <harlekin>2002-09-02 17:18:30 (UTC)
committer harlekin <harlekin>2002-09-02 17:18:30 (UTC)
commit99b610f06af444e2636d1afe93d3de89a524ee8a (patch) (side-by-side diff)
treea664829bd5149686b906253f71d4cc01eeb9b059
parentbf0f423d8aed59da90db9e9748a53fdd5e1efab0 (diff)
downloadopie-99b610f06af444e2636d1afe93d3de89a524ee8a.zip
opie-99b610f06af444e2636d1afe93d3de89a524ee8a.tar.gz
opie-99b610f06af444e2636d1afe93d3de89a524ee8a.tar.bz2
first parts of gamma correction, fullscreen on arm need some more work
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer2/lib.cpp7
-rw-r--r--noncore/multimedia/opieplayer2/lib.h7
-rw-r--r--noncore/multimedia/opieplayer2/mediaplayerstate.cpp48
-rw-r--r--noncore/multimedia/opieplayer2/mediaplayerstate.h10
-rw-r--r--noncore/multimedia/opieplayer2/nullvideo.c43
-rw-r--r--noncore/multimedia/opieplayer2/playlistwidget.cpp5
-rw-r--r--noncore/multimedia/opieplayer2/playlistwidget.h4
-rw-r--r--noncore/multimedia/opieplayer2/playlistwidgetgui.cpp23
-rw-r--r--noncore/multimedia/opieplayer2/playlistwidgetgui.h10
-rw-r--r--noncore/multimedia/opieplayer2/xinecontrol.cpp11
-rw-r--r--noncore/multimedia/opieplayer2/xinecontrol.h31
-rw-r--r--noncore/multimedia/opieplayer2/xinevideowidget.cpp0
-rw-r--r--noncore/multimedia/opieplayer2/yuv2rgb.c1
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) {