author | schurig <schurig> | 2004-09-10 12:18:17 (UTC) |
---|---|---|
committer | schurig <schurig> | 2004-09-10 12:18:17 (UTC) |
commit | 9d0ccc1c5ca687bc017b2b515a9d3a47e98ce521 (patch) (unidiff) | |
tree | 53927c6a19c69d54bb3d0e092ac57180bcb60222 | |
parent | ed70ec4945c7816ec6e899207ec8b99e20e10da5 (diff) | |
download | opie-9d0ccc1c5ca687bc017b2b515a9d3a47e98ce521.zip opie-9d0ccc1c5ca687bc017b2b515a9d3a47e98ce521.tar.gz opie-9d0ccc1c5ca687bc017b2b515a9d3a47e98ce521.tar.bz2 |
added support for DEVFS
-rw-r--r-- | core/applets/vmemo/vmemo.cpp | 10 | ||||
-rw-r--r-- | core/applets/vtapplet/vt.cpp | 8 | ||||
-rw-r--r-- | libopie/odevice.cpp | 4 | ||||
-rw-r--r-- | libopie2/opiemm/osoundsystem.cpp | 5 | ||||
-rw-r--r-- | library/qpeapplication.cpp | 16 |
5 files changed, 40 insertions, 3 deletions
diff --git a/core/applets/vmemo/vmemo.cpp b/core/applets/vmemo/vmemo.cpp index e747a19..07ef15c 100644 --- a/core/applets/vmemo/vmemo.cpp +++ b/core/applets/vmemo/vmemo.cpp | |||
@@ -390,60 +390,64 @@ void VMemo::stopRecording() { | |||
390 | // if( cfg.readNumEntry("hideIcon",0) == 1 ) | 390 | // if( cfg.readNumEntry("hideIcon",0) == 1 ) |
391 | // hide(); | 391 | // hide(); |
392 | } | 392 | } |
393 | 393 | ||
394 | int VMemo::openDSP() { | 394 | int VMemo::openDSP() { |
395 | Config cfg("Vmemo"); | 395 | Config cfg("Vmemo"); |
396 | cfg.setGroup("Record"); | 396 | cfg.setGroup("Record"); |
397 | 397 | ||
398 | speed = cfg.readNumEntry("SampleRate", 22050); | 398 | speed = cfg.readNumEntry("SampleRate", 22050); |
399 | channels = cfg.readNumEntry("Stereo", 1) ? 2 : 1; // 1 = stereo(2), 0 = mono(1) | 399 | channels = cfg.readNumEntry("Stereo", 1) ? 2 : 1; // 1 = stereo(2), 0 = mono(1) |
400 | if (cfg.readNumEntry("SixteenBit", 1)==1) { | 400 | if (cfg.readNumEntry("SixteenBit", 1)==1) { |
401 | format = AFMT_S16_LE; | 401 | format = AFMT_S16_LE; |
402 | resolution = 16; | 402 | resolution = 16; |
403 | } else { | 403 | } else { |
404 | format = AFMT_U8; | 404 | format = AFMT_U8; |
405 | resolution = 8; | 405 | resolution = 8; |
406 | } | 406 | } |
407 | 407 | ||
408 | odebug << "samplerate: " << speed << ", channels " << channels << ", resolution " << resolution << "" << oendl; | 408 | odebug << "samplerate: " << speed << ", channels " << channels << ", resolution " << resolution << "" << oendl; |
409 | 409 | ||
410 | if(systemZaurus) { | 410 | if(systemZaurus) { |
411 | dsp = open("/dev/dsp1", O_RDONLY); //Zaurus needs /dev/dsp1 | 411 | dsp = open("/dev/dsp1", O_RDONLY); //Zaurus needs /dev/dsp1 |
412 | channels=1; //zaurus has one input channel | 412 | channels=1; //zaurus has one input channel |
413 | } else { | 413 | } else { |
414 | #ifdef QT_QWS_DEVFS | ||
415 | dsp = open("/dev/sound/dsp", O_RDONLY); | ||
416 | #else | ||
414 | dsp = open("/dev/dsp", O_RDONLY); | 417 | dsp = open("/dev/dsp", O_RDONLY); |
418 | #endif | ||
415 | } | 419 | } |
416 | 420 | ||
417 | if(dsp == -1) { | 421 | if (dsp == -1) { |
418 | msgLabel->close(); | 422 | msgLabel->close(); |
419 | msgLabel=0; | 423 | msgLabel=0; |
420 | delete msgLabel; | 424 | delete msgLabel; |
421 | 425 | ||
422 | perror("open(\"/dev/dsp\")"); | 426 | perror("open(\"/dev/dsp\")"); |
423 | errorMsg="open(\"/dev/dsp\")\n "+(QString)strerror(errno); | 427 | errorMsg="open(\"/dev/dsp\")\n "+(QString)strerror(errno); |
424 | QMessageBox::critical(0, "vmemo", errorMsg, "Abort"); | 428 | QMessageBox::critical(0, "vmemo", errorMsg, "Abort"); |
425 | return -1; | 429 | return -1; |
426 | } | 430 | } |
427 | 431 | ||
428 | if(ioctl(dsp, SNDCTL_DSP_SETFMT , &format)==-1) { | 432 | if(ioctl(dsp, SNDCTL_DSP_SETFMT , &format)==-1) { |
429 | perror("ioctl(\"SNDCTL_DSP_SETFMT\")"); | 433 | perror("ioctl(\"SNDCTL_DSP_SETFMT\")"); |
430 | return -1; | 434 | return -1; |
431 | } | 435 | } |
432 | if(ioctl(dsp, SNDCTL_DSP_CHANNELS , &channels)==-1) { | 436 | if(ioctl(dsp, SNDCTL_DSP_CHANNELS , &channels)==-1) { |
433 | perror("ioctl(\"SNDCTL_DSP_CHANNELS\")"); | 437 | perror("ioctl(\"SNDCTL_DSP_CHANNELS\")"); |
434 | return -1; | 438 | return -1; |
435 | } | 439 | } |
436 | if(ioctl(dsp, SNDCTL_DSP_SPEED , &speed)==-1) { | 440 | if(ioctl(dsp, SNDCTL_DSP_SPEED , &speed)==-1) { |
437 | perror("ioctl(\"SNDCTL_DSP_SPEED\")"); | 441 | perror("ioctl(\"SNDCTL_DSP_SPEED\")"); |
438 | return -1; | 442 | return -1; |
439 | } | 443 | } |
440 | if(ioctl(dsp, SOUND_PCM_READ_RATE , &rate)==-1) { | 444 | if(ioctl(dsp, SOUND_PCM_READ_RATE , &rate)==-1) { |
441 | perror("ioctl(\"SOUND_PCM_READ_RATE\")"); | 445 | perror("ioctl(\"SOUND_PCM_READ_RATE\")"); |
442 | return -1; | 446 | return -1; |
443 | } | 447 | } |
444 | 448 | ||
445 | QCopEnvelope( "QPE/System", "volumeChange(bool)" ) << FALSE; //mute | 449 | QCopEnvelope( "QPE/System", "volumeChange(bool)" ) << FALSE; //mute |
446 | 450 | ||
447 | return 1; | 451 | return 1; |
448 | } | 452 | } |
449 | 453 | ||
diff --git a/core/applets/vtapplet/vt.cpp b/core/applets/vtapplet/vt.cpp index aec63c3..7832ee0 100644 --- a/core/applets/vtapplet/vt.cpp +++ b/core/applets/vtapplet/vt.cpp | |||
@@ -59,73 +59,81 @@ QString VTApplet::tr( const char* s ) const | |||
59 | return qApp->translate( "VTApplet", s, 0 ); | 59 | return qApp->translate( "VTApplet", s, 0 ); |
60 | } | 60 | } |
61 | 61 | ||
62 | QString VTApplet::tr( const char* s, const char* p ) const | 62 | QString VTApplet::tr( const char* s, const char* p ) const |
63 | { | 63 | { |
64 | return qApp->translate( "VTApplet", s, p ); | 64 | return qApp->translate( "VTApplet", s, p ); |
65 | } | 65 | } |
66 | */ | 66 | */ |
67 | 67 | ||
68 | QIconSet VTApplet::icon ( ) const | 68 | QIconSet VTApplet::icon ( ) const |
69 | { | 69 | { |
70 | QPixmap pix; | 70 | QPixmap pix; |
71 | QImage img = Resource::loadImage ( "terminal" ); | 71 | QImage img = Resource::loadImage ( "terminal" ); |
72 | 72 | ||
73 | if ( !img. isNull ( )) | 73 | if ( !img. isNull ( )) |
74 | pix. convertFromImage ( img. smoothScale ( 14, 14 )); | 74 | pix. convertFromImage ( img. smoothScale ( 14, 14 )); |
75 | return pix; | 75 | return pix; |
76 | } | 76 | } |
77 | 77 | ||
78 | QPopupMenu *VTApplet::popup ( QWidget* parent ) const | 78 | QPopupMenu *VTApplet::popup ( QWidget* parent ) const |
79 | { | 79 | { |
80 | odebug << "VTApplet::popup" << oendl; | 80 | odebug << "VTApplet::popup" << oendl; |
81 | 81 | ||
82 | struct vt_stat vtstat; | 82 | struct vt_stat vtstat; |
83 | #ifdef QT_QWS_DEVFS | ||
84 | int fd = ::open( "/dev/vc/0", O_RDWR ); | ||
85 | #else | ||
83 | int fd = ::open( "/dev/tty0", O_RDWR ); | 86 | int fd = ::open( "/dev/tty0", O_RDWR ); |
87 | #endif | ||
84 | if ( fd == -1 ) return 0; | 88 | if ( fd == -1 ) return 0; |
85 | if ( ioctl( fd, VT_GETSTATE, &vtstat ) == -1 ) return 0; | 89 | if ( ioctl( fd, VT_GETSTATE, &vtstat ) == -1 ) return 0; |
86 | 90 | ||
87 | m_subMenu = new QPopupMenu( parent ); | 91 | m_subMenu = new QPopupMenu( parent ); |
88 | m_subMenu->setCheckable( true ); | 92 | m_subMenu->setCheckable( true ); |
89 | for ( int i = 1; i < 10; ++i ) | 93 | for ( int i = 1; i < 10; ++i ) |
90 | { | 94 | { |
91 | int id = m_subMenu->insertItem( QString::number( i ), 500+i ); | 95 | int id = m_subMenu->insertItem( QString::number( i ), 500+i ); |
92 | m_subMenu->setItemChecked( id, id-500 == vtstat.v_active ); | 96 | m_subMenu->setItemChecked( id, id-500 == vtstat.v_active ); |
93 | } | 97 | } |
94 | ::close( fd ); | 98 | ::close( fd ); |
95 | 99 | ||
96 | connect( m_subMenu, SIGNAL( activated(int) ), this, SLOT( changeVT(int) ) ); | 100 | connect( m_subMenu, SIGNAL( activated(int) ), this, SLOT( changeVT(int) ) ); |
97 | connect( m_subMenu, SIGNAL( aboutToShow() ), this, SLOT( updateMenu() ) ); | 101 | connect( m_subMenu, SIGNAL( aboutToShow() ), this, SLOT( updateMenu() ) ); |
98 | 102 | ||
99 | return m_subMenu; | 103 | return m_subMenu; |
100 | } | 104 | } |
101 | 105 | ||
102 | 106 | ||
103 | void VTApplet::changeVT( int index ) | 107 | void VTApplet::changeVT( int index ) |
104 | { | 108 | { |
105 | //odebug << "VTApplet::changeVT( " << index-500 << " )" << oendl; | 109 | //odebug << "VTApplet::changeVT( " << index-500 << " )" << oendl; |
106 | 110 | ||
111 | #ifdef QT_QWS_DEVFS | ||
112 | int fd = ::open("/dev/vc/0", O_RDWR); | ||
113 | #else | ||
107 | int fd = ::open("/dev/tty0", O_RDWR); | 114 | int fd = ::open("/dev/tty0", O_RDWR); |
115 | #endif | ||
108 | if ( fd == -1 ) return; | 116 | if ( fd == -1 ) return; |
109 | ioctl( fd, VT_ACTIVATE, index-500 ); | 117 | ioctl( fd, VT_ACTIVATE, index-500 ); |
110 | } | 118 | } |
111 | 119 | ||
112 | 120 | ||
113 | void VTApplet::updateMenu() | 121 | void VTApplet::updateMenu() |
114 | { | 122 | { |
115 | //odebug << "VTApplet::updateMenu()" << oendl; | 123 | //odebug << "VTApplet::updateMenu()" << oendl; |
116 | 124 | ||
117 | int fd = ::open( "/dev/console", O_RDONLY ); | 125 | int fd = ::open( "/dev/console", O_RDONLY ); |
118 | if ( fd == -1 ) return; | 126 | if ( fd == -1 ) return; |
119 | 127 | ||
120 | for ( int i = 1; i < 10; ++i ) | 128 | for ( int i = 1; i < 10; ++i ) |
121 | { | 129 | { |
122 | int result = ioctl( fd, VT_DISALLOCATE, i ); | 130 | int result = ioctl( fd, VT_DISALLOCATE, i ); |
123 | 131 | ||
124 | /* | 132 | /* |
125 | if ( result == -1 ) | 133 | if ( result == -1 ) |
126 | odebug << "VT " << i << " disallocated == free" << oendl; | 134 | odebug << "VT " << i << " disallocated == free" << oendl; |
127 | else | 135 | else |
128 | odebug << "VT " << i << " _not_ disallocated == busy" << oendl; | 136 | odebug << "VT " << i << " _not_ disallocated == busy" << oendl; |
129 | */ | 137 | */ |
130 | 138 | ||
131 | m_subMenu->setItemEnabled( 500+i, result == -1 ); | 139 | m_subMenu->setItemEnabled( 500+i, result == -1 ); |
diff --git a/libopie/odevice.cpp b/libopie/odevice.cpp index 21070bf..9d0bbbf 100644 --- a/libopie/odevice.cpp +++ b/libopie/odevice.cpp | |||
@@ -574,49 +574,53 @@ bool ODevice::suspend ( ) | |||
574 | 574 | ||
575 | //#include <linux/fb.h> better not rely on kernel headers in userspace ... | 575 | //#include <linux/fb.h> better not rely on kernel headers in userspace ... |
576 | 576 | ||
577 | #define FBIOBLANK OD_IO( 'F', 0x11 ) // 0x4611 | 577 | #define FBIOBLANK OD_IO( 'F', 0x11 ) // 0x4611 |
578 | 578 | ||
579 | /* VESA Blanking Levels */ | 579 | /* VESA Blanking Levels */ |
580 | #define VESA_NO_BLANKING 0 | 580 | #define VESA_NO_BLANKING 0 |
581 | #define VESA_VSYNC_SUSPEND 1 | 581 | #define VESA_VSYNC_SUSPEND 1 |
582 | #define VESA_HSYNC_SUSPEND 2 | 582 | #define VESA_HSYNC_SUSPEND 2 |
583 | #define VESA_POWERDOWN 3 | 583 | #define VESA_POWERDOWN 3 |
584 | 584 | ||
585 | /** | 585 | /** |
586 | * This sets the display on or off | 586 | * This sets the display on or off |
587 | */ | 587 | */ |
588 | bool ODevice::setDisplayStatus ( bool on ) | 588 | bool ODevice::setDisplayStatus ( bool on ) |
589 | { | 589 | { |
590 | qDebug("ODevice::setDisplayStatus(%d)", on); | 590 | qDebug("ODevice::setDisplayStatus(%d)", on); |
591 | 591 | ||
592 | if ( d-> m_model == Model_Unknown ) | 592 | if ( d-> m_model == Model_Unknown ) |
593 | return false; | 593 | return false; |
594 | 594 | ||
595 | bool res = false; | 595 | bool res = false; |
596 | int fd; | 596 | int fd; |
597 | 597 | ||
598 | #ifdef QT_QWS_DEVFS | ||
599 | if (( fd = ::open ( "/dev/fb/0", O_RDWR )) >= 0 ) { | ||
600 | #else | ||
598 | if (( fd = ::open ( "/dev/fb0", O_RDWR )) >= 0 ) { | 601 | if (( fd = ::open ( "/dev/fb0", O_RDWR )) >= 0 ) { |
602 | #endif | ||
599 | res = ( ::ioctl ( fd, FBIOBLANK, on ? VESA_NO_BLANKING : VESA_POWERDOWN ) == 0 ); | 603 | res = ( ::ioctl ( fd, FBIOBLANK, on ? VESA_NO_BLANKING : VESA_POWERDOWN ) == 0 ); |
600 | ::close ( fd ); | 604 | ::close ( fd ); |
601 | } | 605 | } |
602 | return res; | 606 | return res; |
603 | } | 607 | } |
604 | 608 | ||
605 | /** | 609 | /** |
606 | * This sets the display brightness | 610 | * This sets the display brightness |
607 | * | 611 | * |
608 | * @param p The brightness to be set on a scale from 0 to 255 | 612 | * @param p The brightness to be set on a scale from 0 to 255 |
609 | * @return success or failure | 613 | * @return success or failure |
610 | */ | 614 | */ |
611 | bool ODevice::setDisplayBrightness ( int p) | 615 | bool ODevice::setDisplayBrightness ( int p) |
612 | { | 616 | { |
613 | Q_UNUSED( p ) | 617 | Q_UNUSED( p ) |
614 | return false; | 618 | return false; |
615 | } | 619 | } |
616 | 620 | ||
617 | /** | 621 | /** |
618 | * @return returns the number of steppings on the brightness slider | 622 | * @return returns the number of steppings on the brightness slider |
619 | * in the Light-'n-Power settings. | 623 | * in the Light-'n-Power settings. |
620 | */ | 624 | */ |
621 | int ODevice::displayBrightnessResolution ( ) const | 625 | int ODevice::displayBrightnessResolution ( ) const |
622 | { | 626 | { |
diff --git a/libopie2/opiemm/osoundsystem.cpp b/libopie2/opiemm/osoundsystem.cpp index 763ff65..17e5cb0 100644 --- a/libopie2/opiemm/osoundsystem.cpp +++ b/libopie2/opiemm/osoundsystem.cpp | |||
@@ -116,50 +116,55 @@ OSoundSystem::CardIterator OSoundSystem::iterator() const | |||
116 | { | 116 | { |
117 | return OSoundSystem::CardIterator( _interfaces ); | 117 | return OSoundSystem::CardIterator( _interfaces ); |
118 | } | 118 | } |
119 | 119 | ||
120 | 120 | ||
121 | /*====================================================================================== | 121 | /*====================================================================================== |
122 | * OSoundCard | 122 | * OSoundCard |
123 | *======================================================================================*/ | 123 | *======================================================================================*/ |
124 | 124 | ||
125 | OSoundCard::OSoundCard( QObject* parent, const char* name ) | 125 | OSoundCard::OSoundCard( QObject* parent, const char* name ) |
126 | :QObject( parent, name ), _audio( 0 ), _mixer( 0 ) | 126 | :QObject( parent, name ), _audio( 0 ), _mixer( 0 ) |
127 | { | 127 | { |
128 | odebug << "OSoundCard::OSoundCard()" << oendl; | 128 | odebug << "OSoundCard::OSoundCard()" << oendl; |
129 | init(); | 129 | init(); |
130 | } | 130 | } |
131 | 131 | ||
132 | 132 | ||
133 | OSoundCard::~OSoundCard() | 133 | OSoundCard::~OSoundCard() |
134 | { | 134 | { |
135 | } | 135 | } |
136 | 136 | ||
137 | 137 | ||
138 | void OSoundCard::init() | 138 | void OSoundCard::init() |
139 | { | 139 | { |
140 | #ifdef QT_QWS_DEVFS | ||
141 | _audio = new OAudioInterface( this, "/dev/sound/dsp" ); | ||
142 | _mixer = new OMixerInterface( this, "/dev/sound/mixer" ); | ||
143 | #else | ||
140 | _audio = new OAudioInterface( this, "/dev/dsp" ); | 144 | _audio = new OAudioInterface( this, "/dev/dsp" ); |
141 | _mixer = new OMixerInterface( this, "/dev/mixer" ); | 145 | _mixer = new OMixerInterface( this, "/dev/mixer" ); |
146 | #endif | ||
142 | } | 147 | } |
143 | 148 | ||
144 | 149 | ||
145 | /*====================================================================================== | 150 | /*====================================================================================== |
146 | * OAudioInterface | 151 | * OAudioInterface |
147 | *======================================================================================*/ | 152 | *======================================================================================*/ |
148 | 153 | ||
149 | OAudioInterface::OAudioInterface( QObject* parent, const char* name ) | 154 | OAudioInterface::OAudioInterface( QObject* parent, const char* name ) |
150 | :QObject( parent, name ), _sfd(0) | 155 | :QObject( parent, name ), _sfd(0) |
151 | { | 156 | { |
152 | odebug << "OAudioInterface::OAudioInterface()" << oendl; | 157 | odebug << "OAudioInterface::OAudioInterface()" << oendl; |
153 | init(); | 158 | init(); |
154 | } | 159 | } |
155 | 160 | ||
156 | 161 | ||
157 | OAudioInterface::~OAudioInterface() | 162 | OAudioInterface::~OAudioInterface() |
158 | { | 163 | { |
159 | } | 164 | } |
160 | 165 | ||
161 | 166 | ||
162 | void OAudioInterface::init() | 167 | void OAudioInterface::init() |
163 | { | 168 | { |
164 | 169 | ||
165 | 170 | ||
diff --git a/library/qpeapplication.cpp b/library/qpeapplication.cpp index c6d9cfd..ca90427 100644 --- a/library/qpeapplication.cpp +++ b/library/qpeapplication.cpp | |||
@@ -544,120 +544,136 @@ private: | |||
544 | 544 | ||
545 | static int& hack(int& i) | 545 | static int& hack(int& i) |
546 | { | 546 | { |
547 | #if QT_VERSION <= 230 && defined(QT_NO_CODECS) | 547 | #if QT_VERSION <= 230 && defined(QT_NO_CODECS) |
548 | // These should be created, but aren't in Qt 2.3.0 | 548 | // These should be created, but aren't in Qt 2.3.0 |
549 | (void)new QUtf8Codec; | 549 | (void)new QUtf8Codec; |
550 | (void)new QUtf16Codec; | 550 | (void)new QUtf16Codec; |
551 | #endif | 551 | #endif |
552 | return i; | 552 | return i; |
553 | } | 553 | } |
554 | 554 | ||
555 | static int muted = 0; | 555 | static int muted = 0; |
556 | static int micMuted = 0; | 556 | static int micMuted = 0; |
557 | 557 | ||
558 | static void setVolume( int t = 0, int percent = -1 ) | 558 | static void setVolume( int t = 0, int percent = -1 ) |
559 | { | 559 | { |
560 | switch ( t ) { | 560 | switch ( t ) { |
561 | case 0: { | 561 | case 0: { |
562 | Config cfg( "qpe" ); | 562 | Config cfg( "qpe" ); |
563 | cfg.setGroup( "Volume" ); | 563 | cfg.setGroup( "Volume" ); |
564 | if ( percent < 0 ) | 564 | if ( percent < 0 ) |
565 | percent = cfg.readNumEntry( "VolumePercent", 50 ); | 565 | percent = cfg.readNumEntry( "VolumePercent", 50 ); |
566 | #ifndef QT_NO_SOUND | 566 | #ifndef QT_NO_SOUND |
567 | int fd = 0; | 567 | int fd = 0; |
568 | #ifdef QT_QWS_DEVFS | ||
569 | if ( ( fd = open( "/dev/sound/mixer", O_RDWR ) ) >= 0 ) { | ||
570 | #else | ||
568 | if ( ( fd = open( "/dev/mixer", O_RDWR ) ) >= 0 ) { | 571 | if ( ( fd = open( "/dev/mixer", O_RDWR ) ) >= 0 ) { |
572 | #endif | ||
569 | int vol = muted ? 0 : percent; | 573 | int vol = muted ? 0 : percent; |
570 | // set both channels to same volume | 574 | // set both channels to same volume |
571 | vol |= vol << 8; | 575 | vol |= vol << 8; |
572 | ioctl( fd, MIXER_WRITE( SOUND_MIXER_VOLUME ), &vol ); | 576 | ioctl( fd, MIXER_WRITE( SOUND_MIXER_VOLUME ), &vol ); |
573 | ::close( fd ); | 577 | ::close( fd ); |
574 | } | 578 | } |
575 | #endif | 579 | #endif |
576 | } | 580 | } |
577 | break; | 581 | break; |
578 | } | 582 | } |
579 | } | 583 | } |
580 | 584 | ||
581 | static void setMic( int t = 0, int percent = -1 ) | 585 | static void setMic( int t = 0, int percent = -1 ) |
582 | { | 586 | { |
583 | switch ( t ) { | 587 | switch ( t ) { |
584 | case 0: { | 588 | case 0: { |
585 | Config cfg( "qpe" ); | 589 | Config cfg( "qpe" ); |
586 | cfg.setGroup( "Volume" ); | 590 | cfg.setGroup( "Volume" ); |
587 | if ( percent < 0 ) | 591 | if ( percent < 0 ) |
588 | percent = cfg.readNumEntry( "Mic", 50 ); | 592 | percent = cfg.readNumEntry( "Mic", 50 ); |
589 | 593 | ||
590 | #ifndef QT_NO_SOUND | 594 | #ifndef QT_NO_SOUND |
591 | int fd = 0; | 595 | int fd = 0; |
592 | int mic = micMuted ? 0 : percent; | 596 | int mic = micMuted ? 0 : percent; |
597 | #ifdef QT_QWS_DEVFS | ||
598 | if ( ( fd = open( "/dev/sound/mixer", O_RDWR ) ) >= 0 ) { | ||
599 | #else | ||
593 | if ( ( fd = open( "/dev/mixer", O_RDWR ) ) >= 0 ) { | 600 | if ( ( fd = open( "/dev/mixer", O_RDWR ) ) >= 0 ) { |
601 | #endif | ||
594 | ioctl( fd, MIXER_WRITE( SOUND_MIXER_MIC ), &mic ); | 602 | ioctl( fd, MIXER_WRITE( SOUND_MIXER_MIC ), &mic ); |
595 | ::close( fd ); | 603 | ::close( fd ); |
596 | } | 604 | } |
597 | #endif | 605 | #endif |
598 | } | 606 | } |
599 | break; | 607 | break; |
600 | } | 608 | } |
601 | } | 609 | } |
602 | 610 | ||
603 | 611 | ||
604 | static void setBass( int t = 0, int percent = -1 ) | 612 | static void setBass( int t = 0, int percent = -1 ) |
605 | { | 613 | { |
606 | switch ( t ) { | 614 | switch ( t ) { |
607 | case 0: { | 615 | case 0: { |
608 | Config cfg( "qpe" ); | 616 | Config cfg( "qpe" ); |
609 | cfg.setGroup( "Volume" ); | 617 | cfg.setGroup( "Volume" ); |
610 | if ( percent < 0 ) | 618 | if ( percent < 0 ) |
611 | percent = cfg.readNumEntry( "BassPercent", 50 ); | 619 | percent = cfg.readNumEntry( "BassPercent", 50 ); |
612 | 620 | ||
613 | #ifndef QT_NO_SOUND | 621 | #ifndef QT_NO_SOUND |
614 | int fd = 0; | 622 | int fd = 0; |
615 | int bass = percent; | 623 | int bass = percent; |
624 | #ifdef QT_QWS_DEVFS | ||
625 | if ( ( fd = open( "/dev/sound/mixer", O_RDWR ) ) >= 0 ) { | ||
626 | #else | ||
616 | if ( ( fd = open( "/dev/mixer", O_RDWR ) ) >= 0 ) { | 627 | if ( ( fd = open( "/dev/mixer", O_RDWR ) ) >= 0 ) { |
628 | #endif | ||
617 | ioctl( fd, MIXER_WRITE( SOUND_MIXER_BASS ), &bass ); | 629 | ioctl( fd, MIXER_WRITE( SOUND_MIXER_BASS ), &bass ); |
618 | ::close( fd ); | 630 | ::close( fd ); |
619 | } | 631 | } |
620 | #endif | 632 | #endif |
621 | } | 633 | } |
622 | break; | 634 | break; |
623 | } | 635 | } |
624 | } | 636 | } |
625 | 637 | ||
626 | 638 | ||
627 | static void setTreble( int t = 0, int percent = -1 ) | 639 | static void setTreble( int t = 0, int percent = -1 ) |
628 | { | 640 | { |
629 | switch ( t ) { | 641 | switch ( t ) { |
630 | case 0: { | 642 | case 0: { |
631 | Config cfg( "qpe" ); | 643 | Config cfg( "qpe" ); |
632 | cfg.setGroup( "Volume" ); | 644 | cfg.setGroup( "Volume" ); |
633 | if ( percent < 0 ) | 645 | if ( percent < 0 ) |
634 | percent = cfg.readNumEntry( "TreblePercent", 50 ); | 646 | percent = cfg.readNumEntry( "TreblePercent", 50 ); |
635 | 647 | ||
636 | #ifndef QT_NO_SOUND | 648 | #ifndef QT_NO_SOUND |
637 | int fd = 0; | 649 | int fd = 0; |
638 | int treble = percent; | 650 | int treble = percent; |
651 | #ifdef QT_QWS_DEVFS | ||
652 | if ( ( fd = open( "/dev/sound/mixer", O_RDWR ) ) >= 0 ) { | ||
653 | #else | ||
639 | if ( ( fd = open( "/dev/mixer", O_RDWR ) ) >= 0 ) { | 654 | if ( ( fd = open( "/dev/mixer", O_RDWR ) ) >= 0 ) { |
655 | #endif | ||
640 | ioctl( fd, MIXER_WRITE( SOUND_MIXER_TREBLE ), &treble ); | 656 | ioctl( fd, MIXER_WRITE( SOUND_MIXER_TREBLE ), &treble ); |
641 | ::close( fd ); | 657 | ::close( fd ); |
642 | } | 658 | } |
643 | #endif | 659 | #endif |
644 | } | 660 | } |
645 | break; | 661 | break; |
646 | } | 662 | } |
647 | } | 663 | } |
648 | 664 | ||
649 | 665 | ||
650 | /** | 666 | /** |
651 | \class QPEApplication | 667 | \class QPEApplication |
652 | \brief The QPEApplication class implements various system services | 668 | \brief The QPEApplication class implements various system services |
653 | that are available to all Qtopia applications. | 669 | that are available to all Qtopia applications. |
654 | 670 | ||
655 | Simply by using QPEApplication instead of QApplication, a standard Qt | 671 | Simply by using QPEApplication instead of QApplication, a standard Qt |
656 | application becomes a Qtopia application. It automatically follows | 672 | application becomes a Qtopia application. It automatically follows |
657 | style changes, quits and raises, and in the | 673 | style changes, quits and raises, and in the |
658 | case of \link docwidget.html document-oriented\endlink applications, | 674 | case of \link docwidget.html document-oriented\endlink applications, |
659 | changes the currently displayed document in response to the environment. | 675 | changes the currently displayed document in response to the environment. |
660 | 676 | ||
661 | To create a \link docwidget.html document-oriented\endlink | 677 | To create a \link docwidget.html document-oriented\endlink |
662 | application use showMainDocumentWidget(); to create a | 678 | application use showMainDocumentWidget(); to create a |
663 | non-document-oriented application use showMainWidget(). The | 679 | non-document-oriented application use showMainWidget(). The |