-rw-r--r-- | libopie2/opiecore/device/odevice_abstractmobiledevice.h | 44 | ||||
-rw-r--r-- | libopie2/opiecore/device/odevice_zaurus.cpp | 27 | ||||
-rw-r--r-- | libopie2/opiecore/device/odevice_zaurus.h | 1 |
3 files changed, 50 insertions, 22 deletions
diff --git a/libopie2/opiecore/device/odevice_abstractmobiledevice.h b/libopie2/opiecore/device/odevice_abstractmobiledevice.h index 9467e82..335b02f 100644 --- a/libopie2/opiecore/device/odevice_abstractmobiledevice.h +++ b/libopie2/opiecore/device/odevice_abstractmobiledevice.h | |||
@@ -1,64 +1,64 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of the Opie Project | 2 | This file is part of the Opie Project |
3 | Copyright (C) 2004, 2005 Holger Hans Peter Freyther <freyther@handhelds.org> | 3 | Copyright (C) 2004, 2005 Holger Hans Peter Freyther <freyther@handhelds.org> |
4 | Copyright (C) 2004, 2005 Michael 'mickey' Lauer <mickeyl@handhelds.org> | 4 | Copyright (C) 2004, 2005 Michael 'mickey' Lauer <mickeyl@handhelds.org> |
5 | 5 | ||
6 | 6 | ||
7 | =. | 7 | =. |
8 | .=l. | 8 | .=l. |
9 | .>+-= | 9 | .>+-= |
10 | _;:, .> :=|. This program is free software; you can | 10 | _;:, .> :=|. This program is free software; you can |
11 | .> <`_, > . <= redistribute it and/or modify it under | 11 | .> <`_, > . <= redistribute it and/or modify it under |
12 | :`=1 )Y*s>-.-- : the terms of the GNU Library General Public | 12 | :`=1 )Y*s>-.-- : the terms of the GNU Library General Public |
13 | .="- .-=="i, .._ License as published by the Free Software | 13 | .="- .-=="i, .._ License as published by the Free Software |
14 | - . .-<_> .<> Foundation; either version 2 of the License, | 14 | - . .-<_> .<> Foundation; either version 2 of the License, |
15 | ._= =} : or (at your option) any later version. | 15 | ._= =} : or (at your option) any later version. |
16 | .%`+i> _;_. | 16 | .%`+i> _;_. |
17 | .i_,=:_. -<s. This program is distributed in the hope that | 17 | .i_,=:_. -<s. This program is distributed in the hope that |
18 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | 18 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; |
19 | : .. .:, . . . without even the implied warranty of | 19 | : .. .:, . . . without even the implied warranty of |
20 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | 20 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A |
21 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU | 21 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU |
22 | ..}^=.= = ; Library General Public License for more | 22 | ..}^=.= = ; Library General Public License for more |
23 | ++= -. .` .: details. | 23 | ++= -. .` .: details. |
24 | : = ...= . :.=- | 24 | : = ...= . :.=- |
25 | -. .:....=;==+<; You should have received a copy of the GNU | 25 | -. .:....=;==+<; You should have received a copy of the GNU |
26 | -_. . . )=. = Library General Public License along with | 26 | -_. . . )=. = Library General Public License along with |
27 | -- :-=` this library; see the file COPYING.LIB. | 27 | -- :-=` this library; see the file COPYING.LIB. |
28 | If not, write to the Free Software Foundation, | 28 | If not, write to the Free Software Foundation, |
29 | Inc., 59 Temple Place - Suite 330, | 29 | Inc., 59 Temple Place - Suite 330, |
30 | Boston, MA 02111-1307, USA. | 30 | Boston, MA 02111-1307, USA. |
31 | */ | 31 | */ |
32 | 32 | ||
33 | #ifndef OPIE_CORE_DEVICE_ABSTRACT_MOBILE_DEVICE | 33 | #ifndef OPIE_CORE_DEVICE_ABSTRACT_MOBILE_DEVICE |
34 | #define OPIE_CORE_DEVICE_ABSTRACT_MOBILE_DEVICE | 34 | #define OPIE_CORE_DEVICE_ABSTRACT_MOBILE_DEVICE |
35 | 35 | ||
36 | #include "odevice.h" | 36 | #include "odevice.h" |
37 | 37 | ||
38 | namespace Opie { | 38 | namespace Opie { |
39 | namespace Core { | 39 | namespace Core { |
40 | /** | 40 | /** |
41 | * @short Common Implementations for Linux Handheld Devices | 41 | * @short Common Implementations for Linux Handheld Devices |
42 | * | 42 | * |
43 | * Abstract Class with implementation for suspending using | 43 | * Abstract Class with implementation for suspending using |
44 | * asynchrnonus apm implementations and displaystatus using | 44 | * asynchrnonus apm implementations and displaystatus using |
45 | * the Linux Frame Buffer API | 45 | * the Linux Frame Buffer API |
46 | * | 46 | * |
47 | */ | 47 | */ |
48 | class OAbstractMobileDevice : public ODevice { | 48 | class OAbstractMobileDevice : public ODevice { |
49 | Q_OBJECT | 49 | Q_OBJECT |
50 | protected: | 50 | protected: |
51 | OAbstractMobileDevice(); | 51 | OAbstractMobileDevice(); |
52 | void setAPMTimeOut( int time ); | 52 | void setAPMTimeOut( int time ); |
53 | public: | 53 | public: |
54 | virtual bool suspend(); | 54 | virtual bool suspend(); |
55 | virtual bool setDisplayStatus(bool); | 55 | virtual bool setDisplayStatus(bool); |
56 | 56 | ||
57 | private: | 57 | protected: |
58 | int m_timeOut; | 58 | int m_timeOut; |
59 | }; | 59 | }; |
60 | } | 60 | } |
61 | } | 61 | } |
62 | 62 | ||
63 | 63 | ||
64 | #endif | 64 | #endif |
diff --git a/libopie2/opiecore/device/odevice_zaurus.cpp b/libopie2/opiecore/device/odevice_zaurus.cpp index 72378ff..8aefc13 100644 --- a/libopie2/opiecore/device/odevice_zaurus.cpp +++ b/libopie2/opiecore/device/odevice_zaurus.cpp | |||
@@ -535,96 +535,123 @@ ODirection Zaurus::direction() const | |||
535 | OHingeStatus hs = readHingeSensor(); | 535 | OHingeStatus hs = readHingeSensor(); |
536 | if ( hs == CASE_PORTRAIT ) dir = CCW; | 536 | if ( hs == CASE_PORTRAIT ) dir = CCW; |
537 | else if ( hs == CASE_UNKNOWN ) dir = CCW; | 537 | else if ( hs == CASE_UNKNOWN ) dir = CCW; |
538 | else dir = CW; | 538 | else dir = CW; |
539 | } | 539 | } |
540 | break; | 540 | break; |
541 | case Model_Zaurus_SL6000: | 541 | case Model_Zaurus_SL6000: |
542 | case Model_Zaurus_SLA300: | 542 | case Model_Zaurus_SLA300: |
543 | case Model_Zaurus_SLB600: | 543 | case Model_Zaurus_SLB600: |
544 | case Model_Zaurus_SL5500: | 544 | case Model_Zaurus_SL5500: |
545 | case Model_Zaurus_SL5000: | 545 | case Model_Zaurus_SL5000: |
546 | default: dir = d->m_direction; | 546 | default: dir = d->m_direction; |
547 | break; | 547 | break; |
548 | } | 548 | } |
549 | return dir; | 549 | return dir; |
550 | 550 | ||
551 | } | 551 | } |
552 | 552 | ||
553 | bool Zaurus::hasHingeSensor() const | 553 | bool Zaurus::hasHingeSensor() const |
554 | { | 554 | { |
555 | return d->m_model == Model_Zaurus_SLC7x0 || d->m_model == Model_Zaurus_SLC3000; | 555 | return d->m_model == Model_Zaurus_SLC7x0 || d->m_model == Model_Zaurus_SLC3000; |
556 | } | 556 | } |
557 | 557 | ||
558 | OHingeStatus Zaurus::readHingeSensor() const | 558 | OHingeStatus Zaurus::readHingeSensor() const |
559 | { | 559 | { |
560 | if (m_embedix) | 560 | if (m_embedix) |
561 | { | 561 | { |
562 | int handle = ::open("/dev/apm_bios", O_RDWR|O_NONBLOCK); | 562 | int handle = ::open("/dev/apm_bios", O_RDWR|O_NONBLOCK); |
563 | if (handle == -1) | 563 | if (handle == -1) |
564 | { | 564 | { |
565 | qWarning("Zaurus::readHingeSensor() - failed (%s)", "unknown reason" ); //FIXME: use strerror | 565 | qWarning("Zaurus::readHingeSensor() - failed (%s)", "unknown reason" ); //FIXME: use strerror |
566 | return CASE_UNKNOWN; | 566 | return CASE_UNKNOWN; |
567 | } | 567 | } |
568 | else | 568 | else |
569 | { | 569 | { |
570 | int retval = ::ioctl(handle, SHARP_IOCTL_GET_ROTATION); | 570 | int retval = ::ioctl(handle, SHARP_IOCTL_GET_ROTATION); |
571 | ::close (handle); | 571 | ::close (handle); |
572 | if ( retval == CASE_CLOSED || retval == CASE_PORTRAIT || retval == CASE_LANDSCAPE ) | 572 | if ( retval == CASE_CLOSED || retval == CASE_PORTRAIT || retval == CASE_LANDSCAPE ) |
573 | { | 573 | { |
574 | qDebug( "Zaurus::readHingeSensor() - result = %d", retval ); | 574 | qDebug( "Zaurus::readHingeSensor() - result = %d", retval ); |
575 | return static_cast<OHingeStatus>( retval ); | 575 | return static_cast<OHingeStatus>( retval ); |
576 | } | 576 | } |
577 | else | 577 | else |
578 | { | 578 | { |
579 | qWarning("Zaurus::readHingeSensor() - couldn't compute hinge status!" ); | 579 | qWarning("Zaurus::readHingeSensor() - couldn't compute hinge status!" ); |
580 | return CASE_UNKNOWN; | 580 | return CASE_UNKNOWN; |
581 | } | 581 | } |
582 | } | 582 | } |
583 | } | 583 | } |
584 | else | 584 | else |
585 | { | 585 | { |
586 | // corgi keyboard is event source 0 in OZ kernel 2.6 | 586 | // corgi keyboard is event source 0 in OZ kernel 2.6 |
587 | OInputDevice* keyboard = OInputSystem::instance()->device( "event0" ); | 587 | OInputDevice* keyboard = OInputSystem::instance()->device( "event0" ); |
588 | if ( keyboard && keyboard->isHeld( OInputDevice::Key_KP0 ) ) return CASE_LANDSCAPE; | 588 | if ( keyboard && keyboard->isHeld( OInputDevice::Key_KP0 ) ) return CASE_LANDSCAPE; |
589 | else if ( keyboard && keyboard->isHeld( OInputDevice::Key_KP1 ) ) return CASE_PORTRAIT; | 589 | else if ( keyboard && keyboard->isHeld( OInputDevice::Key_KP1 ) ) return CASE_PORTRAIT; |
590 | else if ( keyboard && keyboard->isHeld( OInputDevice::Key_KP2 ) ) return CASE_CLOSED; | 590 | else if ( keyboard && keyboard->isHeld( OInputDevice::Key_KP2 ) ) return CASE_CLOSED; |
591 | qWarning("Zaurus::readHingeSensor() - couldn't compute hinge status!" ); | 591 | qWarning("Zaurus::readHingeSensor() - couldn't compute hinge status!" ); |
592 | return CASE_UNKNOWN; | 592 | return CASE_UNKNOWN; |
593 | } | 593 | } |
594 | } | 594 | } |
595 | 595 | ||
596 | /* | 596 | /* |
597 | * Take code from iPAQ device. | 597 | * Take code from iPAQ device. |
598 | * That way we switch the cursor directions depending on status of hinge sensor, eg. hardware direction. | 598 | * That way we switch the cursor directions depending on status of hinge sensor, eg. hardware direction. |
599 | * I hope that is ok - Alwin | 599 | * I hope that is ok - Alwin |
600 | */ | 600 | */ |
601 | bool Zaurus::filter ( int /*unicode*/, int keycode, int modifiers, bool isPress, bool autoRepeat ) | 601 | bool Zaurus::filter ( int /*unicode*/, int keycode, int modifiers, bool isPress, bool autoRepeat ) |
602 | { | 602 | { |
603 | int newkeycode = keycode; | 603 | int newkeycode = keycode; |
604 | 604 | ||
605 | if (d->m_model!=Model_Zaurus_SLC3000 && d->m_model!=Model_Zaurus_SLC7x0) return false; | 605 | if (d->m_model!=Model_Zaurus_SLC3000 && d->m_model!=Model_Zaurus_SLC7x0) return false; |
606 | 606 | ||
607 | /* map cursor keys depending on the hinge status */ | 607 | /* map cursor keys depending on the hinge status */ |
608 | switch ( keycode ) { | 608 | switch ( keycode ) { |
609 | // Rotate cursor keys | 609 | // Rotate cursor keys |
610 | case Key_Left : | 610 | case Key_Left : |
611 | case Key_Right: | 611 | case Key_Right: |
612 | case Key_Up : | 612 | case Key_Up : |
613 | case Key_Down : | 613 | case Key_Down : |
614 | { | 614 | { |
615 | if (rotation()==Rot90) { | 615 | if (rotation()==Rot90) { |
616 | newkeycode = Key_Left + ( keycode - Key_Left + 3 ) % 4; | 616 | newkeycode = Key_Left + ( keycode - Key_Left + 3 ) % 4; |
617 | } | 617 | } |
618 | } | 618 | } |
619 | break; | 619 | break; |
620 | 620 | ||
621 | } | 621 | } |
622 | if (newkeycode!=keycode) { | 622 | if (newkeycode!=keycode) { |
623 | if ( newkeycode != Key_unknown ) { | 623 | if ( newkeycode != Key_unknown ) { |
624 | QWSServer::sendKeyEvent ( -1, newkeycode, modifiers, isPress, autoRepeat ); | 624 | QWSServer::sendKeyEvent ( -1, newkeycode, modifiers, isPress, autoRepeat ); |
625 | } | 625 | } |
626 | return true; | 626 | return true; |
627 | } | 627 | } |
628 | return false; | 628 | return false; |
629 | } | 629 | } |
630 | 630 | ||
631 | bool Zaurus::suspend() { | ||
632 | if ( !isQWS( ) ) // only qwsserver is allowed to suspend | ||
633 | return false; | ||
634 | |||
635 | bool res = false; | ||
636 | OAbstractMobileDevice::sendSuspendmsg(); | ||
637 | |||
638 | struct timeval tvs, tvn; | ||
639 | ::gettimeofday ( &tvs, 0 ); | ||
640 | |||
641 | ::sync(); // flush fs caches | ||
642 | res = ( ::system ( "apm --suspend" ) == 0 ); | ||
643 | |||
644 | // This is needed because some apm implementations are asynchronous and we | ||
645 | // can not be sure when exactly the device is really suspended | ||
646 | // This can be deleted as soon as a stable familiar with a synchronous apm implementation exists. | ||
647 | // on non embedix eg. 2.6 kernel line apm is synchronous so we don't need it here. | ||
648 | |||
649 | if ( res && m_embedix) { | ||
650 | do { // wait at most 1.5 sec: either suspend didn't work or the device resumed | ||
651 | ::usleep ( 200 * 1000 ); | ||
652 | ::gettimeofday ( &tvn, 0 ); | ||
653 | } while ((( tvn. tv_sec - tvs. tv_sec ) * 1000 + ( tvn. tv_usec - tvs. tv_usec ) / 1000 ) < m_timeOut ); | ||
654 | } | ||
655 | |||
656 | return res; | ||
657 | } | ||
diff --git a/libopie2/opiecore/device/odevice_zaurus.h b/libopie2/opiecore/device/odevice_zaurus.h index 1fb0cd9..4548e35 100644 --- a/libopie2/opiecore/device/odevice_zaurus.h +++ b/libopie2/opiecore/device/odevice_zaurus.h | |||
@@ -26,118 +26,119 @@ | |||
26 | Inc., 59 Temple Place - Suite 330, | 26 | Inc., 59 Temple Place - Suite 330, |
27 | Boston, MA 02111-1307, USA. | 27 | Boston, MA 02111-1307, USA. |
28 | */ | 28 | */ |
29 | 29 | ||
30 | #ifndef ODEVICE_ZAURUS | 30 | #ifndef ODEVICE_ZAURUS |
31 | #define ODEVICE_ZAURUS | 31 | #define ODEVICE_ZAURUS |
32 | 32 | ||
33 | #include "odevice_abstractmobiledevice.h" | 33 | #include "odevice_abstractmobiledevice.h" |
34 | 34 | ||
35 | /* QT */ | 35 | /* QT */ |
36 | #include <qwindowsystem_qws.h> | 36 | #include <qwindowsystem_qws.h> |
37 | 37 | ||
38 | #ifndef ARRAY_SIZE | 38 | #ifndef ARRAY_SIZE |
39 | #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) | 39 | #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) |
40 | #endif | 40 | #endif |
41 | 41 | ||
42 | // _IO and friends are only defined in kernel headers ... | 42 | // _IO and friends are only defined in kernel headers ... |
43 | #define OD_IOC(dir,type,number,size) (( dir << 30 ) | ( type << 8 ) | ( number ) | ( size << 16 )) | 43 | #define OD_IOC(dir,type,number,size) (( dir << 30 ) | ( type << 8 ) | ( number ) | ( size << 16 )) |
44 | #define OD_IO(type,number) OD_IOC(0,type,number,0) | 44 | #define OD_IO(type,number) OD_IOC(0,type,number,0) |
45 | #define OD_IOW(type,number,size) OD_IOC(1,type,number,sizeof(size)) | 45 | #define OD_IOW(type,number,size) OD_IOC(1,type,number,sizeof(size)) |
46 | #define OD_IOR(type,number,size) OD_IOC(2,type,number,sizeof(size)) | 46 | #define OD_IOR(type,number,size) OD_IOC(2,type,number,sizeof(size)) |
47 | #define OD_IORW(type,number,size) OD_IOC(3,type,number,sizeof(size)) | 47 | #define OD_IORW(type,number,size) OD_IOC(3,type,number,sizeof(size)) |
48 | 48 | ||
49 | // Audio | 49 | // Audio |
50 | #define SHARP_DEV_IOCTL_COMMAND_START 0x5680 | 50 | #define SHARP_DEV_IOCTL_COMMAND_START 0x5680 |
51 | 51 | ||
52 | #define SHARP_BUZZER_IOCTL_START (SHARP_DEV_IOCTL_COMMAND_START) | 52 | #define SHARP_BUZZER_IOCTL_START (SHARP_DEV_IOCTL_COMMAND_START) |
53 | #define SHARP_BUZZER_MAKESOUND (SHARP_BUZZER_IOCTL_START) | 53 | #define SHARP_BUZZER_MAKESOUND (SHARP_BUZZER_IOCTL_START) |
54 | 54 | ||
55 | #define SHARP_BUZ_TOUCHSOUND 1 /* touch panel sound */ | 55 | #define SHARP_BUZ_TOUCHSOUND 1 /* touch panel sound */ |
56 | #define SHARP_BUZ_KEYSOUND 2 /* key sound */ | 56 | #define SHARP_BUZ_KEYSOUND 2 /* key sound */ |
57 | #define SHARP_BUZ_SCHEDULE_ALARM 11 /* schedule alarm */ | 57 | #define SHARP_BUZ_SCHEDULE_ALARM 11 /* schedule alarm */ |
58 | 58 | ||
59 | #define SHARP_BUZZER_SETVOLUME (SHARP_BUZZER_IOCTL_START+1) | 59 | #define SHARP_BUZZER_SETVOLUME (SHARP_BUZZER_IOCTL_START+1) |
60 | #define SHARP_BUZZER_GETVOLUME (SHARP_BUZZER_IOCTL_START+2) | 60 | #define SHARP_BUZZER_GETVOLUME (SHARP_BUZZER_IOCTL_START+2) |
61 | #define SHARP_BUZZER_ISSUPPORTED (SHARP_BUZZER_IOCTL_START+3) | 61 | #define SHARP_BUZZER_ISSUPPORTED (SHARP_BUZZER_IOCTL_START+3) |
62 | #define SHARP_BUZZER_SETMUTE (SHARP_BUZZER_IOCTL_START+4) | 62 | #define SHARP_BUZZER_SETMUTE (SHARP_BUZZER_IOCTL_START+4) |
63 | #define SHARP_BUZZER_STOPSOUND (SHARP_BUZZER_IOCTL_START+5) | 63 | #define SHARP_BUZZER_STOPSOUND (SHARP_BUZZER_IOCTL_START+5) |
64 | 64 | ||
65 | // LED | 65 | // LED |
66 | #define SHARP_LED_IOCTL_START (SHARP_DEV_IOCTL_COMMAND_START) | 66 | #define SHARP_LED_IOCTL_START (SHARP_DEV_IOCTL_COMMAND_START) |
67 | #define SHARP_LED_SETSTATUS (SHARP_LED_IOCTL_START+1) | 67 | #define SHARP_LED_SETSTATUS (SHARP_LED_IOCTL_START+1) |
68 | #define SHARP_LED_MAIL_EXISTS 9 /* mail status (exists or not) */ | 68 | #define SHARP_LED_MAIL_EXISTS 9 /* mail status (exists or not) */ |
69 | 69 | ||
70 | #define LED_MAIL_NO_UNREAD_MAIL 0 /* for SHARP_LED_MAIL_EXISTS */ | 70 | #define LED_MAIL_NO_UNREAD_MAIL 0 /* for SHARP_LED_MAIL_EXISTS */ |
71 | #define LED_MAIL_NEWMAIL_EXISTS 1 /* for SHARP_LED_MAIL_EXISTS */ | 71 | #define LED_MAIL_NEWMAIL_EXISTS 1 /* for SHARP_LED_MAIL_EXISTS */ |
72 | #define LED_MAIL_UNREAD_MAIL_EX 2 /* for SHARP_LED_MAIL_EXISTS */ | 72 | #define LED_MAIL_UNREAD_MAIL_EX 2 /* for SHARP_LED_MAIL_EXISTS */ |
73 | 73 | ||
74 | // Rotation and Power Management | 74 | // Rotation and Power Management |
75 | #define SHARP_IOCTL_GET_ROTATION 0x413c | 75 | #define SHARP_IOCTL_GET_ROTATION 0x413c |
76 | 76 | ||
77 | #define APM_IOCGEVTSRC OD_IOR( 'A', 203, int ) | 77 | #define APM_IOCGEVTSRC OD_IOR( 'A', 203, int ) |
78 | #define APM_IOCSEVTSRC OD_IORW( 'A', 204, int ) | 78 | #define APM_IOCSEVTSRC OD_IORW( 'A', 204, int ) |
79 | #define APM_EVT_POWER_BUTTON (1 << 0) | 79 | #define APM_EVT_POWER_BUTTON (1 << 0) |
80 | 80 | ||
81 | // Brightness Embedix | 81 | // Brightness Embedix |
82 | #define SHARP_FL_IOCTL_DEVICE "/dev/sharp_fl" | 82 | #define SHARP_FL_IOCTL_DEVICE "/dev/sharp_fl" |
83 | #define SHARP_FL_IOCTL_ON 1 | 83 | #define SHARP_FL_IOCTL_ON 1 |
84 | #define SHARP_FL_IOCTL_OFF 2 | 84 | #define SHARP_FL_IOCTL_OFF 2 |
85 | #define SHARP_FL_IOCTL_STEP_CONTRAST 100 | 85 | #define SHARP_FL_IOCTL_STEP_CONTRAST 100 |
86 | #define SHARP_FL_IOCTL_GET_STEP_CONTRAST 101 | 86 | #define SHARP_FL_IOCTL_GET_STEP_CONTRAST 101 |
87 | #define SHARP_FL_IOCTL_GET_STEP 102 | 87 | #define SHARP_FL_IOCTL_GET_STEP 102 |
88 | 88 | ||
89 | // Vesa Standard | 89 | // Vesa Standard |
90 | #define FB_BLANK_UNBLANK 0 | 90 | #define FB_BLANK_UNBLANK 0 |
91 | #define FB_BLANK_POWERDOWN 4 | 91 | #define FB_BLANK_POWERDOWN 4 |
92 | 92 | ||
93 | namespace Opie { | 93 | namespace Opie { |
94 | namespace Core { | 94 | namespace Core { |
95 | namespace Internal { | 95 | namespace Internal { |
96 | 96 | ||
97 | class Zaurus : public OAbstractMobileDevice, public QWSServer::KeyboardFilter | 97 | class Zaurus : public OAbstractMobileDevice, public QWSServer::KeyboardFilter |
98 | { | 98 | { |
99 | protected: | 99 | protected: |
100 | virtual void init(const QString&); | 100 | virtual void init(const QString&); |
101 | virtual void initButtons(); | 101 | virtual void initButtons(); |
102 | 102 | ||
103 | public: | 103 | public: |
104 | virtual bool setDisplayBrightness( int b ); | 104 | virtual bool setDisplayBrightness( int b ); |
105 | virtual bool setDisplayStatus( bool on ); | 105 | virtual bool setDisplayStatus( bool on ); |
106 | virtual int displayBrightnessResolution() const; | 106 | virtual int displayBrightnessResolution() const; |
107 | 107 | ||
108 | virtual void playAlarmSound(); | 108 | virtual void playAlarmSound(); |
109 | virtual void playKeySound(); | 109 | virtual void playKeySound(); |
110 | virtual void playTouchSound(); | 110 | virtual void playTouchSound(); |
111 | 111 | ||
112 | virtual QValueList <OLed> ledList() const; | 112 | virtual QValueList <OLed> ledList() const; |
113 | virtual QValueList <OLedState> ledStateList ( OLed led ) const; | 113 | virtual QValueList <OLedState> ledStateList ( OLed led ) const; |
114 | virtual OLedState ledState( OLed led ) const; | 114 | virtual OLedState ledState( OLed led ) const; |
115 | virtual bool setLedState( OLed led, OLedState st ); | 115 | virtual bool setLedState( OLed led, OLedState st ); |
116 | 116 | ||
117 | virtual bool hasHingeSensor() const; | 117 | virtual bool hasHingeSensor() const; |
118 | virtual OHingeStatus readHingeSensor() const; | 118 | virtual OHingeStatus readHingeSensor() const; |
119 | 119 | ||
120 | virtual Transformation rotation() const; | 120 | virtual Transformation rotation() const; |
121 | virtual ODirection direction() const; | 121 | virtual ODirection direction() const; |
122 | virtual bool suspend(); | ||
122 | 123 | ||
123 | protected: | 124 | protected: |
124 | virtual void buzzer( int snd ); | 125 | virtual void buzzer( int snd ); |
125 | virtual bool filter( int unicode, int keycode, int modifiers, bool isPress, bool autoRepeat ); | 126 | virtual bool filter( int unicode, int keycode, int modifiers, bool isPress, bool autoRepeat ); |
126 | 127 | ||
127 | OLedState m_leds[1]; | 128 | OLedState m_leds[1]; |
128 | bool m_embedix; | 129 | bool m_embedix; |
129 | }; | 130 | }; |
130 | 131 | ||
131 | struct z_button { | 132 | struct z_button { |
132 | Qt::Key code; | 133 | Qt::Key code; |
133 | char *utext; | 134 | char *utext; |
134 | char *pix; | 135 | char *pix; |
135 | char *fpressedservice; | 136 | char *fpressedservice; |
136 | char *fpressedaction; | 137 | char *fpressedaction; |
137 | char *fheldservice; | 138 | char *fheldservice; |
138 | char *fheldaction; | 139 | char *fheldaction; |
139 | }; | 140 | }; |
140 | } | 141 | } |
141 | } | 142 | } |
142 | } | 143 | } |
143 | #endif | 144 | #endif |