3
Copyright (C) 1999 Martin Vogt
5
This program is free software; you can redistribute it and/or modify
6
it under the terms of the GNU General Public License as published by
7
the Free Software Foundation.
9
For more information look at the file COPYRIGHT in this package
14
#include <qstringlist.h>
21
WaSkin::WaSkin(QString loadDir,QWidget *parent, const char *name)
22
: GuiPlugin(parent,name) {
25
waSkinModell=new WaSkinModell();
31
createHighLevelElements();
33
setMinimumSize(sizeHint());
34
setMaximumSize(sizeHint());
42
void WaSkin::loadSkin(QString newSkinDir) {
43
if (skinDir != newSkinDir) {
44
WaSkinOperation::loadSkinSet(newSkinDir,waSkinModell);
51
void WaSkin::setSong(QString song) {
52
waInfo->setSong(song);
58
int WaSkin::getSkinId() {
59
return __SKINID_WINAMP;
64
QSize WaSkin::sizeHint() const {
65
WaSkinDesc* waSkinDesc=waSkinModell->getWaSkinDesc(_WA_SKIN_MAIN);
66
int w=waSkinDesc->getWidth();
67
int h=waSkinDesc->getHeight();
72
void WaSkin::paintEvent (QPaintEvent* paintEvent) {
73
QPixmap* pixmapCurrent=waSkinModell->get(_WA_SKIN_MAIN);
76
paint.drawPixmap ( 0, 0, *pixmapCurrent);
81
void WaSkin::createButtons() {
82
prev=new WaButton(waSkinModell,_WA_MAPPING_CBUTTONS_PREV,this);
83
play=new WaButton(waSkinModell,_WA_MAPPING_CBUTTONS_PLAY,this);
84
pause=new WaButton(waSkinModell,_WA_MAPPING_CBUTTONS_PAUSE,this);
85
stop=new WaButton(waSkinModell,_WA_MAPPING_CBUTTONS_STOP,this);
86
next=new WaButton(waSkinModell,_WA_MAPPING_CBUTTONS_NEXT,this);
87
eject=new WaButton(waSkinModell,_WA_MAPPING_CBUTTONS_EJECT,this);
88
shuffle=new WaButton(waSkinModell,_WA_MAPPING_SHUFFLE,this);
89
repeat=new WaButton(waSkinModell,_WA_MAPPING_REPEAT,this);
90
playlist=new WaButton(waSkinModell,_WA_MAPPING_PLAYLIST,this);
91
eq=new WaButton(waSkinModell,_WA_MAPPING_EQ,this);
93
titleshade = new WaButton(waSkinModell, _WA_MAPPING_TITLE_SHADE, this);
94
titleshade->setPixmapUp(SIGNAL(event_WA_SKIN_TITLE_SHADE_NORM()), _WA_SKIN_TITLE_SHADE_NORM);
95
titleshade->setPixmapDown(SIGNAL(event_WA_SKIN_TITLE_SHADE_PRES()), _WA_SKIN_TITLE_SHADE_PRES);
96
connect(titleshade,SIGNAL(pressed()),this,SIGNAL(shadeEvent()));
98
shuffle->setToggleFlag(true);
99
repeat->setToggleFlag(true);
100
playlist->setToggleFlag(true);
101
connect(shuffle,SIGNAL(setSelectedEvent(int)),
102
this,SIGNAL(shuffleClickedEvent(int)));
104
connect(repeat,SIGNAL(setSelectedEvent(int)),
105
this,SIGNAL(repeatClickedEvent(int)));
107
connect(playlist,SIGNAL(setSelectedEvent(int)),
108
this,SIGNAL(playlistClickedEvent(int)));
110
prev->setPixmapUp(SIGNAL(event_WA_SKIN_CBUTTONS_PREV_NORM()),
111
_WA_SKIN_CBUTTONS_PREV_NORM);
112
prev->setPixmapDown(SIGNAL(event_WA_SKIN_CBUTTONS_PREV_PRES()),
113
_WA_SKIN_CBUTTONS_PREV_PRES);
114
connect(prev,SIGNAL(pressed()),this,SIGNAL(playPrevEvent()));
116
play->setPixmapUp(SIGNAL(event_WA_SKIN_CBUTTONS_PLAY_NORM()),
117
_WA_SKIN_CBUTTONS_PLAY_NORM);
118
play->setPixmapDown(SIGNAL(event_WA_SKIN_CBUTTONS_PLAY_PRES()),
119
_WA_SKIN_CBUTTONS_PLAY_PRES);
120
connect(play,SIGNAL(pressed()),this,SIGNAL(playCurrentEvent()));
125
pause->setPixmapUp(SIGNAL(event_WA_SKIN_CBUTTONS_PAUSE_NORM()),
126
_WA_SKIN_CBUTTONS_PAUSE_NORM);
127
pause->setPixmapDown(SIGNAL(event_WA_SKIN_CBUTTONS_PAUSE_PRES()),
128
_WA_SKIN_CBUTTONS_PAUSE_PRES);
129
connect(pause,SIGNAL(pressed()),this,SIGNAL(playPauseEvent()));
133
stop->setPixmapUp(SIGNAL(event_WA_SKIN_CBUTTONS_STOP_NORM()),
134
_WA_SKIN_CBUTTONS_STOP_NORM);
135
stop->setPixmapDown(SIGNAL(event_WA_SKIN_CBUTTONS_STOP_PRES()),
136
_WA_SKIN_CBUTTONS_STOP_PRES);
137
connect(stop,SIGNAL(pressed()),this,SIGNAL(playStopEvent()));
141
next->setPixmapUp(SIGNAL(event_WA_SKIN_CBUTTONS_NEXT_NORM()),
142
_WA_SKIN_CBUTTONS_NEXT_NORM);
143
next->setPixmapDown(SIGNAL(event_WA_SKIN_CBUTTONS_NEXT_PRES()),
144
_WA_SKIN_CBUTTONS_NEXT_PRES);
145
connect(next,SIGNAL(pressed()),this,SIGNAL(playNextEvent()));
148
eject->setPixmapUp(SIGNAL(event_WA_SKIN_CBUTTONS_EJECT_NORM()),
149
_WA_SKIN_CBUTTONS_EJECT_NORM);
150
eject->setPixmapDown(SIGNAL(event_WA_SKIN_CBUTTONS_EJECT_PRESS()),
151
_WA_SKIN_CBUTTONS_EJECT_PRESS);
152
connect(eject,SIGNAL(pressed()),this,SIGNAL(ejectEvent()));
156
shuffle->setPixmapUp(SIGNAL(event_WA_SKIN_SHUFREP_SHUFFLE_NOT_SET_NORM()),
157
_WA_SKIN_SHUFREP_SHUFFLE_NOT_SET_NORM);
158
shuffle->setPixmapDown(SIGNAL(event_WA_SKIN_SHUFREP_SHUFFLE_NOT_SET_PRES()),
159
_WA_SKIN_SHUFREP_SHUFFLE_NOT_SET_PRES);
160
shuffle->setPixmapUpSelected(
161
SIGNAL(event_WA_SKIN_SHUFREP_SHUFFLE_SET_NORM()),
162
_WA_SKIN_SHUFREP_SHUFFLE_SET_NORM);
163
shuffle->setPixmapDownSelected(
164
SIGNAL(event_WA_SKIN_SHUFREP_SHUFFLE_SET_PRES()),
165
_WA_SKIN_SHUFREP_SHUFFLE_SET_PRES);
166
shuffle->setSelected(true);
168
repeat->setPixmapUp(SIGNAL(event_WA_SKIN_SHUFREP_REPEAT_NOT_SET_NORM()),
169
_WA_SKIN_SHUFREP_REPEAT_NOT_SET_NORM);
170
repeat->setPixmapDown(SIGNAL(event_WA_SKIN_SHUFREP_REPEAT_NOT_SET_PRES()),
171
_WA_SKIN_SHUFREP_REPEAT_NOT_SET_PRES );
172
repeat->setPixmapUpSelected(
173
SIGNAL(event_WA_SKIN_SHUFREP_REPEAT_SET_NORM()),
174
_WA_SKIN_SHUFREP_REPEAT_SET_NORM);
175
repeat->setPixmapDownSelected(
176
SIGNAL(event_WA_SKIN_SHUFREP_REPEAT_SET_PRES()),
177
_WA_SKIN_SHUFREP_REPEAT_SET_PRES );
180
eq->setPixmapUp(SIGNAL(event_WA_SKIN_SHUFREP_EQ_NOT_SET_NORM()),
181
_WA_SKIN_SHUFREP_EQ_NOT_SET_NORM);
182
eq->setPixmapDown(SIGNAL(event_WA_SKIN_SHUFREP_EQ_NOT_SET_PRES()),
183
_WA_SKIN_SHUFREP_EQ_NOT_SET_PRES );
187
playlist->setPixmapUp(SIGNAL(event_WA_SKIN_SHUFREP_PLAYLIST_NOT_SET_NORM()),
188
_WA_SKIN_SHUFREP_PLAYLIST_NOT_SET_NORM);
189
playlist->setPixmapDown(SIGNAL(event_WA_SKIN_SHUFREP_PLAYLIST_NOT_SET_PRES())
190
,_WA_SKIN_SHUFREP_PLAYLIST_NOT_SET_PRES);
192
playlist->setPixmapUpSelected(
193
SIGNAL(event_WA_SKIN_SHUFREP_PLAYLIST_SET_NORM()),
194
_WA_SKIN_SHUFREP_PLAYLIST_SET_NORM);
195
playlist->setPixmapDownSelected(
196
SIGNAL(event_WA_SKIN_SHUFREP_PLAYLIST_SET_PRES())
197
,_WA_SKIN_SHUFREP_PLAYLIST_SET_PRES);
203
void WaSkin::sizeButtons() {
204
prev->setFixedSize(prev->sizeHint());
205
play->setFixedSize(play->sizeHint());
206
pause->setFixedSize(pause->sizeHint());
207
stop->setFixedSize(stop->sizeHint());
208
next->setFixedSize(next->sizeHint());
209
eject->setFixedSize(eject->sizeHint());
210
shuffle->setFixedSize(shuffle->sizeHint());
211
repeat->setFixedSize(repeat->sizeHint());
212
playlist->setFixedSize(playlist->sizeHint());
213
eq->setFixedSize(eq->sizeHint());
214
titleshade->setFixedSize(titleshade->sizeHint());
221
void WaSkin::createHighLevelElements() {
222
KConfig *config = KGlobal::config();
223
config->setGroup("Winskin");
224
int refreshRate = config->readNumEntry("ScopeFPS", 2);
225
WaSkinDesc* waSkinDesc;
226
if (refreshRate == 0)
229
guiSpectrumAnalyser = new GuiSpectrumAnalyser(this, "WinSkin", 100);
231
if (refreshRate == 1)
234
guiSpectrumAnalyser = new GuiSpectrumAnalyser(this, "WinSkin", 40);
236
if (refreshRate == 2)
239
guiSpectrumAnalyser = new GuiSpectrumAnalyser(this,"WinSkin" ,25);
241
if (refreshRate == 3)
244
guiSpectrumAnalyser = new GuiSpectrumAnalyser(this, "WinSkin", 18);
246
if (refreshRate == 4)
249
guiSpectrumAnalyser = new GuiSpectrumAnalyser(this, "WinSkin", 14);
252
waSkinDesc=waSkinModell->getWaSkinMapDesc(_WA_MAPPING_ANALYSER);
253
guiSpectrumAnalyser->setGeometry((*waSkinDesc->getGeometry()));
255
waJumpSlider= new WaJumpSlider(waSkinModell,this);
256
waJumpSlider->buildGui();
257
waJumpSlider->setFixedSize(waJumpSlider->sizeHint());
260
waVolumeSlider= new WaVolumeSlider(waSkinModell,this);
261
waVolumeSlider->buildGui();
262
waVolumeSlider->setFixedSize(waVolumeSlider->sizeHint());
263
connect(waVolumeSlider,SIGNAL(volumeSetValue(int)),
264
this,SIGNAL(volumeSetValue(int)));
266
waBalanceSlider= new WaBalanceSlider(waSkinModell,this);
267
waBalanceSlider->buildGui();
268
waBalanceSlider->setFixedSize(waBalanceSlider->sizeHint());
269
connect(waBalanceSlider,SIGNAL(balanceSetValue(int)),
270
this,SIGNAL(balanceSetValue(int)));
273
waDigit= new WaDigit(waSkinModell,this);
274
waDigit->setFixedSize(waDigit->sizeHint());
277
waBPS= new WaBPS(waSkinModell,this);
278
waBPS->setFixedSize(waBPS->sizeHint());
280
waFreq= new WaFreq(waSkinModell,this);
281
waFreq->setFixedSize(waFreq->sizeHint());
283
waInfo= new WaInfo(waSkinModell,this);
284
waInfo->setFixedSize(waInfo->sizeHint());
286
waStatus= new WaStatus(waSkinModell,this);
287
waStatus->setFixedSize(waStatus->sizeHint());
289
waStereo= new WaStereo(waSkinModell,this);
290
waStereo->setFixedSize(waStereo->sizeHint());
292
waMono= new WaMono(waSkinModell,this);
293
waMono->setFixedSize(waMono->sizeHint());
295
waTitleBar = new WaTitleBar(waSkinModell, this);
296
waTitleBar->setFixedSize(waTitleBar->sizeHint());
298
connect(waJumpSlider,SIGNAL(jump(int)),this,SIGNAL(jump(int)));
299
connect(waJumpSlider,SIGNAL(jumpSliderPressed()),
300
this,SIGNAL(jumpSliderPressed()));
301
connect(waJumpSlider,SIGNAL(jumpSliderReleased()),
302
this,SIGNAL(jumpSliderReleased()));
304
// now a few connections to the modell
305
connect(waSkinModell,SIGNAL(event_WA_SKIN_MAIN()),
306
this,SLOT(pixmapChange()));
313
void WaSkin::pixmapChange() {
320
void WaSkin::setRepeat(int val) {
321
repeat->setSelected(val);
325
void WaSkin::setShuffle(int val) {
326
shuffle->setSelected(val);
330
void WaSkin::setPlaylist(int val) {
331
playlist->setSelected(val);
335
void WaSkin::setBPS(int val) {
340
void WaSkin::setFreq(int val) {
341
waFreq->setFreq(val);
344
void WaSkin::setJumpValue(int val) {
345
waJumpSlider->setJumpValue(val);
348
void WaSkin::setJumpRange(int val) {
349
waJumpSlider->setJumpRange(val);
352
void WaSkin::setVolumeValue(int val) {
353
waVolumeSlider->setVolumeValue(val);
357
void WaSkin::setBalanceValue(int val) {
358
waBalanceSlider->setBalanceValue(val);
362
void WaSkin::setStatus(int val) {
363
waStatus->setStatus(val);
366
void WaSkin::setStereo(int val) {
368
waStereo->setStereo(true);
369
waMono->setMono(false);
371
waStereo->setStereo(false);
372
waMono->setMono(true);
377
void WaSkin::setTime(QString timeString) {
378
waDigit->setTime(timeString);
382
void WaSkin::setSpectrum(float floatArray[75]) {
383
// What is this thing? - (Name redacted due to shame)
384
// guiSpectrumAnalyser->setValues(floatArray);
386
#include "waSkin.moc"