summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer2/skin.cpp16
-rw-r--r--noncore/multimedia/opieplayer2/skin.h16
2 files changed, 16 insertions, 16 deletions
diff --git a/noncore/multimedia/opieplayer2/skin.cpp b/noncore/multimedia/opieplayer2/skin.cpp
index 9ad5f3f..06453f9 100644
--- a/noncore/multimedia/opieplayer2/skin.cpp
+++ b/noncore/multimedia/opieplayer2/skin.cpp
@@ -16,16 +16,17 @@
16 16
17 You should have received a copy of the GNU General Public License 17 You should have received a copy of the GNU General Public License
18 along with this program; see the file COPYING. If not, write to 18 along with this program; see the file COPYING. If not, write to
19 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 19 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
20 Boston, MA 02111-1307, USA. 20 Boston, MA 02111-1307, USA.
21*/ 21*/
22 22
23#include "skin.h" 23#include "skin.h"
24#include "singleton.h"
24 25
25#include <qpe/resource.h> 26#include <qpe/resource.h>
26#include <qpe/config.h> 27#include <qpe/config.h>
27 28
28#include <assert.h> 29#include <assert.h>
29 30
30struct SkinData 31struct SkinData
31{ 32{
@@ -33,16 +34,31 @@ struct SkinData
33 34
34 QImage backgroundImage; 35 QImage backgroundImage;
35 QImage buttonUpImage; 36 QImage buttonUpImage;
36 QImage buttonDownImage; 37 QImage buttonDownImage;
37 QImage buttonMask; 38 QImage buttonMask;
38 ButtonMaskImageMap buttonMasks; 39 ButtonMaskImageMap buttonMasks;
39}; 40};
40 41
42class SkinCache : public Singleton<SkinCache>
43{
44public:
45 SkinCache();
46
47 QImage loadImage( const QString &name );
48
49private:
50 typedef QDict<QImage> ImageCache;
51
52 ImageCache m_cache;
53
54 ThreadUtil::Mutex m_cacheGuard;
55};
56
41Skin::Skin( const QString &name, const QString &fileNameInfix ) 57Skin::Skin( const QString &name, const QString &fileNameInfix )
42 : m_fileNameInfix( fileNameInfix ) 58 : m_fileNameInfix( fileNameInfix )
43{ 59{
44 init( name ); 60 init( name );
45} 61}
46 62
47Skin::Skin( const QString &fileNameInfix ) 63Skin::Skin( const QString &fileNameInfix )
48 : m_fileNameInfix( fileNameInfix ) 64 : m_fileNameInfix( fileNameInfix )
diff --git a/noncore/multimedia/opieplayer2/skin.h b/noncore/multimedia/opieplayer2/skin.h
index 5ab6574..060ff73 100644
--- a/noncore/multimedia/opieplayer2/skin.h
+++ b/noncore/multimedia/opieplayer2/skin.h
@@ -25,17 +25,16 @@
25 25
26#include <qstring.h> 26#include <qstring.h>
27#include <qimage.h> 27#include <qimage.h>
28#include <qmap.h> 28#include <qmap.h>
29#include <qdict.h> 29#include <qdict.h>
30 30
31#include "mediawidget.h" 31#include "mediawidget.h"
32#include "threadutil.h" 32#include "threadutil.h"
33#include "singleton.h"
34 33
35struct SkinData; 34struct SkinData;
36 35
37class Skin 36class Skin
38{ 37{
39public: 38public:
40 Skin( const QString &name, const QString &fileNameInfix ); 39 Skin( const QString &name, const QString &fileNameInfix );
41 Skin( const QString &fileNameInfix ); 40 Skin( const QString &fileNameInfix );
@@ -62,31 +61,16 @@ private:
62 QString m_skinPath; 61 QString m_skinPath;
63 62
64 SkinData *d; 63 SkinData *d;
65 64
66 Skin( const Skin & ); 65 Skin( const Skin & );
67 Skin &operator=( const Skin & ); 66 Skin &operator=( const Skin & );
68}; 67};
69 68
70class SkinCache : public Singleton<SkinCache>
71{
72public:
73 SkinCache();
74
75 QImage loadImage( const QString &name );
76
77private:
78 typedef QDict<QImage> ImageCache;
79
80 ImageCache m_cache;
81
82 ThreadUtil::Mutex m_cacheGuard;
83};
84
85class SkinLoader : public ThreadUtil::Thread 69class SkinLoader : public ThreadUtil::Thread
86{ 70{
87public: 71public:
88 SkinLoader(); 72 SkinLoader();
89 73
90 void schedule( const QString &skinName, const QString &fileNameInfix, 74 void schedule( const QString &skinName, const QString &fileNameInfix,
91 const MediaWidget::SkinButtonInfo *skinButtonInfo, const uint buttonCount ); 75 const MediaWidget::SkinButtonInfo *skinButtonInfo, const uint buttonCount );
92 76