summaryrefslogtreecommitdiff
path: root/core/applets/volumeapplet/volume.cpp
Unidiff
Diffstat (limited to 'core/applets/volumeapplet/volume.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--core/applets/volumeapplet/volume.cpp234
1 files changed, 191 insertions, 43 deletions
diff --git a/core/applets/volumeapplet/volume.cpp b/core/applets/volumeapplet/volume.cpp
index 06eec58..e066a83 100644
--- a/core/applets/volumeapplet/volume.cpp
+++ b/core/applets/volumeapplet/volume.cpp
@@ -37,2 +37,3 @@
37#include <qpixmap.h> 37#include <qpixmap.h>
38#include <qvbox.h>
38#include <qlabel.h> 39#include <qlabel.h>
@@ -49,3 +50,3 @@ using namespace Opie;
49 50
50#define RATE_TIMER_INTERVAL 100 51#define RATE_TIMER_INTERVAL 100
51// Ten times per second is fine (RATE_TIMER_INTERVAL 100). A shorter time 52// Ten times per second is fine (RATE_TIMER_INTERVAL 100). A shorter time
@@ -125,2 +126,59 @@ static const char * mic_xpm[] = {
125 126
127
128static const char * bass_xpm[] = {
129"20 20 3 1",
130" c None",
131". c #000000",
132"+ c #0000FF",
133" ",
134" ",
135" ",
136"..... +++ ......",
137" +++++++ ",
138" ++ ++ ",
139"... ++ ... ++ ++ .",
140" +++ ++ ++ ",
141" ++++ ++ ",
142"... ++++ .. ++ .....",
143" ++ ++ ",
144" ++ ++ ",
145"..........++ ++ .",
146" ++ ",
147" ++ ",
148"...... ++ .........",
149" + ",
150" ",
151" ",
152" "};
153
154
155static const char * treble_xpm[] = {
156"20 20 3 1",
157" c None",
158". c #0000FF",
159"+ c #000000",
160" .. ",
161" . .. ",
162" . .. ",
163"++++++++ . .. ++++++",
164" . . ",
165" ... ",
166"++++++++ . +++++++",
167" .. ",
168" .. . ",
169"+++ .. ... +++++++",
170" .. .. .. ",
171" .. . . .. ",
172"+++ .. . . + . +++++",
173" .. . .. ",
174" .. . .. ",
175"++++ ...... +++++++",
176" . ",
177" .. . ",
178" .. . ",
179" .. "};
180
181
182
183
126/* XPM */ 184/* XPM */
@@ -186,5 +244,7 @@ VolumeControl::VolumeControl ( VolumeApplet *icon, bool /*showMic*/, QWidget *pa
186 m_icon = icon; 244 m_icon = icon;
187 245
188 bool has_wav_alarm = true; 246 bool has_wav_alarm = true;
189 247 bool has_bass = true;
248 bool has_treble = true;
249
190 switch ( ODevice::inst ( )-> model ( )) { // we need to add other devices eventually 250 switch ( ODevice::inst ( )-> model ( )) { // we need to add other devices eventually
@@ -196,3 +256,8 @@ VolumeControl::VolumeControl ( VolumeApplet *icon, bool /*showMic*/, QWidget *pa
196 } 256 }
197 257
258 if ( !ODevice::series == Model_iPAQ ) {
259 has_bass = false;
260 has_treble = false;
261 }
262
198 263
@@ -203,6 +268,6 @@ VolumeControl::VolumeControl ( VolumeApplet *icon, bool /*showMic*/, QWidget *pa
203 grid-> setMargin ( 6 ); 268 grid-> setMargin ( 6 );
204 269
205 QVBoxLayout *vbox; 270 QVBoxLayout *vbox;
206 QLabel *l; 271 QLabel *l;
207 272
208 vbox = new QVBoxLayout ( ); 273 vbox = new QVBoxLayout ( );
@@ -210,3 +275,3 @@ VolumeControl::VolumeControl ( VolumeApplet *icon, bool /*showMic*/, QWidget *pa
210 grid-> addLayout ( vbox, 1, 0 ); 275 grid-> addLayout ( vbox, 1, 0 );
211 276
212 upButton = new QPushButton ( this ); 277 upButton = new QPushButton ( this );
@@ -217,3 +282,3 @@ VolumeControl::VolumeControl ( VolumeApplet *icon, bool /*showMic*/, QWidget *pa
217 vbox-> addWidget ( upButton ); 282 vbox-> addWidget ( upButton );
218 283
219 downButton = new QPushButton ( this ); 284 downButton = new QPushButton ( this );
@@ -230,6 +295,6 @@ VolumeControl::VolumeControl ( VolumeApplet *icon, bool /*showMic*/, QWidget *pa
230 volSlider-> setFocusPolicy ( QWidget::NoFocus ); 295 volSlider-> setFocusPolicy ( QWidget::NoFocus );
231 296
232 l = new QLabel ( this ); 297 l = new QLabel ( this );
233 l-> setPixmap ( QPixmap ( vol_xpm )); 298 l-> setPixmap ( QPixmap ( vol_xpm ));
234 299
235 grid-> addWidget ( l, 0, 1, AlignCenter ); 300 grid-> addWidget ( l, 0, 1, AlignCenter );
@@ -239,6 +304,42 @@ VolumeControl::VolumeControl ( VolumeApplet *icon, bool /*showMic*/, QWidget *pa
239 volLed-> setFocusPolicy ( QWidget::NoFocus ); 304 volLed-> setFocusPolicy ( QWidget::NoFocus );
240 volLed-> setFixedSize ( 16, 16 ); 305 volLed-> setFixedSize ( 16, 16 );
241 306
242 grid-> addWidget ( volLed, 2, 1, AlignCenter ); 307 grid-> addWidget ( volLed, 2, 1, AlignCenter );
243 308
309 QVBox *basstrebleBox = new QVBox( this );
310
311 trebleSlider = new QSlider ( basstrebleBox );
312 trebleSlider-> setRange ( 0, 100 );
313 trebleSlider-> setTickmarks ( QSlider::Both );
314 trebleSlider-> setTickInterval ( 20 );
315 trebleSlider->setMaximumHeight( 40 );
316 trebleSlider-> setFocusPolicy ( QWidget::NoFocus );
317
318 bassSlider = new QSlider ( basstrebleBox );
319 bassSlider-> setRange ( 0, 100 );
320 bassSlider-> setTickmarks ( QSlider::Both );
321 bassSlider-> setTickInterval ( 20 );
322 bassSlider->setMaximumHeight( 40 );
323 bassSlider-> setFocusPolicy ( QWidget::NoFocus );
324
325 QLabel *bassLabel = new QLabel ( this );
326 bassLabel-> setPixmap ( QPixmap ( bass_xpm ));
327
328 QLabel *trebleLabel = new QLabel( this );
329 trebleLabel->setPixmap( QPixmap ( treble_xpm ) );
330
331 grid->addWidget( trebleLabel, 0, 4, AlignCenter );
332 grid->addWidget( basstrebleBox, 1, 4, AlignCenter );
333 grid-> addWidget ( bassLabel, 2, 4, AlignCenter );
334
335 if ( !has_bass ) {
336 bassSlider->hide();
337 bassLabel->hide();
338 }
339
340 if ( !has_treble ) {
341 trebleSlider->hide();
342 trebleLabel->hide();
343 }
344
244 micSlider = new QSlider ( this ); 345 micSlider = new QSlider ( this );
@@ -248,6 +349,6 @@ VolumeControl::VolumeControl ( VolumeApplet *icon, bool /*showMic*/, QWidget *pa
248 micSlider-> setFocusPolicy ( QWidget::NoFocus ); 349 micSlider-> setFocusPolicy ( QWidget::NoFocus );
249 350
250 l = new QLabel ( this ); 351 l = new QLabel ( this );
251 l-> setPixmap ( QPixmap ( mic_xpm )); 352 l-> setPixmap ( QPixmap ( mic_xpm ));
252 353
253 grid-> addWidget ( l, 0, 2, AlignCenter ); 354 grid-> addWidget ( l, 0, 2, AlignCenter );
@@ -258,3 +359,3 @@ VolumeControl::VolumeControl ( VolumeApplet *icon, bool /*showMic*/, QWidget *pa
258 micLed-> setFixedSize ( 16, 16 ); 359 micLed-> setFixedSize ( 16, 16 );
259 360
260 grid-> addWidget ( micLed, 2, 2, AlignCenter ); 361 grid-> addWidget ( micLed, 2, 2, AlignCenter );
@@ -269,3 +370,3 @@ VolumeControl::VolumeControl ( VolumeApplet *icon, bool /*showMic*/, QWidget *pa
269 alarmLabel-> setPixmap ( QPixmap ( alarm_xpm )); 370 alarmLabel-> setPixmap ( QPixmap ( alarm_xpm ));
270 371
271 grid-> addWidget ( alarmLabel, 0, 3, AlignCenter ); 372 grid-> addWidget ( alarmLabel, 0, 3, AlignCenter );
@@ -276,3 +377,3 @@ VolumeControl::VolumeControl ( VolumeApplet *icon, bool /*showMic*/, QWidget *pa
276 alarmLed-> setFixedSize ( 16, 16 ); 377 alarmLed-> setFixedSize ( 16, 16 );
277 378
278 grid-> addWidget ( alarmLed, 2, 3, AlignCenter ); 379 grid-> addWidget ( alarmLed, 2, 3, AlignCenter );
@@ -284,4 +385,4 @@ VolumeControl::VolumeControl ( VolumeApplet *icon, bool /*showMic*/, QWidget *pa
284 } 385 }
285 386
286 grid-> addWidget ( new QLabel ( tr( "Enable Sounds for:" ), this ), 0, 4, AlignVCenter | AlignLeft ); 387 grid-> addWidget ( new QLabel ( tr( "Enable Sounds for:" ), this ), 0, 6, AlignVCenter | AlignLeft );
287 388
@@ -289,7 +390,7 @@ VolumeControl::VolumeControl ( VolumeApplet *icon, bool /*showMic*/, QWidget *pa
289 vbox-> setSpacing ( 4 ); 390 vbox-> setSpacing ( 4 );
290 grid-> addMultiCellLayout ( vbox, 1, 2, 4, 4 ); 391 grid-> addMultiCellLayout ( vbox, 1, 2, 6, 6 );
291 392
292 tapBox = new QCheckBox ( tr( "Screen Taps" ), this ); 393 tapBox = new QCheckBox ( tr( "Screen Taps" ), this );
293 tapBox-> setFocusPolicy ( QWidget::NoFocus ); 394 tapBox-> setFocusPolicy ( QWidget::NoFocus );
294 395
295 vbox-> addWidget ( tapBox, AlignVCenter | AlignLeft ); 396 vbox-> addWidget ( tapBox, AlignVCenter | AlignLeft );
@@ -298,3 +399,3 @@ VolumeControl::VolumeControl ( VolumeApplet *icon, bool /*showMic*/, QWidget *pa
298 keyBox-> setFocusPolicy ( QWidget::NoFocus ); 399 keyBox-> setFocusPolicy ( QWidget::NoFocus );
299 400
300 vbox-> addWidget ( keyBox, AlignVCenter | AlignLeft ); 401 vbox-> addWidget ( keyBox, AlignVCenter | AlignLeft );
@@ -303,3 +404,3 @@ VolumeControl::VolumeControl ( VolumeApplet *icon, bool /*showMic*/, QWidget *pa
303 alarmBox-> setFocusPolicy ( QWidget::NoFocus ); 404 alarmBox-> setFocusPolicy ( QWidget::NoFocus );
304 405
305 vbox-> addWidget ( alarmBox, AlignVCenter | AlignLeft ); 406 vbox-> addWidget ( alarmBox, AlignVCenter | AlignLeft );
@@ -317,3 +418,3 @@ VolumeControl::VolumeControl ( VolumeApplet *icon, bool /*showMic*/, QWidget *pa
317 connect ( rateTimer, SIGNAL( timeout ( )), this, SLOT( rateTimerDone ( ))); 418 connect ( rateTimer, SIGNAL( timeout ( )), this, SLOT( rateTimerDone ( )));
318 419
319 connect ( upButton, SIGNAL( pressed ( )), this, SLOT( buttonChanged ( ))); 420 connect ( upButton, SIGNAL( pressed ( )), this, SLOT( buttonChanged ( )));
@@ -326,3 +427,6 @@ VolumeControl::VolumeControl ( VolumeApplet *icon, bool /*showMic*/, QWidget *pa
326 connect ( alarmSlider, SIGNAL( valueChanged ( int )), this, SLOT( alarmMoved( int ))); 427 connect ( alarmSlider, SIGNAL( valueChanged ( int )), this, SLOT( alarmMoved( int )));
327 428 connect ( bassSlider, SIGNAL( valueChanged ( int )), this, SLOT( bassMoved( int )));
429 connect ( trebleSlider, SIGNAL( valueChanged ( int )), this, SLOT( trebleMoved( int )));
430
431
328 connect ( volLed, SIGNAL( toggled ( bool )), this, SLOT( volMuteToggled ( bool ))); 432 connect ( volLed, SIGNAL( toggled ( bool )), this, SLOT( volMuteToggled ( bool )));
@@ -338,6 +442,8 @@ VolumeControl::VolumeControl ( VolumeApplet *icon, bool /*showMic*/, QWidget *pa
338 readConfig ( true ); 442 readConfig ( true );
339 443
340 // initialize the config file, in case some entries are missing 444 // initialize the config file, in case some entries are missing
341 445
342 writeConfigEntry ( "VolumePercent", m_vol_percent, UPD_None ); 446 writeConfigEntry ( "VolumePercent", m_vol_percent, UPD_None );
447 writeConfigEntry ( "BassPercent", m_vol_percent, UPD_None );
448 writeConfigEntry ( "TreblePercent", m_vol_percent, UPD_None );
343 writeConfigEntry ( "Mute", m_vol_muted, UPD_None ); 449 writeConfigEntry ( "Mute", m_vol_muted, UPD_None );
@@ -347,3 +453,3 @@ VolumeControl::VolumeControl ( VolumeApplet *icon, bool /*showMic*/, QWidget *pa
347 writeConfigEntry ( "AlarmSound", m_snd_alarm, UPD_Vol ); 453 writeConfigEntry ( "AlarmSound", m_snd_alarm, UPD_Vol );
348 454
349 writeConfigEntry ( "Mic", m_mic_percent, UPD_None ); 455 writeConfigEntry ( "Mic", m_mic_percent, UPD_None );
@@ -405,9 +511,9 @@ void VolumeControl::show ( bool /*showMic*/ )
405 QPoint curPos = m_icon-> mapToGlobal ( QPoint ( 0, 0 )); 511 QPoint curPos = m_icon-> mapToGlobal ( QPoint ( 0, 0 ));
406 512
407 int w = sizeHint ( ). width ( ); 513 int w = sizeHint ( ). width ( );
408 int x = curPos.x ( ) - ( w / 2 ); 514 int x = curPos.x ( ) - ( w / 2 );
409 515
410 if (( x + w ) > QPEApplication::desktop ( )-> width ( )) 516 if (( x + w ) > QPEApplication::desktop ( )-> width ( ))
411 x = QPEApplication::desktop ( )-> width ( ) - w; 517 x = QPEApplication::desktop ( )-> width ( ) - w;
412 518
413 move ( x, curPos. y ( ) - sizeHint ( ). height ( )); 519 move ( x, curPos. y ( ) - sizeHint ( ). height ( ));
@@ -424,2 +530,4 @@ void VolumeControl::readConfig ( bool force )
424 int old_mp = m_mic_percent; 530 int old_mp = m_mic_percent;
531 int old_bass = m_bass_percent;
532 int old_treble = m_treble_percent;
425 bool old_vm = m_vol_muted; 533 bool old_vm = m_vol_muted;
@@ -433,2 +541,4 @@ void VolumeControl::readConfig ( bool force )
433 m_mic_percent = cfg. readNumEntry ( "Mic", 50 ); 541 m_mic_percent = cfg. readNumEntry ( "Mic", 50 );
542 m_bass_percent = cfg. readNumEntry ( "BassPercent", 50 );
543 m_treble_percent = cfg. readNumEntry ( "TreblePercent", 50 );
434 m_vol_muted = cfg. readBoolEntry ( "Mute", 0 ); 544 m_vol_muted = cfg. readBoolEntry ( "Mute", 0 );
@@ -440,3 +550,3 @@ void VolumeControl::readConfig ( bool force )
440 550
441 if ( force || ( m_vol_percent != old_vp )) 551 if ( force || ( m_vol_percent != old_vp ))
442 volSlider-> setValue ( 100 - m_vol_percent ); 552 volSlider-> setValue ( 100 - m_vol_percent );
@@ -444,5 +554,10 @@ void VolumeControl::readConfig ( bool force )
444 micSlider-> setValue ( 100 - m_mic_percent ); 554 micSlider-> setValue ( 100 - m_mic_percent );
445 if ( force || ( m_alarm_percent != old_ap )) 555 if ( force || ( m_alarm_percent != old_ap ))
446 alarmSlider-> setValue ( 100 - m_alarm_percent ); 556 alarmSlider-> setValue ( 100 - m_alarm_percent );
447 557 if ( force || ( m_bass_percent != old_bass ))
558 bassSlider-> setValue ( 100 - m_bass_percent );
559 if ( force || ( m_treble_percent != old_treble ))
560 trebleSlider-> setValue ( 100 - m_treble_percent );
561
562
448 if ( force || ( m_vol_muted != old_vm )) 563 if ( force || ( m_vol_muted != old_vm ))
@@ -453,3 +568,3 @@ void VolumeControl::readConfig ( bool force )
453 alarmLed-> setOn ( m_snd_alarm ); 568 alarmLed-> setOn ( m_snd_alarm );
454 569
455 if ( force || ( m_snd_key != old_sk )) 570 if ( force || ( m_snd_key != old_sk ))
@@ -459,3 +574,3 @@ void VolumeControl::readConfig ( bool force )
459 if ( force || ( m_snd_alarm != old_sa )) 574 if ( force || ( m_snd_alarm != old_sa ))
460 alarmBox-> setChecked ( m_snd_alarm ); 575 alarmBox-> setChecked ( m_snd_alarm );
461} 576}
@@ -505,5 +620,5 @@ void VolumeControl::volMuteToggled ( bool b )
505 m_vol_muted = !b; 620 m_vol_muted = !b;
506 621
507 m_icon-> redraw ( true ); 622 m_icon-> redraw ( true );
508 623
509 writeConfigEntry ( "Mute", m_vol_muted, UPD_Vol ); 624 writeConfigEntry ( "Mute", m_vol_muted, UPD_Vol );
@@ -513,3 +628,3 @@ void VolumeControl::micMuteToggled ( bool b )
513{ 628{
514 m_mic_muted = !b; 629 m_mic_muted = !b;
515 writeConfigEntry ( "MicMute", m_mic_muted, UPD_Mic ); 630 writeConfigEntry ( "MicMute", m_mic_muted, UPD_Mic );
@@ -526,3 +641,3 @@ void VolumeControl::volMoved ( int percent )
526 m_icon-> redraw ( false ); 641 m_icon-> redraw ( false );
527 642
528 writeConfigEntry ( "VolumePercent", m_vol_percent, UPD_Vol ); 643 writeConfigEntry ( "VolumePercent", m_vol_percent, UPD_Vol );
@@ -551,2 +666,26 @@ void VolumeControl::alarmMoved ( int percent )
551 666
667void VolumeControl::bassMoved ( int percent )
668{
669 m_bass_percent = 100 - percent;
670
671 // clamp bass percent to be between 0 and 100
672 m_bass_percent = ( m_bass_percent < 0 ) ? 0 : (( m_bass_percent > 100 ) ? 100 : m_bass_percent );
673
674 writeConfigEntry ( "BassPercent", m_bass_percent, UPD_Bass );
675}
676
677
678
679void VolumeControl::trebleMoved ( int percent )
680{
681 m_treble_percent = 100 - percent;
682
683 // clamp treble percent to be between 0 and 100
684 m_treble_percent = ( m_treble_percent < 0 ) ? 0 : (( m_treble_percent > 100 ) ? 100 : m_treble_percent );
685
686 writeConfigEntry ( "TreblePercent", m_treble_percent, UPD_Treble );
687}
688
689
690
552void VolumeControl::writeConfigEntry ( const char *entry, int val, eUpdate upd ) 691void VolumeControl::writeConfigEntry ( const char *entry, int val, eUpdate upd )
@@ -557,3 +696,3 @@ void VolumeControl::writeConfigEntry ( const char *entry, int val, eUpdate upd )
557// cfg. write ( ); 696// cfg. write ( );
558 697
559#if ( defined Q_WS_QWS || defined(_WS_QWS_) ) && !defined(QT_NO_COP) 698#if ( defined Q_WS_QWS || defined(_WS_QWS_) ) && !defined(QT_NO_COP)
@@ -568,3 +707,12 @@ void VolumeControl::writeConfigEntry ( const char *entry, int val, eUpdate upd )
568 } 707 }
569 case UPD_None: 708 case UPD_Bass: {
709 QCopEnvelope ( "QPE/System", "bassChange(bool)" ) << true;
710 break;
711 }
712 case UPD_Treble: {
713 QCopEnvelope ( "QPE/System", "trebleChange(bool)" ) << true;
714 break;
715 }
716
717 case UPD_None:
570 break; 718 break;