-rw-r--r-- | libopie/odevice.cpp | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/libopie/odevice.cpp b/libopie/odevice.cpp index 29c8ad2..713cc90 100644 --- a/libopie/odevice.cpp +++ b/libopie/odevice.cpp | |||
@@ -1085,131 +1085,143 @@ int iPAQ::lightSensorResolution ( ) const | |||
1085 | } | 1085 | } |
1086 | 1086 | ||
1087 | /************************************************** | 1087 | /************************************************** |
1088 | * | 1088 | * |
1089 | * Zaurus | 1089 | * Zaurus |
1090 | * | 1090 | * |
1091 | **************************************************/ | 1091 | **************************************************/ |
1092 | 1092 | ||
1093 | 1093 | ||
1094 | 1094 | ||
1095 | void Zaurus::init ( ) | 1095 | void Zaurus::init ( ) |
1096 | { | 1096 | { |
1097 | d-> m_vendorstr = "Sharp"; | 1097 | d-> m_vendorstr = "Sharp"; |
1098 | d-> m_vendor = Vendor_Sharp; | 1098 | d-> m_vendor = Vendor_Sharp; |
1099 | 1099 | ||
1100 | QFile f ( "/proc/filesystems" ); | 1100 | QFile f ( "/proc/filesystems" ); |
1101 | 1101 | ||
1102 | if ( f. open ( IO_ReadOnly ) && ( QTextStream ( &f ). read ( ). find ( "\tjffs2\n" ) >= 0 )) { | 1102 | if ( f. open ( IO_ReadOnly ) && ( QTextStream ( &f ). read ( ). find ( "\tjffs2\n" ) >= 0 )) { |
1103 | d-> m_vendorstr = "OpenZaurus Team"; | 1103 | d-> m_vendorstr = "OpenZaurus Team"; |
1104 | d-> m_systemstr = "OpenZaurus"; | 1104 | d-> m_systemstr = "OpenZaurus"; |
1105 | d-> m_system = System_OpenZaurus; | 1105 | d-> m_system = System_OpenZaurus; |
1106 | 1106 | ||
1107 | f. close ( ); | 1107 | f. close ( ); |
1108 | 1108 | ||
1109 | f. setName ( "/etc/oz_version" ); | 1109 | f. setName ( "/etc/oz_version" ); |
1110 | if ( f. open ( IO_ReadOnly )) { | 1110 | if ( f. open ( IO_ReadOnly )) { |
1111 | QTextStream ts ( &f ); | 1111 | QTextStream ts ( &f ); |
1112 | d-> m_sysverstr = ts. readLine ( );//. mid ( 10 ); | 1112 | d-> m_sysverstr = ts. readLine ( );//. mid ( 10 ); |
1113 | f. close ( ); | 1113 | f. close ( ); |
1114 | } | 1114 | } |
1115 | } | 1115 | } |
1116 | else { | 1116 | else { |
1117 | d-> m_systemstr = "Zaurus"; | 1117 | d-> m_systemstr = "Zaurus"; |
1118 | d-> m_system = System_Zaurus; | 1118 | d-> m_system = System_Zaurus; |
1119 | } | 1119 | } |
1120 | 1120 | ||
1121 | f. setName ( "/proc/deviceinfo/product" ); | 1121 | f. setName ( "/proc/deviceinfo/product" ); |
1122 | if ( f. open ( IO_ReadOnly ) ) { | 1122 | if ( f. open ( IO_ReadOnly ) ) { |
1123 | QTextStream ts ( &f ); | 1123 | QTextStream ts ( &f ); |
1124 | QString model = ts. readLine ( ); | 1124 | QString model = ts. readLine ( ); |
1125 | f. close ( ); | 1125 | f. close ( ); |
1126 | 1126 | ||
1127 | d-> m_modelstr = QString("Zaurus ") + model; | 1127 | d-> m_modelstr = QString("Zaurus ") + model; |
1128 | if ( model == "SL-5500" ) | 1128 | if ( model == "SL-5500" ) |
1129 | d-> m_model = Model_Zaurus_SL5500; | 1129 | d-> m_model = Model_Zaurus_SL5500; |
1130 | else if ( model == "SL-C700" ) | 1130 | else if ( model == "SL-C700" ) |
1131 | d-> m_model = Model_Zaurus_SLC700; | 1131 | d-> m_model = Model_Zaurus_SLC700; |
1132 | else if ( model == "SL-A300" ) | 1132 | else if ( model == "SL-A300" ) |
1133 | d-> m_model = Model_Zaurus_SLA300; | 1133 | d-> m_model = Model_Zaurus_SLA300; |
1134 | else if ( model == "SL-B600" || model == "SL-5600" ) | 1134 | else if ( model == "SL-B600" || model == "SL-5600" ) |
1135 | d-> m_model = Model_Zaurus_SLB600; | 1135 | d-> m_model = Model_Zaurus_SLB600; |
1136 | else | 1136 | else |
1137 | d-> m_model = Model_Zaurus_SL5000; | 1137 | d-> m_model = Model_Zaurus_SL5000; |
1138 | } | 1138 | } |
1139 | else { | 1139 | else { |
1140 | d-> m_model = Model_Zaurus_SL5000; | 1140 | d-> m_model = Model_Zaurus_SL5000; |
1141 | d-> m_modelstr = "Zaurus (model unknown)"; | 1141 | d-> m_modelstr = "Zaurus (model unknown)"; |
1142 | } | 1142 | } |
1143 | 1143 | ||
1144 | switch ( d-> m_model ) { | 1144 | switch ( d-> m_model ) { |
1145 | case Model_Zaurus_SLA300: | 1145 | case Model_Zaurus_SLA300: |
1146 | d-> m_rotation = Rot0; | 1146 | d-> m_rotation = Rot0; |
1147 | break; | 1147 | break; |
1148 | case Model_Zaurus_SLC700: | 1148 | case Model_Zaurus_SLC700: |
1149 | /* note for C700, we must check the display rotation | 1149 | bool flipstate = false; |
1150 | * sensor to set an appropriate value | 1150 | // Note: need to 1) set flipstate based on physical screen orientation |
1151 | */ | 1151 | // and 2) check to see if the user overrode the rotation direction |
1152 | // using appearance, and if so, remove that item from the Config to | ||
1153 | // ensure the rotate applet flips us back to the previous state. | ||
1154 | if ( flipstate ) { | ||
1155 | // 480x640 | ||
1156 | d-> m_rotation = Rot0; | ||
1157 | d-> m_direction = CW; | ||
1158 | } else { | ||
1159 | // 640x480 | ||
1160 | d-> m_rotation = Rot270; | ||
1161 | d-> m_direction = CCW; | ||
1162 | } | ||
1163 | break; | ||
1152 | case Model_Zaurus_SLB600: | 1164 | case Model_Zaurus_SLB600: |
1153 | case Model_Zaurus_SL5500: | 1165 | case Model_Zaurus_SL5500: |
1154 | case Model_Zaurus_SL5000: | 1166 | case Model_Zaurus_SL5000: |
1155 | default: | 1167 | default: |
1156 | d-> m_rotation = Rot270; | 1168 | d-> m_rotation = Rot270; |
1157 | break; | 1169 | break; |
1158 | } | 1170 | } |
1159 | m_leds [0] = Led_Off; | 1171 | m_leds [0] = Led_Off; |
1160 | } | 1172 | } |
1161 | 1173 | ||
1162 | void Zaurus::initButtons ( ) | 1174 | void Zaurus::initButtons ( ) |
1163 | { | 1175 | { |
1164 | if ( d-> m_buttons ) | 1176 | if ( d-> m_buttons ) |
1165 | return; | 1177 | return; |
1166 | 1178 | ||
1167 | d-> m_qwsserver = qApp ? ( qApp-> type ( ) == QApplication::GuiServer ) : false; | 1179 | d-> m_qwsserver = qApp ? ( qApp-> type ( ) == QApplication::GuiServer ) : false; |
1168 | 1180 | ||
1169 | d-> m_buttons = new QValueList <ODeviceButton>; | 1181 | d-> m_buttons = new QValueList <ODeviceButton>; |
1170 | 1182 | ||
1171 | for ( uint i = 0; i < ( sizeof( z_buttons ) / sizeof( z_button )); i++ ) { | 1183 | for ( uint i = 0; i < ( sizeof( z_buttons ) / sizeof( z_button )); i++ ) { |
1172 | z_button *zb = z_buttons + i; | 1184 | z_button *zb = z_buttons + i; |
1173 | ODeviceButton b; | 1185 | ODeviceButton b; |
1174 | 1186 | ||
1175 | b. setKeycode ( zb-> code ); | 1187 | b. setKeycode ( zb-> code ); |
1176 | b. setUserText ( QObject::tr ( "Button", zb-> utext )); | 1188 | b. setUserText ( QObject::tr ( "Button", zb-> utext )); |
1177 | b. setPixmap ( Resource::loadPixmap ( zb-> pix )); | 1189 | b. setPixmap ( Resource::loadPixmap ( zb-> pix )); |
1178 | b. setFactoryPresetPressedAction ( OQCopMessage ( makeChannel ( zb-> fpressedservice ), zb-> fpressedaction )); | 1190 | b. setFactoryPresetPressedAction ( OQCopMessage ( makeChannel ( zb-> fpressedservice ), zb-> fpressedaction )); |
1179 | b. setFactoryPresetHeldAction ( OQCopMessage ( makeChannel ( zb-> fheldservice ), zb-> fheldaction )); | 1191 | b. setFactoryPresetHeldAction ( OQCopMessage ( makeChannel ( zb-> fheldservice ), zb-> fheldaction )); |
1180 | 1192 | ||
1181 | d-> m_buttons-> append ( b ); | 1193 | d-> m_buttons-> append ( b ); |
1182 | } | 1194 | } |
1183 | 1195 | ||
1184 | reloadButtonMapping ( ); | 1196 | reloadButtonMapping ( ); |
1185 | 1197 | ||
1186 | QCopChannel *sysch = new QCopChannel ( "QPE/System", this ); | 1198 | QCopChannel *sysch = new QCopChannel ( "QPE/System", this ); |
1187 | connect ( sysch, SIGNAL( received( const QCString &, const QByteArray & )), this, SLOT( systemMessage ( const QCString &, const QByteArray & ))); | 1199 | connect ( sysch, SIGNAL( received( const QCString &, const QByteArray & )), this, SLOT( systemMessage ( const QCString &, const QByteArray & ))); |
1188 | } | 1200 | } |
1189 | 1201 | ||
1190 | #include <unistd.h> | 1202 | #include <unistd.h> |
1191 | #include <fcntl.h> | 1203 | #include <fcntl.h> |
1192 | #include <sys/ioctl.h> | 1204 | #include <sys/ioctl.h> |
1193 | 1205 | ||
1194 | //#include <asm/sharp_char.h> // including kernel headers is evil ... | 1206 | //#include <asm/sharp_char.h> // including kernel headers is evil ... |
1195 | 1207 | ||
1196 | #define SHARP_DEV_IOCTL_COMMAND_START 0x5680 | 1208 | #define SHARP_DEV_IOCTL_COMMAND_START 0x5680 |
1197 | 1209 | ||
1198 | #defineSHARP_BUZZER_IOCTL_START (SHARP_DEV_IOCTL_COMMAND_START) | 1210 | #defineSHARP_BUZZER_IOCTL_START (SHARP_DEV_IOCTL_COMMAND_START) |
1199 | #define SHARP_BUZZER_MAKESOUND (SHARP_BUZZER_IOCTL_START) | 1211 | #define SHARP_BUZZER_MAKESOUND (SHARP_BUZZER_IOCTL_START) |
1200 | 1212 | ||
1201 | #define SHARP_BUZ_TOUCHSOUND 1 /* touch panel sound */ | 1213 | #define SHARP_BUZ_TOUCHSOUND 1 /* touch panel sound */ |
1202 | #define SHARP_BUZ_KEYSOUND 2 /* key sound */ | 1214 | #define SHARP_BUZ_KEYSOUND 2 /* key sound */ |
1203 | #define SHARP_BUZ_SCHEDULE_ALARM 11 /* schedule alarm */ | 1215 | #define SHARP_BUZ_SCHEDULE_ALARM 11 /* schedule alarm */ |
1204 | 1216 | ||
1205 | /* --- for SHARP_BUZZER device --- */ | 1217 | /* --- for SHARP_BUZZER device --- */ |
1206 | 1218 | ||
1207 | //#defineSHARP_BUZZER_IOCTL_START (SHARP_DEV_IOCTL_COMMAND_START) | 1219 | //#defineSHARP_BUZZER_IOCTL_START (SHARP_DEV_IOCTL_COMMAND_START) |
1208 | //#define SHARP_BUZZER_MAKESOUND (SHARP_BUZZER_IOCTL_START) | 1220 | //#define SHARP_BUZZER_MAKESOUND (SHARP_BUZZER_IOCTL_START) |
1209 | 1221 | ||
1210 | #define SHARP_BUZZER_SETVOLUME (SHARP_BUZZER_IOCTL_START+1) | 1222 | #define SHARP_BUZZER_SETVOLUME (SHARP_BUZZER_IOCTL_START+1) |
1211 | #define SHARP_BUZZER_GETVOLUME (SHARP_BUZZER_IOCTL_START+2) | 1223 | #define SHARP_BUZZER_GETVOLUME (SHARP_BUZZER_IOCTL_START+2) |
1212 | #define SHARP_BUZZER_ISSUPPORTED (SHARP_BUZZER_IOCTL_START+3) | 1224 | #define SHARP_BUZZER_ISSUPPORTED (SHARP_BUZZER_IOCTL_START+3) |
1213 | #define SHARP_BUZZER_SETMUTE (SHARP_BUZZER_IOCTL_START+4) | 1225 | #define SHARP_BUZZER_SETMUTE (SHARP_BUZZER_IOCTL_START+4) |
1214 | #define SHARP_BUZZER_STOPSOUND (SHARP_BUZZER_IOCTL_START+5) | 1226 | #define SHARP_BUZZER_STOPSOUND (SHARP_BUZZER_IOCTL_START+5) |
1215 | 1227 | ||