summaryrefslogtreecommitdiff
authorharlekin <harlekin>2002-12-13 19:37:59 (UTC)
committer harlekin <harlekin>2002-12-13 19:37:59 (UTC)
commite348262d418e3a133d13d039ed23da4625726f9d (patch) (unidiff)
tree36cdf26700d424b06b6c37b86e5f1e07bc233b88
parent11ccc2e5341677cd54037a1f9cfb04831feed0f9 (diff)
downloadopie-e348262d418e3a133d13d039ed23da4625726f9d.zip
opie-e348262d418e3a133d13d039ed23da4625726f9d.tar.gz
opie-e348262d418e3a133d13d039ed23da4625726f9d.tar.bz2
added Bass and Treble handling - next stop should be odevice
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--library/qpeapplication.cpp155
1 files changed, 108 insertions, 47 deletions
diff --git a/library/qpeapplication.cpp b/library/qpeapplication.cpp
index c41dd06..852671a 100644
--- a/library/qpeapplication.cpp
+++ b/library/qpeapplication.cpp
@@ -95,7 +95,7 @@ public:
95 QPEApplicationData() : presstimer( 0 ), presswidget( 0 ), kbgrabber( 0 ), 95 QPEApplicationData() : presstimer( 0 ), presswidget( 0 ), kbgrabber( 0 ),
96 rightpressed( FALSE ), kbregrab( FALSE ), notbusysent( FALSE ), preloaded( FALSE ), 96 rightpressed( FALSE ), kbregrab( FALSE ), notbusysent( FALSE ), preloaded( FALSE ),
97 forceshow( FALSE ), nomaximize( FALSE ), keep_running( TRUE ), qpe_main_widget( 0 ) 97 forceshow( FALSE ), nomaximize( FALSE ), keep_running( TRUE ), qpe_main_widget( 0 )
98 98
99 { 99 {
100 qcopq.setAutoDelete( TRUE ); 100 qcopq.setAutoDelete( TRUE );
101 } 101 }
@@ -127,7 +127,7 @@ public:
127 }; 127 };
128 QWidget* qpe_main_widget; 128 QWidget* qpe_main_widget;
129 QList<QCopRec> qcopq; 129 QList<QCopRec> qcopq;
130 130
131 void enqueueQCop( const QCString &ch, const QCString &msg, 131 void enqueueQCop( const QCString &ch, const QCString &msg,
132 const QByteArray &data ) 132 const QByteArray &data )
133 { 133 {
@@ -178,7 +178,7 @@ public:
178 return TRUE; 178 return TRUE;
179 } 179 }
180 } 180 }
181 */ 181 */
182 return FALSE; 182 return FALSE;
183 } 183 }
184 184
@@ -330,24 +330,66 @@ static void setMic( int t = 0, int percent = -1 )
330} 330}
331 331
332 332
333static void setBass( int t = 0, int percent = -1 )
334{
335 switch ( t ) {
336 case 0: {
337 Config cfg( "qpe" );
338 cfg.setGroup( "Volume" );
339 if ( percent < 0 )
340 percent = cfg.readNumEntry( "BassPercent", 50 );
341
342 int fd = 0;
343 int bass = percent;
344 if ( ( fd = open( "/dev/mixer", O_RDWR ) ) >= 0 ) {
345 ioctl( fd, MIXER_WRITE( SOUND_MIXER_BASS ), &bass );
346 ::close( fd );
347 }
348 }
349 break;
350 }
351}
352
353
354static void setTreble( int t = 0, int percent = -1 )
355{
356 switch ( t ) {
357 case 0: {
358 Config cfg( "qpe" );
359 cfg.setGroup( "Volume" );
360 if ( percent < 0 )
361 percent = cfg.readNumEntry( "TreblePercent", 50 );
362
363 int fd = 0;
364 int treble = percent;
365 if ( ( fd = open( "/dev/mixer", O_RDWR ) ) >= 0 ) {
366 ioctl( fd, MIXER_WRITE( SOUND_MIXER_TREBLE ), &treble );
367 ::close( fd );
368 }
369 }
370 break;
371 }
372}
373
374
333/*! 375/*!
334 \class QPEApplication qpeapplication.h 376 \class QPEApplication qpeapplication.h
335 \brief The QPEApplication class implements various system services 377 \brief The QPEApplication class implements various system services
336 that are available to all Qtopia applications. 378 that are available to all Qtopia applications.
337 379
338 Simply by using QPEApplication instead of QApplication, a standard Qt 380 Simply by using QPEApplication instead of QApplication, a standard Qt
339 application becomes a Qtopia application. It automatically follows 381 application becomes a Qtopia application. It automatically follows
340 style changes, quits and raises, and in the 382 style changes, quits and raises, and in the
341 case of \link docwidget.html document-oriented\endlink applications, 383 case of \link docwidget.html document-oriented\endlink applications,
342 changes the currently displayed document in response to the environment. 384 changes the currently displayed document in response to the environment.
343 385
344 To create a \link docwidget.html document-oriented\endlink 386 To create a \link docwidget.html document-oriented\endlink
345 application use showMainDocumentWidget(); to create a 387 application use showMainDocumentWidget(); to create a
346 non-document-oriented application use showMainWidget(). The 388 non-document-oriented application use showMainWidget(). The
347 keepRunning() function indicates whether the application will 389 keepRunning() function indicates whether the application will
348 continue running after it's processed the last \link qcop.html 390 continue running after it's processed the last \link qcop.html
349 QCop\endlink message. This can be changed using setKeepRunning(). 391 QCop\endlink message. This can be changed using setKeepRunning().
350 392
351 A variety of signals are emitted when certain events occur, for 393 A variety of signals are emitted when certain events occur, for
352 example, timeChanged(), clockChanged(), weekChanged(), 394 example, timeChanged(), clockChanged(), weekChanged(),
353 dateFormatChanged() and volumeChanged(). If the application receives 395 dateFormatChanged() and volumeChanged(). If the application receives
@@ -358,7 +400,7 @@ static void setMic( int t = 0, int percent = -1 )
358 signals, the application should save and reload any data 400 signals, the application should save and reload any data
359 files that are involved in synching. Most of these signals will initially 401 files that are involved in synching. Most of these signals will initially
360 be received and unfiltered through the appMessage() signal. 402 be received and unfiltered through the appMessage() signal.
361 403
362 This class also provides a set of useful static functions. The 404 This class also provides a set of useful static functions. The
363 qpeDir() and documentDir() functions return the respective paths. 405 qpeDir() and documentDir() functions return the respective paths.
364 The grabKeyboard() and ungrabKeyboard() functions are used to 406 The grabKeyboard() and ungrabKeyboard() functions are used to
@@ -367,13 +409,13 @@ static void setMic( int t = 0, int percent = -1 )
367 operation is set with setStylusOperation() and retrieved with 409 operation is set with setStylusOperation() and retrieved with
368 stylusOperation(). There are also setInputMethodHint() and 410 stylusOperation(). There are also setInputMethodHint() and
369 inputMethodHint() functions. 411 inputMethodHint() functions.
370 412
371 \ingroup qtopiaemb 413 \ingroup qtopiaemb
372*/ 414*/
373 415
374/*! 416/*!
375 \fn void QPEApplication::clientMoused() 417 \fn void QPEApplication::clientMoused()
376 418
377 \internal 419 \internal
378*/ 420*/
379 421
@@ -385,7 +427,7 @@ static void setMic( int t = 0, int percent = -1 )
385 427
386/*! 428/*!
387 \fn void QPEApplication::clockChanged( bool ampm ); 429 \fn void QPEApplication::clockChanged( bool ampm );
388 430
389 This signal is emitted when the user changes the clock's style. If 431 This signal is emitted when the user changes the clock's style. If
390 \a ampm is TRUE, the user wants a 12-hour AM/PM clock, otherwise, 432 \a ampm is TRUE, the user wants a 12-hour AM/PM clock, otherwise,
391 they want a 24-hour clock. 433 they want a 24-hour clock.
@@ -393,14 +435,14 @@ static void setMic( int t = 0, int percent = -1 )
393 435
394/*! 436/*!
395 \fn void QPEApplication::volumeChanged( bool muted ) 437 \fn void QPEApplication::volumeChanged( bool muted )
396 438
397 This signal is emitted whenever the mute state is changed. If \a 439 This signal is emitted whenever the mute state is changed. If \a
398 muted is TRUE, then sound output has been muted. 440 muted is TRUE, then sound output has been muted.
399*/ 441*/
400 442
401/*! 443/*!
402 \fn void QPEApplication::weekChanged( bool startOnMonday ) 444 \fn void QPEApplication::weekChanged( bool startOnMonday )
403 445
404 This signal is emitted if the week start day is changed. If \a 446 This signal is emitted if the week start day is changed. If \a
405 startOnMonday is TRUE then the first day of the week is Monday; if 447 startOnMonday is TRUE then the first day of the week is Monday; if
406 \a startOnMonday is FALSE then the first day of the week is 448 \a startOnMonday is FALSE then the first day of the week is
@@ -409,31 +451,31 @@ static void setMic( int t = 0, int percent = -1 )
409 451
410/*! 452/*!
411 \fn void QPEApplication::dateFormatChanged() 453 \fn void QPEApplication::dateFormatChanged()
412 454
413 This signal is emitted whenever the date format is changed. 455 This signal is emitted whenever the date format is changed.
414*/ 456*/
415 457
416/*! 458/*!
417 \fn void QPEApplication::flush() 459 \fn void QPEApplication::flush()
418 460
419 ### 461 ###
420*/ 462*/
421 463
422/*! 464/*!
423 \fn void QPEApplication::reload() 465 \fn void QPEApplication::reload()
424 466
425*/ 467*/
426 468
427/*! 469/*!
428 \fn void QPEApplication::appMessage( const QCString& msg, const QByteArray& data ) 470 \fn void QPEApplication::appMessage( const QCString& msg, const QByteArray& data )
429 471
430 This signal is emitted when a message is received on this 472 This signal is emitted when a message is received on this
431 application's QPE/Application/<i>appname</i> \link qcop.html 473 application's QPE/Application/<i>appname</i> \link qcop.html
432 QCop\endlink channel. 474 QCop\endlink channel.
433 475
434 The slot to which you connect this signal uses \a msg and \a data 476 The slot to which you connect this signal uses \a msg and \a data
435 in the following way: 477 in the following way:
436 478
437\code 479\code
438 void MyWidget::receive( const QCString& msg, const QByteArray& data ) 480 void MyWidget::receive( const QCString& msg, const QByteArray& data )
439 { 481 {
@@ -447,7 +489,7 @@ static void setMic( int t = 0, int percent = -1 )
447 } 489 }
448 } 490 }
449\endcode 491\endcode
450 492
451 \sa qcop.html 493 \sa qcop.html
452 Note that messages received here may be processed by qpe application 494 Note that messages received here may be processed by qpe application
453 and emitted as signals, such as flush() and reload(). 495 and emitted as signals, such as flush() and reload().
@@ -456,7 +498,7 @@ static void setMic( int t = 0, int percent = -1 )
456/*! 498/*!
457 Constructs a QPEApplication just as you would construct 499 Constructs a QPEApplication just as you would construct
458 a QApplication, passing \a argc, \a argv, and \a t. 500 a QApplication, passing \a argc, \a argv, and \a t.
459 501
460 For applications, \a t should be the default, GuiClient. Only 502 For applications, \a t should be the default, GuiClient. Only
461 the Qtopia server passes GuiServer. 503 the Qtopia server passes GuiServer.
462*/ 504*/
@@ -609,8 +651,8 @@ static void createInputMethodDict()
609/*! 651/*!
610 Returns the currently set hint to the system as to whether 652 Returns the currently set hint to the system as to whether
611 widget \a w has any use for text input methods. 653 widget \a w has any use for text input methods.
612 654
613 655
614 \sa setInputMethodHint() InputMethodHint 656 \sa setInputMethodHint() InputMethodHint
615*/ 657*/
616QPEApplication::InputMethodHint QPEApplication::inputMethodHint( QWidget * w ) 658QPEApplication::InputMethodHint QPEApplication::inputMethodHint( QWidget * w )
@@ -622,7 +664,7 @@ QPEApplication::InputMethodHint QPEApplication::inputMethodHint( QWidget * w )
622 664
623/*! 665/*!
624 \enum QPEApplication::InputMethodHint 666 \enum QPEApplication::InputMethodHint
625 667
626 \value Normal the application sometimes needs text input (the default). 668 \value Normal the application sometimes needs text input (the default).
627 \value AlwaysOff the application never needs text input. 669 \value AlwaysOff the application never needs text input.
628 \value AlwaysOn the application always needs text input. 670 \value AlwaysOn the application always needs text input.
@@ -631,7 +673,7 @@ QPEApplication::InputMethodHint QPEApplication::inputMethodHint( QWidget * w )
631/*! 673/*!
632 Hints to the system that widget \a w has use for text input methods 674 Hints to the system that widget \a w has use for text input methods
633 as specified by \a mode. 675 as specified by \a mode.
634 676
635 \sa inputMethodHint() InputMethodHint 677 \sa inputMethodHint() InputMethodHint
636*/ 678*/
637void QPEApplication::setInputMethodHint( QWidget * w, InputMethodHint mode ) 679void QPEApplication::setInputMethodHint( QWidget * w, InputMethodHint mode )
@@ -908,12 +950,12 @@ void QPEApplication::applyStyle()
908{ 950{
909 Config config( "qpe" ); 951 Config config( "qpe" );
910 config.setGroup( "Appearance" ); 952 config.setGroup( "Appearance" );
911 953
912 // don't block ourselves ... 954 // don't block ourselves ...
913 Opie::force_appearance = 0; 955 Opie::force_appearance = 0;
914 956
915 static QString appname = Opie::binaryName ( ); 957 static QString appname = Opie::binaryName ( );
916 958
917 QStringList ex = config. readListEntry ( "NoStyle", ';' ); 959 QStringList ex = config. readListEntry ( "NoStyle", ';' );
918 int nostyle = 0; 960 int nostyle = 0;
919 for ( QStringList::Iterator it = ex. begin ( ); it != ex. end ( ); ++it ) { 961 for ( QStringList::Iterator it = ex. begin ( ); it != ex. end ( ); ++it ) {
@@ -922,14 +964,14 @@ void QPEApplication::applyStyle()
922 break; 964 break;
923 } 965 }
924 } 966 }
925 967
926 // Widget style 968 // Widget style
927 QString style = config.readEntry( "Style", "Light" ); 969 QString style = config.readEntry( "Style", "Light" );
928 970
929 // don't set a custom style 971 // don't set a custom style
930 if ( nostyle & Opie::Force_Style ) 972 if ( nostyle & Opie::Force_Style )
931 style = "Light"; 973 style = "Light";
932 974
933 internalSetStyle ( style ); 975 internalSetStyle ( style );
934 976
935 // Colors 977 // Colors
@@ -954,13 +996,13 @@ void QPEApplication::applyStyle()
954 996
955 // Window Decoration 997 // Window Decoration
956 QString dec = config.readEntry( "Decoration", "Qtopia" ); 998 QString dec = config.readEntry( "Decoration", "Qtopia" );
957 999
958 // don't set a custom deco 1000 // don't set a custom deco
959 if ( nostyle & Opie::Force_Decoration ) 1001 if ( nostyle & Opie::Force_Decoration )
960 dec = ""; 1002 dec = "";
961 1003
962 //qDebug ( "Setting Deco: %s -- old %s (%d)", dec.latin1(), d-> decorationName.latin1(), nostyle); 1004 //qDebug ( "Setting Deco: %s -- old %s (%d)", dec.latin1(), d-> decorationName.latin1(), nostyle);
963 1005
964 if ( dec != d->decorationName ) { 1006 if ( dec != d->decorationName ) {
965 qwsSetDecoration( new QPEDecoration( dec ) ); 1007 qwsSetDecoration( new QPEDecoration( dec ) );
966 d->decorationName = dec; 1008 d->decorationName = dec;
@@ -970,14 +1012,14 @@ void QPEApplication::applyStyle()
970 QString ff = config.readEntry( "FontFamily", font().family() ); 1012 QString ff = config.readEntry( "FontFamily", font().family() );
971 int fs = config.readNumEntry( "FontSize", font().pointSize() ); 1013 int fs = config.readNumEntry( "FontSize", font().pointSize() );
972 1014
973 // don't set a custom font 1015 // don't set a custom font
974 if ( nostyle & Opie::Force_Font ) { 1016 if ( nostyle & Opie::Force_Font ) {
975 ff = "Helvetica"; 1017 ff = "Helvetica";
976 fs = 10; 1018 fs = 10;
977 } 1019 }
978 1020
979 setFont ( QFont ( ff, fs ), true ); 1021 setFont ( QFont ( ff, fs ), true );
980 1022
981 // revert to global blocking policy ... 1023 // revert to global blocking policy ...
982 Opie::force_appearance = config. readBoolEntry ( "ForceStyle", false ) ? Opie::Force_All : Opie::Force_None; 1024 Opie::force_appearance = config. readBoolEntry ( "ForceStyle", false ) ? Opie::Force_All : Opie::Force_None;
983 Opie::force_appearance &= ~nostyle; 1025 Opie::force_appearance &= ~nostyle;
@@ -1116,6 +1158,25 @@ void QPEApplication::systemMessage( const QCString& msg, const QByteArray& data
1116 setMic(); 1158 setMic();
1117 emit micChanged( micMuted ); 1159 emit micChanged( micMuted );
1118 } 1160 }
1161 else if ( msg == "setBass(int,int)" ) { // Added: 2002-12-13 by Maximilian Reiss <harlekin@handhelds.org>
1162 int t, v;
1163 stream >> t >> v;
1164 setBass( t, v );
1165 }
1166 else if ( msg == "bassChange(bool)" ) { // Added: 2002-12-13 by Maximilian Reiss <harlekin@handhelds.org>
1167 setBass();
1168 }
1169 else if ( msg == "setTreble(int,int)" ) { // Added: 2002-12-13 by Maximilian Reiss <harlekin@handhelds.org>
1170 int t, v;
1171 stream >> t >> v;
1172 setTreble( t, v );
1173 }
1174 else if ( msg == "trebleChange(bool)" ) { // Added: 2002-12-13 by Maximilian Reiss <harlekin@handhelds.org>
1175 setTreble();
1176 }
1177
1178
1179
1119#endif 1180#endif
1120} 1181}
1121 1182
@@ -1229,7 +1290,7 @@ void QPEApplication::pidMessage( const QCString& msg, const QByteArray& data)
1229/*! 1290/*!
1230 Sets widget \a mw as the mainWidget() and shows it. For small windows, 1291 Sets widget \a mw as the mainWidget() and shows it. For small windows,
1231 consider passing TRUE for \a nomaximize rather than the default FALSE. 1292 consider passing TRUE for \a nomaximize rather than the default FALSE.
1232 1293
1233 \sa showMainDocumentWidget() 1294 \sa showMainDocumentWidget()
1234*/ 1295*/
1235void QPEApplication::showMainWidget( QWidget* mw, bool nomaximize ) 1296void QPEApplication::showMainWidget( QWidget* mw, bool nomaximize )
@@ -1240,12 +1301,12 @@ void QPEApplication::showMainWidget( QWidget* mw, bool nomaximize )
1240/*! 1301/*!
1241 Sets widget \a mw as the mainWidget() and shows it. For small windows, 1302 Sets widget \a mw as the mainWidget() and shows it. For small windows,
1242 consider passing TRUE for \a nomaximize rather than the default FALSE. 1303 consider passing TRUE for \a nomaximize rather than the default FALSE.
1243 1304
1244 This calls designates the application as 1305 This calls designates the application as
1245 a \link docwidget.html document-oriented\endlink application. 1306 a \link docwidget.html document-oriented\endlink application.
1246 1307
1247 The \a mw widget \e must have this slot: setDocument(const QString&). 1308 The \a mw widget \e must have this slot: setDocument(const QString&).
1248 1309
1249 \sa showMainWidget() 1310 \sa showMainWidget()
1250*/ 1311*/
1251void QPEApplication::showMainDocumentWidget( QWidget* mw, bool nomaximize ) 1312void QPEApplication::showMainDocumentWidget( QWidget* mw, bool nomaximize )
@@ -1264,7 +1325,7 @@ void QPEApplication::showMainDocumentWidget( QWidget* mw, bool nomaximize )
1264 function while processing a \link qcop.html QCop\endlink message, 1325 function while processing a \link qcop.html QCop\endlink message,
1265 after processing its outstanding \link qcop.html QCop\endlink 1326 after processing its outstanding \link qcop.html QCop\endlink
1266 messages the application will start 'properly' and show itself. 1327 messages the application will start 'properly' and show itself.
1267 1328
1268 \sa keepRunning() 1329 \sa keepRunning()
1269*/ 1330*/
1270void QPEApplication::setKeepRunning() 1331void QPEApplication::setKeepRunning()
@@ -1278,7 +1339,7 @@ void QPEApplication::setKeepRunning()
1278/*! 1339/*!
1279 Returns TRUE if the application will quit after processing the 1340 Returns TRUE if the application will quit after processing the
1280 current list of qcop messages; otherwise returns FALSE. 1341 current list of qcop messages; otherwise returns FALSE.
1281 1342
1282 \sa setKeepRunning() 1343 \sa setKeepRunning()
1283*/ 1344*/
1284bool QPEApplication::keepRunning() const 1345bool QPEApplication::keepRunning() const
@@ -1419,7 +1480,7 @@ static void createDict()
1419 1480
1420/*! 1481/*!
1421 Returns the current StylusMode for widget \a w. 1482 Returns the current StylusMode for widget \a w.
1422 1483
1423 \sa setStylusOperation() StylusMode 1484 \sa setStylusOperation() StylusMode
1424*/ 1485*/
1425QPEApplication::StylusMode QPEApplication::stylusOperation( QWidget* w ) 1486QPEApplication::StylusMode QPEApplication::stylusOperation( QWidget* w )
@@ -1431,19 +1492,19 @@ QPEApplication::StylusMode QPEApplication::stylusOperation( QWidget* w )
1431 1492
1432/*! 1493/*!
1433 \enum QPEApplication::StylusMode 1494 \enum QPEApplication::StylusMode
1434 1495
1435 \value LeftOnly the stylus only generates LeftButton 1496 \value LeftOnly the stylus only generates LeftButton
1436 events (the default). 1497 events (the default).
1437 \value RightOnHold the stylus generates RightButton events 1498 \value RightOnHold the stylus generates RightButton events
1438 if the user uses the press-and-hold gesture. 1499 if the user uses the press-and-hold gesture.
1439 1500
1440 \sa setStylusOperation() stylusOperation() 1501 \sa setStylusOperation() stylusOperation()
1441*/ 1502*/
1442 1503
1443/*! 1504/*!
1444 Causes widget \a w to receive mouse events according to the stylus 1505 Causes widget \a w to receive mouse events according to the stylus
1445 \a mode. 1506 \a mode.
1446 1507
1447 \sa stylusOperation() StylusMode 1508 \sa stylusOperation() StylusMode
1448*/ 1509*/
1449void QPEApplication::setStylusOperation( QWidget * w, StylusMode mode ) 1510void QPEApplication::setStylusOperation( QWidget * w, StylusMode mode )
@@ -1588,7 +1649,7 @@ void QPEApplication::ungrabKeyboard()
1588 the signals emitted are sent to this application instead. Some games 1649 the signals emitted are sent to this application instead. Some games
1589 programs take over the launch keys in this way to make interaction 1650 programs take over the launch keys in this way to make interaction
1590 easier. 1651 easier.
1591 1652
1592 \sa ungrabKeyboard() 1653 \sa ungrabKeyboard()
1593*/ 1654*/
1594void QPEApplication::grabKeyboard() 1655void QPEApplication::grabKeyboard()