summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie/odevice.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/libopie/odevice.cpp b/libopie/odevice.cpp
index 62e3569..7d862cd 100644
--- a/libopie/odevice.cpp
+++ b/libopie/odevice.cpp
@@ -1115,328 +1115,328 @@ int iPAQ::lightSensorResolution ( ) const
1115void Zaurus::init ( ) 1115void Zaurus::init ( )
1116{ 1116{
1117 d-> m_vendorstr = "Sharp"; 1117 d-> m_vendorstr = "Sharp";
1118 d-> m_vendor = Vendor_Sharp; 1118 d-> m_vendor = Vendor_Sharp;
1119 1119
1120 QFile f ( "/proc/filesystems" ); 1120 QFile f ( "/proc/filesystems" );
1121 QString model; 1121 QString model;
1122 1122
1123 if ( f. open ( IO_ReadOnly ) && ( QTextStream ( &f ). read ( ). find ( "\tjffs2\n" ) >= 0 )) { 1123 if ( f. open ( IO_ReadOnly ) && ( QTextStream ( &f ). read ( ). find ( "\tjffs2\n" ) >= 0 )) {
1124 d-> m_vendorstr = "OpenZaurus Team"; 1124 d-> m_vendorstr = "OpenZaurus Team";
1125 d-> m_systemstr = "OpenZaurus"; 1125 d-> m_systemstr = "OpenZaurus";
1126 d-> m_system = System_OpenZaurus; 1126 d-> m_system = System_OpenZaurus;
1127 1127
1128 f. close ( ); 1128 f. close ( );
1129 1129
1130 f. setName ( "/etc/oz_version" ); 1130 f. setName ( "/etc/oz_version" );
1131 if ( f. open ( IO_ReadOnly )) { 1131 if ( f. open ( IO_ReadOnly )) {
1132 QTextStream ts ( &f ); 1132 QTextStream ts ( &f );
1133 d-> m_sysverstr = ts. readLine ( );//. mid ( 10 ); 1133 d-> m_sysverstr = ts. readLine ( );//. mid ( 10 );
1134 f. close ( ); 1134 f. close ( );
1135 } 1135 }
1136 } 1136 }
1137 else { 1137 else {
1138 d-> m_systemstr = "Zaurus"; 1138 d-> m_systemstr = "Zaurus";
1139 d-> m_system = System_Zaurus; 1139 d-> m_system = System_Zaurus;
1140 } 1140 }
1141 1141
1142 f. setName ( "/proc/cpuinfo" ); 1142 f. setName ( "/proc/cpuinfo" );
1143 if ( f. open ( IO_ReadOnly ) ) { 1143 if ( f. open ( IO_ReadOnly ) ) {
1144 QTextStream ts ( &f ); 1144 QTextStream ts ( &f );
1145 QString line; 1145 QString line;
1146 while( line = ts. readLine ( ) ) { 1146 while( line = ts. readLine ( ) ) {
1147 if ( line. left ( 8 ) == "Hardware" ) 1147 if ( line. left ( 8 ) == "Hardware" )
1148 break; 1148 break;
1149 } 1149 }
1150 int loc = line. find ( ":" ); 1150 int loc = line. find ( ":" );
1151 if ( loc != -1 ) 1151 if ( loc != -1 )
1152 model = line. mid ( loc + 2 ). simplifyWhiteSpace( ); 1152 model = line. mid ( loc + 2 ). simplifyWhiteSpace( );
1153 } 1153 }
1154 1154
1155 if ( model == "SHARP Corgi" ) { 1155 if ( model == "SHARP Corgi" ) {
1156 d-> m_model = Model_Zaurus_SLC700; 1156 d-> m_model = Model_Zaurus_SLC700;
1157 d-> m_modelstr = "Zaurus SL-C700"; 1157 d-> m_modelstr = "Zaurus SL-C700";
1158 } else if ( model == "SHARP Poodle" ) { 1158 } else if ( model == "SHARP Poodle" ) {
1159 d-> m_model = Model_Zaurus_SLB600; 1159 d-> m_model = Model_Zaurus_SLB600;
1160 d-> m_modelstr = "Zaurus SL-B500 or SL-5600"; 1160 d-> m_modelstr = "Zaurus SL-B500 or SL-5600";
1161 } else if ( model = "Sharp-Collie" ) { 1161 } else if ( model = "Sharp-Collie" ) {
1162 d-> m_model = Model_Zaurus_SL5500; 1162 d-> m_model = Model_Zaurus_SL5500;
1163 d-> m_modelstr = "Zaurus SL-5500 or SL-5000d"; 1163 d-> m_modelstr = "Zaurus SL-5500 or SL-5000d";
1164 } else { 1164 } else {
1165 d-> m_model = Model_Zaurus_SL5500; 1165 d-> m_model = Model_Zaurus_SL5500;
1166 d-> m_modelstr = "Zaurus (Model unknown)"; 1166 d-> m_modelstr = "Zaurus (Model unknown)";
1167 } 1167 }
1168 1168
1169 bool flipstate = false; 1169 bool flipstate = false;
1170 switch ( d-> m_model ) { 1170 switch ( d-> m_model ) {
1171 case Model_Zaurus_SLA300: 1171 case Model_Zaurus_SLA300:
1172 d-> m_rotation = Rot0; 1172 d-> m_rotation = Rot0;
1173 break; 1173 break;
1174 case Model_Zaurus_SLC700: 1174 case Model_Zaurus_SLC700:
1175 // Note: need to 1) set flipstate based on physical screen orientation 1175 // Note: need to 1) set flipstate based on physical screen orientation
1176 // and 2) check to see if the user overrode the rotation direction 1176 // and 2) check to see if the user overrode the rotation direction
1177 // using appearance, and if so, remove that item from the Config to 1177 // using appearance, and if so, remove that item from the Config to
1178 // ensure the rotate applet flips us back to the previous state. 1178 // ensure the rotate applet flips us back to the previous state.
1179 if ( flipstate ) { 1179 if ( flipstate ) {
1180 // 480x640 1180 // 480x640
1181 d-> m_rotation = Rot0; 1181 d-> m_rotation = Rot0;
1182 d-> m_direction = CW; 1182 d-> m_direction = CW;
1183 } else { 1183 } else {
1184 // 640x480 1184 // 640x480
1185 d-> m_rotation = Rot270; 1185 d-> m_rotation = Rot270;
1186 d-> m_direction = CCW; 1186 d-> m_direction = CCW;
1187 } 1187 }
1188 break; 1188 break;
1189 case Model_Zaurus_SLB600: 1189 case Model_Zaurus_SLB600:
1190 case Model_Zaurus_SL5500: 1190 case Model_Zaurus_SL5500:
1191 case Model_Zaurus_SL5000: 1191 case Model_Zaurus_SL5000:
1192 default: 1192 default:
1193 d-> m_rotation = Rot270; 1193 d-> m_rotation = Rot270;
1194 break; 1194 break;
1195 } 1195 }
1196 m_leds [0] = Led_Off; 1196 m_leds [0] = Led_Off;
1197} 1197}
1198 1198
1199void Zaurus::initButtons ( ) 1199void Zaurus::initButtons ( )
1200{ 1200{
1201 if ( d-> m_buttons ) 1201 if ( d-> m_buttons )
1202 return; 1202 return;
1203 1203
1204 d-> m_buttons = new QValueList <ODeviceButton>; 1204 d-> m_buttons = new QValueList <ODeviceButton>;
1205 1205
1206 struct z_button * pz_buttons; 1206 struct z_button * pz_buttons;
1207 int buttoncount; 1207 int buttoncount;
1208 switch ( d-> m_model ) { 1208 switch ( d-> m_model ) {
1209 case Model_Zaurus_SLC700: 1209 case Model_Zaurus_SLC700:
1210 pz_buttons = z_buttons_c700; 1210 pz_buttons = z_buttons_c700;
1211 buttoncount = ARRAY_SIZE(z_buttons_c700); 1211 buttoncount = ARRAY_SIZE(z_buttons_c700);
1212 break; 1212 break;
1213 default: 1213 default:
1214 pz_buttons = z_buttons; 1214 pz_buttons = z_buttons;
1215 buttoncount = ARRAY_SIZE(z_buttons); 1215 buttoncount = ARRAY_SIZE(z_buttons);
1216 break; 1216 break;
1217 } 1217 }
1218 1218
1219 for ( int i = 0; i < buttoncount; i++ ) { 1219 for ( int i = 0; i < buttoncount; i++ ) {
1220 struct z_button *zb = pz_buttons + i; 1220 struct z_button *zb = pz_buttons + i;
1221 ODeviceButton b; 1221 ODeviceButton b;
1222 1222
1223 b. setKeycode ( zb-> code ); 1223 b. setKeycode ( zb-> code );
1224 b. setUserText ( QObject::tr ( "Button", zb-> utext )); 1224 b. setUserText ( QObject::tr ( "Button", zb-> utext ));
1225 b. setPixmap ( Resource::loadPixmap ( zb-> pix )); 1225 b. setPixmap ( Resource::loadPixmap ( zb-> pix ));
1226 b. setFactoryPresetPressedAction ( OQCopMessage ( makeChannel ( zb-> fpressedservice ), zb-> fpressedaction )); 1226 b. setFactoryPresetPressedAction ( OQCopMessage ( makeChannel ( zb-> fpressedservice ), zb-> fpressedaction ));
1227 b. setFactoryPresetHeldAction ( OQCopMessage ( makeChannel ( zb-> fheldservice ), zb-> fheldaction )); 1227 b. setFactoryPresetHeldAction ( OQCopMessage ( makeChannel ( zb-> fheldservice ), zb-> fheldaction ));
1228 1228
1229 d-> m_buttons-> append ( b ); 1229 d-> m_buttons-> append ( b );
1230 } 1230 }
1231 1231
1232 reloadButtonMapping ( ); 1232 reloadButtonMapping ( );
1233 1233
1234 QCopChannel *sysch = new QCopChannel ( "QPE/System", this ); 1234 QCopChannel *sysch = new QCopChannel ( "QPE/System", this );
1235 connect ( sysch, SIGNAL( received( const QCString &, const QByteArray & )), this, SLOT( systemMessage ( const QCString &, const QByteArray & ))); 1235 connect ( sysch, SIGNAL( received( const QCString &, const QByteArray & )), this, SLOT( systemMessage ( const QCString &, const QByteArray & )));
1236} 1236}
1237 1237
1238#include <unistd.h> 1238#include <unistd.h>
1239#include <fcntl.h> 1239#include <fcntl.h>
1240#include <sys/ioctl.h> 1240#include <sys/ioctl.h>
1241 1241
1242//#include <asm/sharp_char.h> // including kernel headers is evil ... 1242//#include <asm/sharp_char.h> // including kernel headers is evil ...
1243 1243
1244#define SHARP_DEV_IOCTL_COMMAND_START 0x5680 1244#define SHARP_DEV_IOCTL_COMMAND_START 0x5680
1245 1245
1246 #defineSHARP_BUZZER_IOCTL_START (SHARP_DEV_IOCTL_COMMAND_START) 1246 #defineSHARP_BUZZER_IOCTL_START (SHARP_DEV_IOCTL_COMMAND_START)
1247#define SHARP_BUZZER_MAKESOUND (SHARP_BUZZER_IOCTL_START) 1247#define SHARP_BUZZER_MAKESOUND (SHARP_BUZZER_IOCTL_START)
1248 1248
1249#define SHARP_BUZ_TOUCHSOUND 1 /* touch panel sound */ 1249#define SHARP_BUZ_TOUCHSOUND 1 /* touch panel sound */
1250#define SHARP_BUZ_KEYSOUND 2 /* key sound */ 1250#define SHARP_BUZ_KEYSOUND 2 /* key sound */
1251#define SHARP_BUZ_SCHEDULE_ALARM 11 /* schedule alarm */ 1251#define SHARP_BUZ_SCHEDULE_ALARM 11 /* schedule alarm */
1252 1252
1253/* --- for SHARP_BUZZER device --- */ 1253/* --- for SHARP_BUZZER device --- */
1254 1254
1255 //#defineSHARP_BUZZER_IOCTL_START (SHARP_DEV_IOCTL_COMMAND_START) 1255 //#defineSHARP_BUZZER_IOCTL_START (SHARP_DEV_IOCTL_COMMAND_START)
1256//#define SHARP_BUZZER_MAKESOUND (SHARP_BUZZER_IOCTL_START) 1256//#define SHARP_BUZZER_MAKESOUND (SHARP_BUZZER_IOCTL_START)
1257 1257
1258#define SHARP_BUZZER_SETVOLUME (SHARP_BUZZER_IOCTL_START+1) 1258#define SHARP_BUZZER_SETVOLUME (SHARP_BUZZER_IOCTL_START+1)
1259#define SHARP_BUZZER_GETVOLUME (SHARP_BUZZER_IOCTL_START+2) 1259#define SHARP_BUZZER_GETVOLUME (SHARP_BUZZER_IOCTL_START+2)
1260#define SHARP_BUZZER_ISSUPPORTED (SHARP_BUZZER_IOCTL_START+3) 1260#define SHARP_BUZZER_ISSUPPORTED (SHARP_BUZZER_IOCTL_START+3)
1261#define SHARP_BUZZER_SETMUTE (SHARP_BUZZER_IOCTL_START+4) 1261#define SHARP_BUZZER_SETMUTE (SHARP_BUZZER_IOCTL_START+4)
1262#define SHARP_BUZZER_STOPSOUND (SHARP_BUZZER_IOCTL_START+5) 1262#define SHARP_BUZZER_STOPSOUND (SHARP_BUZZER_IOCTL_START+5)
1263 1263
1264//#define SHARP_BUZ_TOUCHSOUND 1 /* touch panel sound */ 1264//#define SHARP_BUZ_TOUCHSOUND 1 /* touch panel sound */
1265//#define SHARP_BUZ_KEYSOUND 2 /* key sound */ 1265//#define SHARP_BUZ_KEYSOUND 2 /* key sound */
1266 1266
1267//#define SHARP_PDA_ILLCLICKSOUND 3 /* illegal click */ 1267//#define SHARP_PDA_ILLCLICKSOUND 3 /* illegal click */
1268//#define SHARP_PDA_WARNSOUND 4 /* warning occurred */ 1268//#define SHARP_PDA_WARNSOUND 4 /* warning occurred */
1269//#define SHARP_PDA_ERRORSOUND 5 /* error occurred */ 1269//#define SHARP_PDA_ERRORSOUND 5 /* error occurred */
1270//#define SHARP_PDA_CRITICALSOUND 6 /* critical error occurred */ 1270//#define SHARP_PDA_CRITICALSOUND 6 /* critical error occurred */
1271//#define SHARP_PDA_SYSSTARTSOUND 7 /* system start */ 1271//#define SHARP_PDA_SYSSTARTSOUND 7 /* system start */
1272//#define SHARP_PDA_SYSTEMENDSOUND 8 /* system shutdown */ 1272//#define SHARP_PDA_SYSTEMENDSOUND 8 /* system shutdown */
1273//#define SHARP_PDA_APPSTART 9 /* application start */ 1273//#define SHARP_PDA_APPSTART 9 /* application start */
1274//#define SHARP_PDA_APPQUIT 10 /* application ends */ 1274//#define SHARP_PDA_APPQUIT 10 /* application ends */
1275 1275
1276//#define SHARP_BUZ_SCHEDULE_ALARM 11 /* schedule alarm */ 1276//#define SHARP_BUZ_SCHEDULE_ALARM 11 /* schedule alarm */
1277//#define SHARP_BUZ_DAILY_ALARM 12 /* daily alarm */ 1277//#define SHARP_BUZ_DAILY_ALARM 12 /* daily alarm */
1278//#define SHARP_BUZ_GOT_PHONE_CALL 13 /* phone call sound */ 1278//#define SHARP_BUZ_GOT_PHONE_CALL 13 /* phone call sound */
1279//#define SHARP_BUZ_GOT_MAIL 14 /* mail sound */ 1279//#define SHARP_BUZ_GOT_MAIL 14 /* mail sound */
1280// 1280//
1281 1281
1282 #defineSHARP_LED_IOCTL_START (SHARP_DEV_IOCTL_COMMAND_START) 1282 #defineSHARP_LED_IOCTL_START (SHARP_DEV_IOCTL_COMMAND_START)
1283#define SHARP_LED_SETSTATUS (SHARP_LED_IOCTL_START+1) 1283#define SHARP_LED_SETSTATUS (SHARP_LED_IOCTL_START+1)
1284 1284
1285typedef struct sharp_led_status { 1285typedef struct sharp_led_status {
1286 int which; /* select which LED status is wanted. */ 1286 int which; /* select which LED status is wanted. */
1287 int status; /* set new led status if you call SHARP_LED_SETSTATUS */ 1287 int status; /* set new led status if you call SHARP_LED_SETSTATUS */
1288} sharp_led_status; 1288} sharp_led_status;
1289 1289
1290#define SHARP_LED_MAIL_EXISTS 9 /* mail status (exists or not) */ 1290#define SHARP_LED_MAIL_EXISTS 9 /* mail status (exists or not) */
1291 1291
1292#define LED_MAIL_NO_UNREAD_MAIL 0 /* for SHARP_LED_MAIL_EXISTS */ 1292#define LED_MAIL_NO_UNREAD_MAIL 0 /* for SHARP_LED_MAIL_EXISTS */
1293#define LED_MAIL_NEWMAIL_EXISTS 1 /* for SHARP_LED_MAIL_EXISTS */ 1293#define LED_MAIL_NEWMAIL_EXISTS 1 /* for SHARP_LED_MAIL_EXISTS */
1294#define LED_MAIL_UNREAD_MAIL_EX 2 /* for SHARP_LED_MAIL_EXISTS */ 1294#define LED_MAIL_UNREAD_MAIL_EX 2 /* for SHARP_LED_MAIL_EXISTS */
1295 1295
1296// #include <asm/sharp_apm.h> // including kernel headers is evil ... 1296// #include <asm/sharp_apm.h> // including kernel headers is evil ...
1297 1297
1298#define APM_IOCGEVTSRC OD_IOR( 'A', 203, int ) 1298#define APM_IOCGEVTSRC OD_IOR( 'A', 203, int )
1299#define APM_IOCSEVTSRC OD_IORW( 'A', 204, int ) 1299#define APM_IOCSEVTSRC OD_IORW( 'A', 204, int )
1300#define APM_EVT_POWER_BUTTON (1 << 0) 1300#define APM_EVT_POWER_BUTTON (1 << 0)
1301 1301
1302#define FL_IOCTL_STEP_CONTRAST 100 1302#define FL_IOCTL_STEP_CONTRAST 100
1303 1303
1304 1304
1305void Zaurus::buzzer ( int sound ) 1305void Zaurus::buzzer ( int sound )
1306{ 1306{
1307 static int fd = ::open ( "/dev/sharp_buz", O_WRONLY|O_NONBLOCK ); 1307 int fd = ::open ( "/dev/sharp_buz", O_WRONLY|O_NONBLOCK );
1308 1308
1309 if ( fd >= 0 ) { 1309 if ( fd >= 0 ) {
1310 ::ioctl ( fd, SHARP_BUZZER_MAKESOUND, sound ); 1310 ::ioctl ( fd, SHARP_BUZZER_MAKESOUND, sound );
1311 ::close ( fd ); 1311 ::close ( fd );
1312 } 1312 }
1313} 1313}
1314 1314
1315 1315
1316void Zaurus::alarmSound ( ) 1316void Zaurus::alarmSound ( )
1317{ 1317{
1318 buzzer ( SHARP_BUZ_SCHEDULE_ALARM ); 1318 buzzer ( SHARP_BUZ_SCHEDULE_ALARM );
1319} 1319}
1320 1320
1321void Zaurus::touchSound ( ) 1321void Zaurus::touchSound ( )
1322{ 1322{
1323 buzzer ( SHARP_BUZ_TOUCHSOUND ); 1323 buzzer ( SHARP_BUZ_TOUCHSOUND );
1324} 1324}
1325 1325
1326void Zaurus::keySound ( ) 1326void Zaurus::keySound ( )
1327{ 1327{
1328 buzzer ( SHARP_BUZ_KEYSOUND ); 1328 buzzer ( SHARP_BUZ_KEYSOUND );
1329} 1329}
1330 1330
1331 1331
1332QValueList <OLed> Zaurus::ledList ( ) const 1332QValueList <OLed> Zaurus::ledList ( ) const
1333{ 1333{
1334 QValueList <OLed> vl; 1334 QValueList <OLed> vl;
1335 vl << Led_Mail; 1335 vl << Led_Mail;
1336 return vl; 1336 return vl;
1337} 1337}
1338 1338
1339QValueList <OLedState> Zaurus::ledStateList ( OLed l ) const 1339QValueList <OLedState> Zaurus::ledStateList ( OLed l ) const
1340{ 1340{
1341 QValueList <OLedState> vl; 1341 QValueList <OLedState> vl;
1342 1342
1343 if ( l == Led_Mail ) 1343 if ( l == Led_Mail )
1344 vl << Led_Off << Led_On << Led_BlinkSlow; 1344 vl << Led_Off << Led_On << Led_BlinkSlow;
1345 return vl; 1345 return vl;
1346} 1346}
1347 1347
1348OLedState Zaurus::ledState ( OLed which ) const 1348OLedState Zaurus::ledState ( OLed which ) const
1349{ 1349{
1350 if ( which == Led_Mail ) 1350 if ( which == Led_Mail )
1351 return m_leds [0]; 1351 return m_leds [0];
1352 else 1352 else
1353 return Led_Off; 1353 return Led_Off;
1354} 1354}
1355 1355
1356bool Zaurus::setLedState ( OLed which, OLedState st ) 1356bool Zaurus::setLedState ( OLed which, OLedState st )
1357{ 1357{
1358 static int fd = ::open ( "/dev/sharp_led", O_RDWR|O_NONBLOCK ); 1358 static int fd = ::open ( "/dev/sharp_led", O_RDWR|O_NONBLOCK );
1359 1359
1360 if ( which == Led_Mail ) { 1360 if ( which == Led_Mail ) {
1361 if ( fd >= 0 ) { 1361 if ( fd >= 0 ) {
1362 struct sharp_led_status leds; 1362 struct sharp_led_status leds;
1363 ::memset ( &leds, 0, sizeof( leds )); 1363 ::memset ( &leds, 0, sizeof( leds ));
1364 leds. which = SHARP_LED_MAIL_EXISTS; 1364 leds. which = SHARP_LED_MAIL_EXISTS;
1365 bool ok = true; 1365 bool ok = true;
1366 1366
1367 switch ( st ) { 1367 switch ( st ) {
1368 case Led_Off : leds. status = LED_MAIL_NO_UNREAD_MAIL; break; 1368 case Led_Off : leds. status = LED_MAIL_NO_UNREAD_MAIL; break;
1369 case Led_On : leds. status = LED_MAIL_NEWMAIL_EXISTS; break; 1369 case Led_On : leds. status = LED_MAIL_NEWMAIL_EXISTS; break;
1370 case Led_BlinkSlow: leds. status = LED_MAIL_UNREAD_MAIL_EX; break; 1370 case Led_BlinkSlow: leds. status = LED_MAIL_UNREAD_MAIL_EX; break;
1371 default : ok = false; 1371 default : ok = false;
1372 } 1372 }
1373 1373
1374 if ( ok && ( ::ioctl ( fd, SHARP_LED_SETSTATUS, &leds ) >= 0 )) { 1374 if ( ok && ( ::ioctl ( fd, SHARP_LED_SETSTATUS, &leds ) >= 0 )) {
1375 m_leds [0] = st; 1375 m_leds [0] = st;
1376 return true; 1376 return true;
1377 } 1377 }
1378 } 1378 }
1379 } 1379 }
1380 return false; 1380 return false;
1381} 1381}
1382 1382
1383bool Zaurus::setSoftSuspend ( bool soft ) 1383bool Zaurus::setSoftSuspend ( bool soft )
1384{ 1384{
1385 bool res = false; 1385 bool res = false;
1386 int fd; 1386 int fd;
1387 1387
1388 if ((( fd = ::open ( "/dev/apm_bios", O_RDWR )) >= 0 ) || 1388 if ((( fd = ::open ( "/dev/apm_bios", O_RDWR )) >= 0 ) ||
1389 (( fd = ::open ( "/dev/misc/apm_bios",O_RDWR )) >= 0 )) { 1389 (( fd = ::open ( "/dev/misc/apm_bios",O_RDWR )) >= 0 )) {
1390 1390
1391 int sources = ::ioctl ( fd, APM_IOCGEVTSRC, 0 ); // get current event sources 1391 int sources = ::ioctl ( fd, APM_IOCGEVTSRC, 0 ); // get current event sources
1392 1392
1393 if ( sources >= 0 ) { 1393 if ( sources >= 0 ) {
1394 if ( soft ) 1394 if ( soft )
1395 sources &= ~APM_EVT_POWER_BUTTON; 1395 sources &= ~APM_EVT_POWER_BUTTON;
1396 else 1396 else
1397 sources |= APM_EVT_POWER_BUTTON; 1397 sources |= APM_EVT_POWER_BUTTON;
1398 1398
1399 if ( ::ioctl ( fd, APM_IOCSEVTSRC, sources ) >= 0 ) // set new event sources 1399 if ( ::ioctl ( fd, APM_IOCSEVTSRC, sources ) >= 0 ) // set new event sources
1400 res = true; 1400 res = true;
1401 else 1401 else
1402 perror ( "APM_IOCGEVTSRC" ); 1402 perror ( "APM_IOCGEVTSRC" );
1403 } 1403 }
1404 else 1404 else
1405 perror ( "APM_IOCGEVTSRC" ); 1405 perror ( "APM_IOCGEVTSRC" );
1406 1406
1407 ::close ( fd ); 1407 ::close ( fd );
1408 } 1408 }
1409 else 1409 else
1410 perror ( "/dev/apm_bios or /dev/misc/apm_bios" ); 1410 perror ( "/dev/apm_bios or /dev/misc/apm_bios" );
1411 1411
1412 return res; 1412 return res;
1413} 1413}
1414 1414
1415 1415
1416bool Zaurus::setDisplayBrightness ( int bright ) 1416bool Zaurus::setDisplayBrightness ( int bright )
1417{ 1417{
1418 bool res = false; 1418 bool res = false;
1419 int fd; 1419 int fd;
1420 1420
1421 if ( bright > 255 ) 1421 if ( bright > 255 )
1422 bright = 255; 1422 bright = 255;
1423 if ( bright < 0 ) 1423 if ( bright < 0 )
1424 bright = 0; 1424 bright = 0;
1425 1425
1426 if (( fd = ::open ( "/dev/fl", O_WRONLY )) >= 0 ) { 1426 if (( fd = ::open ( "/dev/fl", O_WRONLY )) >= 0 ) {
1427 int bl = ( bright * 4 + 127 ) / 255; // only 4 steps on zaurus 1427 int bl = ( bright * 4 + 127 ) / 255; // only 4 steps on zaurus
1428 if ( bright && !bl ) 1428 if ( bright && !bl )
1429 bl = 1; 1429 bl = 1;
1430 res = ( ::ioctl ( fd, FL_IOCTL_STEP_CONTRAST, bl ) == 0 ); 1430 res = ( ::ioctl ( fd, FL_IOCTL_STEP_CONTRAST, bl ) == 0 );
1431 ::close ( fd ); 1431 ::close ( fd );
1432 } 1432 }
1433 return res; 1433 return res;
1434} 1434}
1435 1435
1436 1436
1437int Zaurus::displayBrightnessResolution ( ) const 1437int Zaurus::displayBrightnessResolution ( ) const
1438{ 1438{
1439 return 5; 1439 return 5;
1440} 1440}
1441 1441
1442 1442