author | mickeyl <mickeyl> | 2005-01-01 17:34:32 (UTC) |
---|---|---|
committer | mickeyl <mickeyl> | 2005-01-01 17:34:32 (UTC) |
commit | a62cf9bfb9814a6f5ce5aa8d59fbe5b0cfb8414a (patch) (side-by-side diff) | |
tree | ce7f0961815c32782c92009efc197a606b0ab86b | |
parent | 8467a23d6a7f4b52619b60462c8ba80d8a736a9e (diff) | |
download | opie-a62cf9bfb9814a6f5ce5aa8d59fbe5b0cfb8414a.zip opie-a62cf9bfb9814a6f5ce5aa8d59fbe5b0cfb8414a.tar.gz opie-a62cf9bfb9814a6f5ce5aa8d59fbe5b0cfb8414a.tar.bz2 |
clean up a bit and start w/ introducing SL-6000 support
-rw-r--r-- | libopie2/opiecore/device/odevice_zaurus.cpp | 124 | ||||
-rw-r--r-- | libopie2/opiecore/device/odevice_zaurus.h | 47 |
2 files changed, 85 insertions, 86 deletions
diff --git a/libopie2/opiecore/device/odevice_zaurus.cpp b/libopie2/opiecore/device/odevice_zaurus.cpp index ebe1949..1894e15 100644 --- a/libopie2/opiecore/device/odevice_zaurus.cpp +++ b/libopie2/opiecore/device/odevice_zaurus.cpp @@ -3,3 +3,3 @@ Copyright (C) The Opie Team <opie-devel@handhelds.org> - =. + =. Copyright (C) 2003-2005 Michael 'Mickey' Lauer <mickey@Vanille.de> .=l. @@ -109,3 +109,4 @@ struct z_button z_buttons_c700 [] = { // Zaurus-Poodle (PXA-model w/ 320x240 lcd, for SL5600) -// Zaurus-Corgi (PXA-model w/ 640x480 lcd, for C700, C750, C760, and C860) +// Zaurus-Corgi (PXA-model w/ 640x480 lcd, for C700, C750, C760, C860, C3000) +// Zaurus-Tosa (PXA-model w/ 480x640 lcd, for SL6000) // @@ -136,3 +137,3 @@ void Zaurus::init(const QString& cpu_info) - // Openzaurus sometimes uses the embedix kernel, check if this is one + // OpenZaurus sometimes uses the embedix kernel, check if this is one FILE *uname = popen("uname -r", "r"); @@ -169,3 +170,3 @@ void Zaurus::init(const QString& cpu_info) d->m_model = Model_Zaurus_SLC7x0; - d->m_modelstr = "Zaurus SL-C760"; + d->m_modelstr = "Zaurus SL-C760 or SL-C860"; } else if ( model == "SHARP Poodle" ) { @@ -185,4 +186,4 @@ void Zaurus::init(const QString& cpu_info) // set initial rotation - switch ( d->m_model ) { - case Model_Zaurus_SL6000: + switch( d->m_model ) { + case Model_Zaurus_SL6000: // fallthrough case Model_Zaurus_SLA300: @@ -194,4 +195,4 @@ void Zaurus::init(const QString& cpu_info) break; - case Model_Zaurus_SLB600: - case Model_Zaurus_SL5500: + case Model_Zaurus_SLB600: // fallthrough + case Model_Zaurus_SL5500: // fallthrough case Model_Zaurus_SL5000: @@ -242,72 +243,10 @@ void Zaurus::initButtons() -#include <unistd.h> -#include <fcntl.h> -#include <sys/ioctl.h> - -//#include <asm/sharp_char.h> // including kernel headers is evil ... - -#define SHARP_DEV_IOCTL_COMMAND_START 0x5680 - -#define SHARP_BUZZER_IOCTL_START (SHARP_DEV_IOCTL_COMMAND_START) -#define SHARP_BUZZER_MAKESOUND (SHARP_BUZZER_IOCTL_START) - -#define SHARP_BUZ_TOUCHSOUND 1 /* touch panel sound */ -#define SHARP_BUZ_KEYSOUND 2 /* key sound */ -#define SHARP_BUZ_SCHEDULE_ALARM 11 /* schedule alarm */ -/* --- for SHARP_BUZZER device --- */ - -//#define SHARP_BUZZER_IOCTL_START (SHARP_DEV_IOCTL_COMMAND_START) -//#define SHARP_BUZZER_MAKESOUND (SHARP_BUZZER_IOCTL_START) - -#define SHARP_BUZZER_SETVOLUME (SHARP_BUZZER_IOCTL_START+1) -#define SHARP_BUZZER_GETVOLUME (SHARP_BUZZER_IOCTL_START+2) -#define SHARP_BUZZER_ISSUPPORTED (SHARP_BUZZER_IOCTL_START+3) -#define SHARP_BUZZER_SETMUTE (SHARP_BUZZER_IOCTL_START+4) -#define SHARP_BUZZER_STOPSOUND (SHARP_BUZZER_IOCTL_START+5) - -//#define SHARP_BUZ_TOUCHSOUND 1 /* touch panel sound */ -//#define SHARP_BUZ_KEYSOUND 2 /* key sound */ - -//#define SHARP_PDA_ILLCLICKSOUND 3 /* illegal click */ -//#define SHARP_PDA_WARNSOUND 4 /* warning occurred */ -//#define SHARP_PDA_ERRORSOUND 5 /* error occurred */ -//#define SHARP_PDA_CRITICALSOUND 6 /* critical error occurred */ -//#define SHARP_PDA_SYSSTARTSOUND 7 /* system start */ -//#define SHARP_PDA_SYSTEMENDSOUND 8 /* system shutdown */ -//#define SHARP_PDA_APPSTART 9 /* application start */ -//#define SHARP_PDA_APPQUIT 10 /* application ends */ - -//#define SHARP_BUZ_SCHEDULE_ALARM 11 /* schedule alarm */ -//#define SHARP_BUZ_DAILY_ALARM 12 /* daily alarm */ -//#define SHARP_BUZ_GOT_PHONE_CALL 13 /* phone call sound */ -//#define SHARP_BUZ_GOT_MAIL 14 /* mail sound */ -// - -#define SHARP_LED_IOCTL_START (SHARP_DEV_IOCTL_COMMAND_START) -#define SHARP_LED_SETSTATUS (SHARP_LED_IOCTL_START+1) - -#define SHARP_IOCTL_GET_ROTATION 0x413c typedef struct sharp_led_status { -int which; /* select which LED status is wanted. */ -int status; /* set new led status if you call SHARP_LED_SETSTATUS */ + int which; /* select which LED status is wanted. */ + int status; /* set new led status if you call SHARP_LED_SETSTATUS */ } sharp_led_status; -#define SHARP_LED_MAIL_EXISTS 9 /* mail status (exists or not) */ - -#define LED_MAIL_NO_UNREAD_MAIL 0 /* for SHARP_LED_MAIL_EXISTS */ -#define LED_MAIL_NEWMAIL_EXISTS 1 /* for SHARP_LED_MAIL_EXISTS */ -#define LED_MAIL_UNREAD_MAIL_EX 2 /* for SHARP_LED_MAIL_EXISTS */ - -// #include <asm/sharp_apm.h> // including kernel headers is evil ... - -#define APM_IOCGEVTSRC OD_IOR( 'A', 203, int ) -#define APM_IOCSEVTSRC OD_IORW( 'A', 204, int ) -#define APM_EVT_POWER_BUTTON (1 << 0) - -#define FL_IOCTL_STEP_CONTRAST 100 - - -void Zaurus::buzzer ( int sound ) +void Zaurus::buzzer( int sound ) { @@ -318,3 +257,4 @@ void Zaurus::buzzer ( int sound ) if ( d->m_model == Model_Zaurus_SLC7x0 - || d->m_model == Model_Zaurus_SLB600 ){ + || d->m_model == Model_Zaurus_SLB600 + || d->m_model == Model_Zaurus_SL6000 ) { @@ -345,3 +285,3 @@ void Zaurus::buzzer ( int sound ) changeMixerForAlarm( 0, "/dev/sound/mixer", snd ); - snd-> play(); + snd->play(); } else if( !snd ) { @@ -361,3 +301,3 @@ void Zaurus::playAlarmSound() { - buzzer ( SHARP_BUZ_SCHEDULE_ALARM ); + buzzer( SHARP_BUZ_SCHEDULE_ALARM ); } @@ -366,3 +306,3 @@ void Zaurus::playTouchSound() { - buzzer ( SHARP_BUZ_TOUCHSOUND ); + buzzer( SHARP_BUZ_TOUCHSOUND ); } @@ -371,3 +311,3 @@ void Zaurus::playKeySound() { - buzzer ( SHARP_BUZ_KEYSOUND ); + buzzer( SHARP_BUZ_KEYSOUND ); } @@ -466,4 +406,3 @@ bool Zaurus::setSoftSuspend ( bool soft ) - -bool Zaurus::setDisplayBrightness ( int bright ) +bool Zaurus::setDisplayBrightness( int bright ) { @@ -486,3 +425,3 @@ bool Zaurus::setDisplayBrightness ( int bright ) char writeCommand[100]; - const int count = sprintf( writeCommand, "0x%x\n", value ); + const int count = sprintf( writeCommand, "%x\n", value ); res = ( ::write ( fd, writeCommand, count ) != -1 ); @@ -493,2 +432,17 @@ bool Zaurus::setDisplayBrightness ( int bright ) else + if ( d->m_model == Model_Zaurus_SL6000 ) + { + //qDebug( "using special treatment for devices with the tosa backlight interface" ); + // special treatment for devices with the tosa backlight interface + if (( fd = ::open ( "/proc/driver/fl/tosa-bl", O_WRONLY )) >= 0 ) + { + int value = ( bright == 1 ) ? 1 : static_cast<int>( bright * ( 17.0 / 255.0 ) ); + char writeCommand[100]; + const int count = sprintf( writeCommand, "%x\n", value ); + res = ( ::write ( fd, writeCommand, count ) != -1 ); + ::close ( fd ); + } + return res; + } + else { @@ -616,5 +570,11 @@ int Zaurus::displayBrightnessResolution() const if (m_embedix) - return d->m_model == Model_Zaurus_SLC7x0 ? 18 : 5; + { + if ( d->m_model == Model_Zaurus_SLC7x0 ) return 18; + if ( d->m_model == Model_Zaurus_SL6000 ) return 18; + return 5; + } else + { return 256; + } } diff --git a/libopie2/opiecore/device/odevice_zaurus.h b/libopie2/opiecore/device/odevice_zaurus.h index 76a40d6..dc21546 100644 --- a/libopie2/opiecore/device/odevice_zaurus.h +++ b/libopie2/opiecore/device/odevice_zaurus.h @@ -3,3 +3,3 @@ Copyright (C) The Opie Team <opie-devel@handhelds.org> - =. + =. Copyright (C) 2003-2005 Michael 'Mickey' Lauer <mickey@Vanille.de> .=l. @@ -39,5 +39,3 @@ // _IO and friends are only defined in kernel headers ... - #define OD_IOC(dir,type,number,size) (( dir << 30 ) | ( type << 8 ) | ( number ) | ( size << 16 )) - #define OD_IO(type,number) OD_IOC(0,type,number,0) @@ -47,2 +45,44 @@ +// Audio +#define SHARP_DEV_IOCTL_COMMAND_START 0x5680 + +#define SHARP_BUZZER_IOCTL_START (SHARP_DEV_IOCTL_COMMAND_START) +#define SHARP_BUZZER_MAKESOUND (SHARP_BUZZER_IOCTL_START) + +#define SHARP_BUZ_TOUCHSOUND 1 /* touch panel sound */ +#define SHARP_BUZ_KEYSOUND 2 /* key sound */ +#define SHARP_BUZ_SCHEDULE_ALARM 11 /* schedule alarm */ + +#define SHARP_BUZZER_SETVOLUME (SHARP_BUZZER_IOCTL_START+1) +#define SHARP_BUZZER_GETVOLUME (SHARP_BUZZER_IOCTL_START+2) +#define SHARP_BUZZER_ISSUPPORTED (SHARP_BUZZER_IOCTL_START+3) +#define SHARP_BUZZER_SETMUTE (SHARP_BUZZER_IOCTL_START+4) +#define SHARP_BUZZER_STOPSOUND (SHARP_BUZZER_IOCTL_START+5) + +// LED +#define SHARP_LED_IOCTL_START (SHARP_DEV_IOCTL_COMMAND_START) +#define SHARP_LED_SETSTATUS (SHARP_LED_IOCTL_START+1) +#define SHARP_LED_MAIL_EXISTS 9 /* mail status (exists or not) */ + +#define LED_MAIL_NO_UNREAD_MAIL 0 /* for SHARP_LED_MAIL_EXISTS */ +#define LED_MAIL_NEWMAIL_EXISTS 1 /* for SHARP_LED_MAIL_EXISTS */ +#define LED_MAIL_UNREAD_MAIL_EX 2 /* for SHARP_LED_MAIL_EXISTS */ + +// Rotation and Power Management +#define SHARP_IOCTL_GET_ROTATION 0x413c + +#define APM_IOCGEVTSRC OD_IOR( 'A', 203, int ) +#define APM_IOCSEVTSRC OD_IORW( 'A', 204, int ) +#define APM_EVT_POWER_BUTTON (1 << 0) + +// Brightness +#define FL_IOCTL_STEP_CONTRAST 100 + +#define CORGI_TOSA_BL_IOCTL_ON 1 +#define CORGI_TOSA_BL_IOCTL_OFF 2 +#define CORGI_TOSA_BL_IOCTL_STEP_CONTRAST 100 +#define CORGI_TOSA_BL_IOCTL_GET_STEP_CONTRAST 101 +#define CORGI_TOSA_BL_IOCTL_GET_STEP 102 +#define CORGI_BL_PROC_DEVICE corgi-bl +#define TOSA_BL_PROC_DEVICE tosa-bl @@ -53,3 +93,2 @@ class Zaurus : public ODevice { - protected: |