summaryrefslogtreecommitdiff
path: root/noncore/multimedia/opieplayer2
authorsimon <simon>2002-12-11 12:53:29 (UTC)
committer simon <simon>2002-12-11 12:53:29 (UTC)
commit9b8e5d7c225ac2dd399e392d57e3d19348412e1a (patch) (unidiff)
tree463674357359136235c75703edafe109e6515d16 /noncore/multimedia/opieplayer2
parentdd6a6d5345e191ffa6da3e015c4e024bd8ca67b7 (diff)
downloadopie-9b8e5d7c225ac2dd399e392d57e3d19348412e1a.zip
opie-9b8e5d7c225ac2dd399e392d57e3d19348412e1a.tar.gz
opie-9b8e5d7c225ac2dd399e392d57e3d19348412e1a.tar.bz2
- slight simplification in the API
Diffstat (limited to 'noncore/multimedia/opieplayer2') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer2/mediawidget.cpp6
-rw-r--r--noncore/multimedia/opieplayer2/mediawidget.h2
-rw-r--r--noncore/multimedia/opieplayer2/skin.cpp11
-rw-r--r--noncore/multimedia/opieplayer2/skin.h4
4 files changed, 11 insertions, 12 deletions
diff --git a/noncore/multimedia/opieplayer2/mediawidget.cpp b/noncore/multimedia/opieplayer2/mediawidget.cpp
index da0706e..6b304ec 100644
--- a/noncore/multimedia/opieplayer2/mediawidget.cpp
+++ b/noncore/multimedia/opieplayer2/mediawidget.cpp
@@ -23,90 +23,90 @@
23 23
24#include "mediawidget.h" 24#include "mediawidget.h"
25#include "playlistwidget.h" 25#include "playlistwidget.h"
26#include "skin.h" 26#include "skin.h"
27 27
28#include <qpe/config.h> 28#include <qpe/config.h>
29#include <qpe/qpeapplication.h> 29#include <qpe/qpeapplication.h>
30 30
31MediaWidget::MediaWidget( PlayListWidget &_playList, MediaPlayerState &_mediaPlayerState, QWidget *parent, const char *name ) 31MediaWidget::MediaWidget( PlayListWidget &_playList, MediaPlayerState &_mediaPlayerState, QWidget *parent, const char *name )
32 : QWidget( parent, name ), mediaPlayerState( _mediaPlayerState ), playList( _playList ) 32 : QWidget( parent, name ), mediaPlayerState( _mediaPlayerState ), playList( _playList )
33{ 33{
34 connect( &mediaPlayerState, SIGNAL( displayTypeChanged( MediaPlayerState::DisplayType ) ), 34 connect( &mediaPlayerState, SIGNAL( displayTypeChanged( MediaPlayerState::DisplayType ) ),
35 this, SLOT( setDisplayType( MediaPlayerState::DisplayType ) ) ); 35 this, SLOT( setDisplayType( MediaPlayerState::DisplayType ) ) );
36 connect( &mediaPlayerState, SIGNAL( lengthChanged( long ) ), 36 connect( &mediaPlayerState, SIGNAL( lengthChanged( long ) ),
37 this, SLOT( setLength( long ) ) ); 37 this, SLOT( setLength( long ) ) );
38 connect( &mediaPlayerState, SIGNAL( playingToggled( bool ) ), 38 connect( &mediaPlayerState, SIGNAL( playingToggled( bool ) ),
39 this, SLOT( setPlaying( bool ) ) ); 39 this, SLOT( setPlaying( bool ) ) );
40} 40}
41 41
42MediaWidget::~MediaWidget() 42MediaWidget::~MediaWidget()
43{ 43{
44} 44}
45 45
46void MediaWidget::setupButtons( const SkinButtonInfo *skinInfo, uint buttonCount, 46void MediaWidget::setupButtons( const SkinButtonInfo *skinInfo, uint buttonCount,
47 const Skin &skin, const QSize &buttonAreaSize ) 47 const Skin &skin )
48{ 48{
49 buttonMask = skin.buttonMask( skinInfo, buttonCount, buttonAreaSize ); 49 buttonMask = skin.buttonMask( skinInfo, buttonCount );
50 50
51 buttons.clear(); 51 buttons.clear();
52 buttons.reserve( buttonCount ); 52 buttons.reserve( buttonCount );
53 53
54 for ( uint i = 0; i < buttonCount; ++i ) { 54 for ( uint i = 0; i < buttonCount; ++i ) {
55 Button button = setupButton( skinInfo[ i ], skin ); 55 Button button = setupButton( skinInfo[ i ], skin );
56 buttons.push_back( button ); 56 buttons.push_back( button );
57 } 57 }
58} 58}
59 59
60MediaWidget::Button MediaWidget::setupButton( const SkinButtonInfo &buttonInfo, const Skin &skin ) 60MediaWidget::Button MediaWidget::setupButton( const SkinButtonInfo &buttonInfo, const Skin &skin )
61{ 61{
62 Button button; 62 Button button;
63 button.command = buttonInfo.command; 63 button.command = buttonInfo.command;
64 button.type = buttonInfo.type; 64 button.type = buttonInfo.type;
65 button.mask = skin.buttonMaskImage( buttonInfo.fileName ); 65 button.mask = skin.buttonMaskImage( buttonInfo.fileName );
66 66
67 return button; 67 return button;
68} 68}
69 69
70void MediaWidget::loadDefaultSkin( const SkinButtonInfo *skinInfo, uint buttonCount, const QString &fileNameInfix ) 70void MediaWidget::loadDefaultSkin( const SkinButtonInfo *skinInfo, uint buttonCount, const QString &fileNameInfix )
71{ 71{
72 Config cfg( "OpiePlayer" ); 72 Config cfg( "OpiePlayer" );
73 cfg.setGroup( "Options" ); 73 cfg.setGroup( "Options" );
74 QString skin = cfg.readEntry( "Skin","default" ); 74 QString skin = cfg.readEntry( "Skin","default" );
75 75
76 loadSkin( skinInfo, buttonCount, skin, fileNameInfix ); 76 loadSkin( skinInfo, buttonCount, skin, fileNameInfix );
77} 77}
78 78
79void MediaWidget::loadSkin( const SkinButtonInfo *skinInfo, uint buttonCount, const QString &name, const QString &fileNameInfix ) 79void MediaWidget::loadSkin( const SkinButtonInfo *skinInfo, uint buttonCount, const QString &name, const QString &fileNameInfix )
80{ 80{
81 Skin skin( name, fileNameInfix ); 81 Skin skin( name, fileNameInfix );
82 82
83 QString skinPath = "opieplayer2/skins/" + name; 83 QString skinPath = "opieplayer2/skins/" + name;
84 backgroundPixmap = skin.backgroundImage(); 84 backgroundPixmap = skin.backgroundImage();
85 buttonUpImage = skin.buttonUpImage(); 85 buttonUpImage = skin.buttonUpImage();
86 buttonDownImage = skin.buttonDownImage(); 86 buttonDownImage = skin.buttonDownImage();
87 87
88 setupButtons( skinInfo, buttonCount, skin, buttonUpImage.size() ); 88 setupButtons( skinInfo, buttonCount, skin );
89} 89}
90 90
91void MediaWidget::closeEvent( QCloseEvent * ) 91void MediaWidget::closeEvent( QCloseEvent * )
92{ 92{
93 mediaPlayerState.setList(); 93 mediaPlayerState.setList();
94} 94}
95 95
96void MediaWidget::paintEvent( QPaintEvent *pe ) 96void MediaWidget::paintEvent( QPaintEvent *pe )
97{ 97{
98 QPainter p( this ); 98 QPainter p( this );
99 99
100 if ( mediaPlayerState.isFullscreen() ) { 100 if ( mediaPlayerState.isFullscreen() ) {
101 // Clear the background 101 // Clear the background
102 p.setBrush( QBrush( Qt::black ) ); 102 p.setBrush( QBrush( Qt::black ) );
103 return; 103 return;
104 } 104 }
105 105
106 if ( !pe->erased() ) { 106 if ( !pe->erased() ) {
107 // Combine with background and double buffer 107 // Combine with background and double buffer
108 QPixmap pix( pe->rect().size() ); 108 QPixmap pix( pe->rect().size() );
109 QPainter p( &pix ); 109 QPainter p( &pix );
110 p.translate( -pe->rect().topLeft().x(), -pe->rect().topLeft().y() ); 110 p.translate( -pe->rect().topLeft().x(), -pe->rect().topLeft().y() );
111 p.drawTiledPixmap( pe->rect(), backgroundPixmap, pe->rect().topLeft() ); 111 p.drawTiledPixmap( pe->rect(), backgroundPixmap, pe->rect().topLeft() );
112 paintAllButtons( p ); 112 paintAllButtons( p );
diff --git a/noncore/multimedia/opieplayer2/mediawidget.h b/noncore/multimedia/opieplayer2/mediawidget.h
index 4bd8760..0fe4772 100644
--- a/noncore/multimedia/opieplayer2/mediawidget.h
+++ b/noncore/multimedia/opieplayer2/mediawidget.h
@@ -81,49 +81,49 @@ public:
81 }; 81 };
82 82
83 MediaWidget( PlayListWidget &_playList, MediaPlayerState &_mediaPlayerState, QWidget *parent = 0, const char *name = 0 ); 83 MediaWidget( PlayListWidget &_playList, MediaPlayerState &_mediaPlayerState, QWidget *parent = 0, const char *name = 0 );
84 virtual ~MediaWidget(); 84 virtual ~MediaWidget();
85 85
86public slots: 86public slots:
87 virtual void setDisplayType( MediaPlayerState::DisplayType displayType ) = 0; 87 virtual void setDisplayType( MediaPlayerState::DisplayType displayType ) = 0;
88 virtual void setLength( long length ) = 0; 88 virtual void setLength( long length ) = 0;
89 virtual void setPlaying( bool playing ) = 0; 89 virtual void setPlaying( bool playing ) = 0;
90 90
91 virtual void loadSkin() = 0; 91 virtual void loadSkin() = 0;
92 92
93signals: 93signals:
94 void moreReleased(); 94 void moreReleased();
95 void lessReleased(); 95 void lessReleased();
96 void forwardReleased(); 96 void forwardReleased();
97 void backReleased(); 97 void backReleased();
98 void forwardClicked(); 98 void forwardClicked();
99 void backClicked(); 99 void backClicked();
100 void moreClicked(); 100 void moreClicked();
101 void lessClicked(); 101 void lessClicked();
102 102
103protected: 103protected:
104 void setupButtons( const SkinButtonInfo *skinInfo, uint buttonCount, 104 void setupButtons( const SkinButtonInfo *skinInfo, uint buttonCount,
105 const Skin &skin, const QSize &buttonAreaSize ); 105 const Skin &skin );
106 Button setupButton( const SkinButtonInfo &buttonInfo, const Skin &skin ); 106 Button setupButton( const SkinButtonInfo &buttonInfo, const Skin &skin );
107 107
108 void loadDefaultSkin( const SkinButtonInfo *skinInfo, uint buttonCount, const QString &fileNameInfix = QString::null ); 108 void loadDefaultSkin( const SkinButtonInfo *skinInfo, uint buttonCount, const QString &fileNameInfix = QString::null );
109 void loadSkin( const SkinButtonInfo *skinInfo, uint buttonCount, const QString &name, const QString &fileNameInfix ); 109 void loadSkin( const SkinButtonInfo *skinInfo, uint buttonCount, const QString &name, const QString &fileNameInfix );
110 110
111 virtual void closeEvent( QCloseEvent * ); 111 virtual void closeEvent( QCloseEvent * );
112 112
113 virtual void paintEvent( QPaintEvent *pe ); 113 virtual void paintEvent( QPaintEvent *pe );
114 114
115 Button *buttonAt( const QPoint &position ); 115 Button *buttonAt( const QPoint &position );
116 116
117 virtual void mousePressEvent( QMouseEvent *event ); 117 virtual void mousePressEvent( QMouseEvent *event );
118 virtual void mouseReleaseEvent( QMouseEvent *event ); 118 virtual void mouseReleaseEvent( QMouseEvent *event );
119 119
120 virtual void makeVisible(); 120 virtual void makeVisible();
121 121
122 void handleCommand( Command command, bool buttonDown ); 122 void handleCommand( Command command, bool buttonDown );
123 123
124 bool isOverButton( const QPoint &position, int buttonId ) const; 124 bool isOverButton( const QPoint &position, int buttonId ) const;
125 125
126 void paintAllButtons( QPainter &p ); 126 void paintAllButtons( QPainter &p );
127 void paintButton( const Button &button ); 127 void paintButton( const Button &button );
128 void paintButton( QPainter &p, const Button &button ); 128 void paintButton( QPainter &p, const Button &button );
129 129
diff --git a/noncore/multimedia/opieplayer2/skin.cpp b/noncore/multimedia/opieplayer2/skin.cpp
index ef70957..d3918d1 100644
--- a/noncore/multimedia/opieplayer2/skin.cpp
+++ b/noncore/multimedia/opieplayer2/skin.cpp
@@ -1,72 +1,71 @@
1 1
2#include "skin.h" 2#include "skin.h"
3 3
4#include <qpe/resource.h> 4#include <qpe/resource.h>
5 5
6Skin::Skin( const QString &name, const QString &fileNameInfix ) 6Skin::Skin( const QString &name, const QString &fileNameInfix )
7 : m_name( name ), m_fileNameInfix( fileNameInfix ) 7 : m_name( name ), m_fileNameInfix( fileNameInfix )
8{ 8{
9 m_skinPath = "opieplayer2/skins/" + name; 9 m_skinPath = "opieplayer2/skins/" + name;
10} 10}
11 11
12void Skin::preload( const MediaWidget::SkinButtonInfo *skinButtonInfo, uint buttonCount, const QSize &buttonAreaSize ) 12void Skin::preload( const MediaWidget::SkinButtonInfo *skinButtonInfo, uint buttonCount )
13{ 13{
14 backgroundImage(); 14 backgroundImage();
15 buttonUpImage(); 15 buttonUpImage();
16 buttonDownImage(); 16 buttonDownImage();
17 ( void )buttonMask( skinButtonInfo, buttonCount, buttonAreaSize ); 17 ( void )buttonMask( skinButtonInfo, buttonCount );
18} 18}
19 19
20QImage Skin::backgroundImage() const 20QImage Skin::backgroundImage() const
21{ 21{
22 if ( m_backgroundImage.isNull() ) 22 if ( m_backgroundImage.isNull() )
23 m_backgroundImage = QImage( Resource::findPixmap( QString( "%1/background" ).arg( m_skinPath ) ) ); 23 m_backgroundImage = QImage( Resource::findPixmap( QString( "%1/background" ).arg( m_skinPath ) ) );
24 return m_backgroundImage; 24 return m_backgroundImage;
25} 25}
26 26
27QImage Skin::buttonUpImage() const 27QImage Skin::buttonUpImage() const
28{ 28{
29 if ( m_buttonUpImage.isNull() ) 29 if ( m_buttonUpImage.isNull() )
30 m_buttonUpImage = QImage( Resource::findPixmap( QString( "%1/skin%2_up" ).arg( m_skinPath ).arg( m_fileNameInfix ) ) ); 30 m_buttonUpImage = QImage( Resource::findPixmap( QString( "%1/skin%2_up" ).arg( m_skinPath ).arg( m_fileNameInfix ) ) );
31 return m_buttonUpImage; 31 return m_buttonUpImage;
32} 32}
33 33
34QImage Skin::buttonDownImage() const 34QImage Skin::buttonDownImage() const
35{ 35{
36 if ( m_buttonDownImage.isNull() ) 36 if ( m_buttonDownImage.isNull() )
37 m_buttonDownImage = QImage( Resource::findPixmap( QString( "%1/skin%2_down" ).arg( m_skinPath ).arg( m_fileNameInfix ) ) ); 37 m_buttonDownImage = QImage( Resource::findPixmap( QString( "%1/skin%2_down" ).arg( m_skinPath ).arg( m_fileNameInfix ) ) );
38 return m_buttonDownImage; 38 return m_buttonDownImage;
39} 39}
40 40
41QImage Skin::buttonMask( const MediaWidget::SkinButtonInfo *skinButtonInfo, uint buttonCount, const QSize &buttonAreaSize ) const 41QImage Skin::buttonMask( const MediaWidget::SkinButtonInfo *skinButtonInfo, uint buttonCount ) const
42{ 42{
43 if ( buttonAreaSize != m_buttonMask.size() )
44 m_buttonMask = QImage();
45
46 if ( !m_buttonMask.isNull() ) 43 if ( !m_buttonMask.isNull() )
47 return m_buttonMask; 44 return m_buttonMask;
48 45
46 QSize buttonAreaSize = buttonUpImage().size();
47
49 m_buttonMask = QImage( buttonAreaSize, 8, 255 ); 48 m_buttonMask = QImage( buttonAreaSize, 8, 255 );
50 m_buttonMask.fill( 0 ); 49 m_buttonMask.fill( 0 );
51 50
52 for ( uint i = 0; i < buttonCount; ++i ) 51 for ( uint i = 0; i < buttonCount; ++i )
53 addButtonToMask( skinButtonInfo[ i ].command + 1, buttonMaskImage( skinButtonInfo[ i ].fileName ) ); 52 addButtonToMask( skinButtonInfo[ i ].command + 1, buttonMaskImage( skinButtonInfo[ i ].fileName ) );
54 53
55 return m_buttonMask; 54 return m_buttonMask;
56} 55}
57 56
58void Skin::addButtonToMask( int tag, const QImage &maskImage ) const 57void Skin::addButtonToMask( int tag, const QImage &maskImage ) const
59{ 58{
60 if ( maskImage.isNull() ) 59 if ( maskImage.isNull() )
61 return; 60 return;
62 61
63 uchar **dest = m_buttonMask.jumpTable(); 62 uchar **dest = m_buttonMask.jumpTable();
64 for ( int y = 0; y < m_buttonMask.height(); y++ ) { 63 for ( int y = 0; y < m_buttonMask.height(); y++ ) {
65 uchar *line = dest[y]; 64 uchar *line = dest[y];
66 for ( int x = 0; x < m_buttonMask.width(); x++ ) 65 for ( int x = 0; x < m_buttonMask.width(); x++ )
67 if ( !qRed( maskImage.pixel( x, y ) ) ) 66 if ( !qRed( maskImage.pixel( x, y ) ) )
68 line[x] = tag; 67 line[x] = tag;
69 } 68 }
70} 69}
71 70
72QImage Skin::buttonMaskImage( const QString &fileName ) const 71QImage Skin::buttonMaskImage( const QString &fileName ) const
diff --git a/noncore/multimedia/opieplayer2/skin.h b/noncore/multimedia/opieplayer2/skin.h
index 14873e7..ee19f4b 100644
--- a/noncore/multimedia/opieplayer2/skin.h
+++ b/noncore/multimedia/opieplayer2/skin.h
@@ -1,45 +1,45 @@
1#ifndef SKIN_H 1#ifndef SKIN_H
2#define SKIN_H 2#define SKIN_H
3 3
4#include <qstring.h> 4#include <qstring.h>
5#include <qimage.h> 5#include <qimage.h>
6#include <qmap.h> 6#include <qmap.h>
7 7
8#include "mediawidget.h" 8#include "mediawidget.h"
9 9
10class Skin 10class Skin
11{ 11{
12public: 12public:
13 Skin( const QString &name, const QString &fileNameInfix ); 13 Skin( const QString &name, const QString &fileNameInfix );
14 14
15 void preload( const MediaWidget::SkinButtonInfo *skinButtonInfo, uint buttonCount, const QSize &buttonAreaSize ); 15 void preload( const MediaWidget::SkinButtonInfo *skinButtonInfo, uint buttonCount );
16 16
17 QImage backgroundImage() const; 17 QImage backgroundImage() const;
18 QImage buttonUpImage() const; 18 QImage buttonUpImage() const;
19 QImage buttonDownImage() const; 19 QImage buttonDownImage() const;
20 20
21 QImage buttonMask( const MediaWidget::SkinButtonInfo *skinButtonInfo, uint buttonCount, const QSize &buttonAreaSize ) const; 21 QImage buttonMask( const MediaWidget::SkinButtonInfo *skinButtonInfo, uint buttonCount ) const;
22 22
23 QImage buttonMaskImage( const QString &fileName ) const; 23 QImage buttonMaskImage( const QString &fileName ) const;
24 24
25private: 25private:
26 void addButtonToMask( int tag, const QImage &maskImage ) const; 26 void addButtonToMask( int tag, const QImage &maskImage ) const;
27 27
28 QString m_name; 28 QString m_name;
29 QString m_fileNameInfix; 29 QString m_fileNameInfix;
30 QString m_skinPath; 30 QString m_skinPath;
31 31
32 typedef QMap<QString, QImage> ButtonMaskImageMap; 32 typedef QMap<QString, QImage> ButtonMaskImageMap;
33 33
34 mutable QImage m_backgroundImage; 34 mutable QImage m_backgroundImage;
35 mutable QImage m_buttonUpImage; 35 mutable QImage m_buttonUpImage;
36 mutable QImage m_buttonDownImage; 36 mutable QImage m_buttonDownImage;
37 mutable QImage m_buttonMask; 37 mutable QImage m_buttonMask;
38 mutable ButtonMaskImageMap m_buttonMasks; 38 mutable ButtonMaskImageMap m_buttonMasks;
39 39
40 Skin( const Skin & ); 40 Skin( const Skin & );
41 Skin &operator=( const Skin & ); 41 Skin &operator=( const Skin & );
42}; 42};
43 43
44#endif // SKIN_H 44#endif // SKIN_H
45/* vim: et sw=4 ts=4 45/* vim: et sw=4 ts=4