-rw-r--r-- | library/qpeapplication.cpp | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/library/qpeapplication.cpp b/library/qpeapplication.cpp index d4734ae..a97efc0 100644 --- a/library/qpeapplication.cpp +++ b/library/qpeapplication.cpp | |||
@@ -15,17 +15,19 @@ | |||
15 | ** | 15 | ** |
16 | ** Contact info@trolltech.com if any conditions of this licensing are | 16 | ** Contact info@trolltech.com if any conditions of this licensing are |
17 | ** not clear to you. | 17 | ** not clear to you. |
18 | ** | 18 | ** |
19 | */ | 19 | */ |
20 | #define QTOPIA_INTERNAL_LANGLIST | 20 | #define QTOPIA_INTERNAL_LANGLIST |
21 | #include <stdlib.h> | 21 | #include <stdlib.h> |
22 | #include <unistd.h> | 22 | #include <unistd.h> |
23 | #ifndef Q_OS_MACX | ||
23 | #include <linux/limits.h> // needed for some toolchains (PATH_MAX) | 24 | #include <linux/limits.h> // needed for some toolchains (PATH_MAX) |
25 | #endif | ||
24 | #include <qfile.h> | 26 | #include <qfile.h> |
25 | #include <qqueue.h> | 27 | #include <qqueue.h> |
26 | #ifdef Q_WS_QWS | 28 | #ifdef Q_WS_QWS |
27 | #ifndef QT_NO_COP | 29 | #ifndef QT_NO_COP |
28 | #if QT_VERSION <= 231 | 30 | #if QT_VERSION <= 231 |
29 | #define private public | 31 | #define private public |
30 | #define sendLocally processEvent | 32 | #define sendLocally processEvent |
31 | #include "qcopenvelope_qws.h" | 33 | #include "qcopenvelope_qws.h" |
@@ -84,18 +86,19 @@ | |||
84 | #include "applnk.h" | 86 | #include "applnk.h" |
85 | #include "qpemenubar.h" | 87 | #include "qpemenubar.h" |
86 | #include "textcodecinterface.h" | 88 | #include "textcodecinterface.h" |
87 | #include "imagecodecinterface.h" | 89 | #include "imagecodecinterface.h" |
88 | 90 | ||
89 | #include <unistd.h> | 91 | #include <unistd.h> |
90 | #include <sys/file.h> | 92 | #include <sys/file.h> |
91 | #include <sys/ioctl.h> | 93 | #include <sys/ioctl.h> |
94 | #ifndef QT_NO_SOUND | ||
92 | #include <sys/soundcard.h> | 95 | #include <sys/soundcard.h> |
93 | 96 | #endif | |
94 | #include "qt_override_p.h" | 97 | #include "qt_override_p.h" |
95 | 98 | ||
96 | 99 | ||
97 | class QPEApplicationData | 100 | class QPEApplicationData |
98 | { | 101 | { |
99 | public: | 102 | public: |
100 | QPEApplicationData ( ) | 103 | QPEApplicationData ( ) |
101 | : presstimer( 0 ), presswidget( 0 ), rightpressed( false ), kbgrabbed( false ), | 104 | : presstimer( 0 ), presswidget( 0 ), rightpressed( false ), kbgrabbed( false ), |
@@ -228,17 +231,21 @@ public: | |||
228 | else if ( keep_running ) { | 231 | else if ( keep_running ) { |
229 | show_mx(mw, nomax); | 232 | show_mx(mw, nomax); |
230 | } | 233 | } |
231 | } | 234 | } |
232 | 235 | ||
233 | void loadTextCodecs() | 236 | void loadTextCodecs() |
234 | { | 237 | { |
235 | QString path = QPEApplication::qpeDir() + "/plugins/textcodecs"; | 238 | QString path = QPEApplication::qpeDir() + "/plugins/textcodecs"; |
239 | #ifdef Q_OS_MACX | ||
240 | QDir dir( path, "lib*.dylib" ); | ||
241 | #else | ||
236 | QDir dir( path, "lib*.so" ); | 242 | QDir dir( path, "lib*.so" ); |
243 | #endif | ||
237 | QStringList list; | 244 | QStringList list; |
238 | if ( dir. exists ( )) | 245 | if ( dir. exists ( )) |
239 | list = dir.entryList(); | 246 | list = dir.entryList(); |
240 | QStringList::Iterator it; | 247 | QStringList::Iterator it; |
241 | for ( it = list.begin(); it != list.end(); ++it ) { | 248 | for ( it = list.begin(); it != list.end(); ++it ) { |
242 | TextCodecInterface *iface = 0; | 249 | TextCodecInterface *iface = 0; |
243 | QLibrary *lib = new QLibrary( path + "/" + *it ); | 250 | QLibrary *lib = new QLibrary( path + "/" + *it ); |
244 | if ( lib->queryInterface( IID_QtopiaTextCodec, (QUnknownInterface**)&iface ) == QS_OK && iface ) { | 251 | if ( lib->queryInterface( IID_QtopiaTextCodec, (QUnknownInterface**)&iface ) == QS_OK && iface ) { |
@@ -253,17 +260,21 @@ public: | |||
253 | delete lib; | 260 | delete lib; |
254 | } | 261 | } |
255 | } | 262 | } |
256 | } | 263 | } |
257 | 264 | ||
258 | void loadImageCodecs() | 265 | void loadImageCodecs() |
259 | { | 266 | { |
260 | QString path = QPEApplication::qpeDir() + "/plugins/imagecodecs"; | 267 | QString path = QPEApplication::qpeDir() + "/plugins/imagecodecs"; |
268 | #ifdef Q_OS_MACX | ||
269 | QDir dir( path, "lib*.dylib" ); | ||
270 | #else | ||
261 | QDir dir( path, "lib*.so" ); | 271 | QDir dir( path, "lib*.so" ); |
272 | #endif | ||
262 | QStringList list; | 273 | QStringList list; |
263 | if ( dir. exists ( )) | 274 | if ( dir. exists ( )) |
264 | list = dir.entryList(); | 275 | list = dir.entryList(); |
265 | QStringList::Iterator it; | 276 | QStringList::Iterator it; |
266 | for ( it = list.begin(); it != list.end(); ++it ) { | 277 | for ( it = list.begin(); it != list.end(); ++it ) { |
267 | ImageCodecInterface *iface = 0; | 278 | ImageCodecInterface *iface = 0; |
268 | QLibrary *lib = new QLibrary( path + "/" + *it ); | 279 | QLibrary *lib = new QLibrary( path + "/" + *it ); |
269 | if ( lib->queryInterface( IID_QtopiaImageCodec, (QUnknownInterface**)&iface ) == QS_OK && iface ) { | 280 | if ( lib->queryInterface( IID_QtopiaImageCodec, (QUnknownInterface**)&iface ) == QS_OK && iface ) { |
@@ -335,86 +346,94 @@ static int micMuted = 0; | |||
335 | static void setVolume( int t = 0, int percent = -1 ) | 346 | static void setVolume( int t = 0, int percent = -1 ) |
336 | { | 347 | { |
337 | switch ( t ) { | 348 | switch ( t ) { |
338 | case 0: { | 349 | case 0: { |
339 | Config cfg( "qpe" ); | 350 | Config cfg( "qpe" ); |
340 | cfg.setGroup( "Volume" ); | 351 | cfg.setGroup( "Volume" ); |
341 | if ( percent < 0 ) | 352 | if ( percent < 0 ) |
342 | percent = cfg.readNumEntry( "VolumePercent", 50 ); | 353 | percent = cfg.readNumEntry( "VolumePercent", 50 ); |
354 | #ifndef QT_NO_SOUND | ||
343 | int fd = 0; | 355 | int fd = 0; |
344 | if ( ( fd = open( "/dev/mixer", O_RDWR ) ) >= 0 ) { | 356 | if ( ( fd = open( "/dev/mixer", O_RDWR ) ) >= 0 ) { |
345 | int vol = muted ? 0 : percent; | 357 | int vol = muted ? 0 : percent; |
346 | // set both channels to same volume | 358 | // set both channels to same volume |
347 | vol |= vol << 8; | 359 | vol |= vol << 8; |
348 | ioctl( fd, MIXER_WRITE( 0 ), &vol ); | 360 | ioctl( fd, MIXER_WRITE( 0 ), &vol ); |
349 | ::close( fd ); | 361 | ::close( fd ); |
350 | } | 362 | } |
363 | #endif | ||
351 | } | 364 | } |
352 | break; | 365 | break; |
353 | } | 366 | } |
354 | } | 367 | } |
355 | 368 | ||
356 | static void setMic( int t = 0, int percent = -1 ) | 369 | static void setMic( int t = 0, int percent = -1 ) |
357 | { | 370 | { |
358 | switch ( t ) { | 371 | switch ( t ) { |
359 | case 0: { | 372 | case 0: { |
360 | Config cfg( "qpe" ); | 373 | Config cfg( "qpe" ); |
361 | cfg.setGroup( "Volume" ); | 374 | cfg.setGroup( "Volume" ); |
362 | if ( percent < 0 ) | 375 | if ( percent < 0 ) |
363 | percent = cfg.readNumEntry( "Mic", 50 ); | 376 | percent = cfg.readNumEntry( "Mic", 50 ); |
364 | 377 | ||
378 | #ifndef QT_NO_SOUND | ||
365 | int fd = 0; | 379 | int fd = 0; |
366 | int mic = micMuted ? 0 : percent; | 380 | int mic = micMuted ? 0 : percent; |
367 | if ( ( fd = open( "/dev/mixer", O_RDWR ) ) >= 0 ) { | 381 | if ( ( fd = open( "/dev/mixer", O_RDWR ) ) >= 0 ) { |
368 | ioctl( fd, MIXER_WRITE( SOUND_MIXER_MIC ), &mic ); | 382 | ioctl( fd, MIXER_WRITE( SOUND_MIXER_MIC ), &mic ); |
369 | ::close( fd ); | 383 | ::close( fd ); |
370 | } | 384 | } |
385 | #endif | ||
371 | } | 386 | } |
372 | break; | 387 | break; |
373 | } | 388 | } |
374 | } | 389 | } |
375 | 390 | ||
376 | 391 | ||
377 | static void setBass( int t = 0, int percent = -1 ) | 392 | static void setBass( int t = 0, int percent = -1 ) |
378 | { | 393 | { |
379 | switch ( t ) { | 394 | switch ( t ) { |
380 | case 0: { | 395 | case 0: { |
381 | Config cfg( "qpe" ); | 396 | Config cfg( "qpe" ); |
382 | cfg.setGroup( "Volume" ); | 397 | cfg.setGroup( "Volume" ); |
383 | if ( percent < 0 ) | 398 | if ( percent < 0 ) |
384 | percent = cfg.readNumEntry( "BassPercent", 50 ); | 399 | percent = cfg.readNumEntry( "BassPercent", 50 ); |
385 | 400 | ||
401 | #ifndef QT_NO_SOUND | ||
386 | int fd = 0; | 402 | int fd = 0; |
387 | int bass = percent; | 403 | int bass = percent; |
388 | if ( ( fd = open( "/dev/mixer", O_RDWR ) ) >= 0 ) { | 404 | if ( ( fd = open( "/dev/mixer", O_RDWR ) ) >= 0 ) { |
389 | ioctl( fd, MIXER_WRITE( SOUND_MIXER_BASS ), &bass ); | 405 | ioctl( fd, MIXER_WRITE( SOUND_MIXER_BASS ), &bass ); |
390 | ::close( fd ); | 406 | ::close( fd ); |
391 | } | 407 | } |
408 | #endif | ||
392 | } | 409 | } |
393 | break; | 410 | break; |
394 | } | 411 | } |
395 | } | 412 | } |
396 | 413 | ||
397 | 414 | ||
398 | static void setTreble( int t = 0, int percent = -1 ) | 415 | static void setTreble( int t = 0, int percent = -1 ) |
399 | { | 416 | { |
400 | switch ( t ) { | 417 | switch ( t ) { |
401 | case 0: { | 418 | case 0: { |
402 | Config cfg( "qpe" ); | 419 | Config cfg( "qpe" ); |
403 | cfg.setGroup( "Volume" ); | 420 | cfg.setGroup( "Volume" ); |
404 | if ( percent < 0 ) | 421 | if ( percent < 0 ) |
405 | percent = cfg.readNumEntry( "TreblePercent", 50 ); | 422 | percent = cfg.readNumEntry( "TreblePercent", 50 ); |
406 | 423 | ||
424 | #ifndef QT_NO_SOUND | ||
407 | int fd = 0; | 425 | int fd = 0; |
408 | int treble = percent; | 426 | int treble = percent; |
409 | if ( ( fd = open( "/dev/mixer", O_RDWR ) ) >= 0 ) { | 427 | if ( ( fd = open( "/dev/mixer", O_RDWR ) ) >= 0 ) { |
410 | ioctl( fd, MIXER_WRITE( SOUND_MIXER_TREBLE ), &treble ); | 428 | ioctl( fd, MIXER_WRITE( SOUND_MIXER_TREBLE ), &treble ); |
411 | ::close( fd ); | 429 | ::close( fd ); |
412 | } | 430 | } |
431 | #endif | ||
413 | } | 432 | } |
414 | break; | 433 | break; |
415 | } | 434 | } |
416 | } | 435 | } |
417 | 436 | ||
418 | 437 | ||
419 | /*! | 438 | /*! |
420 | \class QPEApplication qpeapplication.h | 439 | \class QPEApplication qpeapplication.h |
@@ -1644,21 +1663,27 @@ void QPEApplication::internalSetStyle( const QString &style ) | |||
1644 | setStyle( new QMotifPlusStyle ); | 1663 | setStyle( new QMotifPlusStyle ); |
1645 | } | 1664 | } |
1646 | #endif | 1665 | #endif |
1647 | 1666 | ||
1648 | else { | 1667 | else { |
1649 | QStyle *sty = 0; | 1668 | QStyle *sty = 0; |
1650 | QString path = QPEApplication::qpeDir ( ) + "/plugins/styles/"; | 1669 | QString path = QPEApplication::qpeDir ( ) + "/plugins/styles/"; |
1651 | 1670 | ||
1671 | #ifdef Q_OS_MACX | ||
1672 | if ( style. find ( ".dylib" ) > 0 ) | ||
1673 | path += style; | ||
1674 | else | ||
1675 | path = path + "lib" + style. lower ( ) + ".dylib"; // compatibility | ||
1676 | #else | ||
1652 | if ( style. find ( ".so" ) > 0 ) | 1677 | if ( style. find ( ".so" ) > 0 ) |
1653 | path += style; | 1678 | path += style; |
1654 | else | 1679 | else |
1655 | path = path + "lib" + style. lower ( ) + ".so"; // compatibility | 1680 | path = path + "lib" + style. lower ( ) + ".so"; // compatibility |
1656 | 1681 | #endif | |
1657 | static QLibrary *lastlib = 0; | 1682 | static QLibrary *lastlib = 0; |
1658 | static StyleInterface *lastiface = 0; | 1683 | static StyleInterface *lastiface = 0; |
1659 | 1684 | ||
1660 | QLibrary *lib = new QLibrary ( path ); | 1685 | QLibrary *lib = new QLibrary ( path ); |
1661 | StyleInterface *iface = 0; | 1686 | StyleInterface *iface = 0; |
1662 | 1687 | ||
1663 | if (( lib-> queryInterface ( IID_Style, ( QUnknownInterface ** ) &iface ) == QS_OK ) && iface ) | 1688 | if (( lib-> queryInterface ( IID_Style, ( QUnknownInterface ** ) &iface ) == QS_OK ) && iface ) |
1664 | sty = iface-> style ( ); | 1689 | sty = iface-> style ( ); |