-rw-r--r-- | libopie/odevice.cpp | 8 | ||||
-rw-r--r-- | libopie/odevice.h | 2 |
2 files changed, 3 insertions, 7 deletions
diff --git a/libopie/odevice.cpp b/libopie/odevice.cpp index f93d1ed..a3c30cb 100644 --- a/libopie/odevice.cpp +++ b/libopie/odevice.cpp | |||
@@ -124,65 +124,65 @@ protected: | |||
124 | virtual void buzzer ( int snd ); | 124 | virtual void buzzer ( int snd ); |
125 | 125 | ||
126 | OLedState m_leds [1]; | 126 | OLedState m_leds [1]; |
127 | }; | 127 | }; |
128 | 128 | ||
129 | 129 | ||
130 | struct i_button { | 130 | struct i_button { |
131 | uint model; | 131 | uint model; |
132 | Qt::Key code; | 132 | Qt::Key code; |
133 | char *utext; | 133 | char *utext; |
134 | char *pix; | 134 | char *pix; |
135 | char *fpressedservice; | 135 | char *fpressedservice; |
136 | char *fpressedaction; | 136 | char *fpressedaction; |
137 | char *fheldservice; | 137 | char *fheldservice; |
138 | char *fheldaction; | 138 | char *fheldaction; |
139 | } ipaq_buttons [] = { | 139 | } ipaq_buttons [] = { |
140 | { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx, | 140 | { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx, |
141 | Qt::Key_F9, QT_TRANSLATE_NOOP("Button", "Calendar Button"), | 141 | Qt::Key_F9, QT_TRANSLATE_NOOP("Button", "Calendar Button"), |
142 | "devicebuttons/ipaq_calendar", | 142 | "devicebuttons/ipaq_calendar", |
143 | "datebook", "nextView()", | 143 | "datebook", "nextView()", |
144 | "today", "raise()" }, | 144 | "today", "raise()" }, |
145 | { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx, | 145 | { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx, |
146 | Qt::Key_F10, QT_TRANSLATE_NOOP("Button", "Contacts Button"), | 146 | Qt::Key_F10, QT_TRANSLATE_NOOP("Button", "Contacts Button"), |
147 | "devicebuttons/ipaq_contact", | 147 | "devicebuttons/ipaq_contact", |
148 | "addressbook", "raise()", | 148 | "addressbook", "raise()", |
149 | "addressbook", "beamBusinessCard()" }, | 149 | "addressbook", "beamBusinessCard()" }, |
150 | { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx, | 150 | { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx, |
151 | Qt::Key_F11, QT_TRANSLATE_NOOP("Button", "Menu Button"), | 151 | Qt::Key_F11, QT_TRANSLATE_NOOP("Button", "Menu Button"), |
152 | "devicebuttons/ipaq_menu", | 152 | "devicebuttons/ipaq_menu", |
153 | "QPE/TaskBar", "toggleMenu()", | 153 | "QPE/TaskBar", "toggleMenu()", |
154 | "QPE/TaskBar", "toggleStartMenu()" }, | 154 | "QPE/TaskBar", "toggleStartMenu()" }, |
155 | { Model_iPAQ_H38xx | Model_iPAQ_H39xx, | 155 | { Model_iPAQ_H38xx | Model_iPAQ_H39xx, |
156 | Qt::Key_F11, QT_TRANSLATE_NOOP("Button", "Mail Button"), | 156 | Qt::Key_F13, QT_TRANSLATE_NOOP("Button", "Mail Button"), |
157 | "devicebuttons/ipaq_mail", | 157 | "devicebuttons/ipaq_mail", |
158 | "mail", "raise()", | 158 | "mail", "raise()", |
159 | "mail", "newMail()" }, | 159 | "mail", "newMail()" }, |
160 | { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx, | 160 | { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx, |
161 | Qt::Key_F12, QT_TRANSLATE_NOOP("Button", "Home Button"), | 161 | Qt::Key_F12, QT_TRANSLATE_NOOP("Button", "Home Button"), |
162 | "devicebuttons/ipaq_home", | 162 | "devicebuttons/ipaq_home", |
163 | "QPE/Launcher", "home()", | 163 | "QPE/Launcher", "home()", |
164 | "buttonsettings", "raise()" }, | 164 | "buttonsettings", "raise()" }, |
165 | { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx, | 165 | { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx, |
166 | Qt::Key_F24, QT_TRANSLATE_NOOP("Button", "Record Button"), | 166 | Qt::Key_F24, QT_TRANSLATE_NOOP("Button", "Record Button"), |
167 | "devicebuttons/ipaq_record", | 167 | "devicebuttons/ipaq_record", |
168 | "QPE/VMemo", "toggleRecord()", | 168 | "QPE/VMemo", "toggleRecord()", |
169 | "sound", "raise()" }, | 169 | "sound", "raise()" }, |
170 | }; | 170 | }; |
171 | 171 | ||
172 | struct z_button { | 172 | struct z_button { |
173 | Qt::Key code; | 173 | Qt::Key code; |
174 | char *utext; | 174 | char *utext; |
175 | char *pix; | 175 | char *pix; |
176 | char *fpressedservice; | 176 | char *fpressedservice; |
177 | char *fpressedaction; | 177 | char *fpressedaction; |
178 | char *fheldservice; | 178 | char *fheldservice; |
179 | char *fheldaction; | 179 | char *fheldaction; |
180 | } z_buttons [] = { | 180 | } z_buttons [] = { |
181 | { Qt::Key_F9, QT_TRANSLATE_NOOP("Button", "Calendar Button"), | 181 | { Qt::Key_F9, QT_TRANSLATE_NOOP("Button", "Calendar Button"), |
182 | "devicebuttons/z_calendar", | 182 | "devicebuttons/z_calendar", |
183 | "datebook", "nextView()", | 183 | "datebook", "nextView()", |
184 | "today", "raise()" }, | 184 | "today", "raise()" }, |
185 | { Qt::Key_F10, QT_TRANSLATE_NOOP("Button", "Contacts Button"), | 185 | { Qt::Key_F10, QT_TRANSLATE_NOOP("Button", "Contacts Button"), |
186 | "devicebuttons/z_contact", | 186 | "devicebuttons/z_contact", |
187 | "addressbook", "raise()", | 187 | "addressbook", "raise()", |
188 | "addressbook", "beamBusinessCard()" }, | 188 | "addressbook", "beamBusinessCard()" }, |
@@ -577,76 +577,72 @@ void iPAQ::init ( ) | |||
577 | d-> m_model = Model_iPAQ_H36xx; | 577 | d-> m_model = Model_iPAQ_H36xx; |
578 | else if ( d-> m_modelstr == "H3700" ) | 578 | else if ( d-> m_modelstr == "H3700" ) |
579 | d-> m_model = Model_iPAQ_H37xx; | 579 | d-> m_model = Model_iPAQ_H37xx; |
580 | else if ( d-> m_modelstr == "H3800" ) | 580 | else if ( d-> m_modelstr == "H3800" ) |
581 | d-> m_model = Model_iPAQ_H38xx; | 581 | d-> m_model = Model_iPAQ_H38xx; |
582 | else if ( d-> m_modelstr == "H3900" ) | 582 | else if ( d-> m_modelstr == "H3900" ) |
583 | d-> m_model = Model_iPAQ_H39xx; | 583 | d-> m_model = Model_iPAQ_H39xx; |
584 | else | 584 | else |
585 | d-> m_model = Model_Unknown; | 585 | d-> m_model = Model_Unknown; |
586 | 586 | ||
587 | f. close ( ); | 587 | f. close ( ); |
588 | } | 588 | } |
589 | 589 | ||
590 | f. setName ( "/etc/familiar-version" ); | 590 | f. setName ( "/etc/familiar-version" ); |
591 | if ( f. open ( IO_ReadOnly )) { | 591 | if ( f. open ( IO_ReadOnly )) { |
592 | d-> m_systemstr = "Familiar"; | 592 | d-> m_systemstr = "Familiar"; |
593 | d-> m_system = System_Familiar; | 593 | d-> m_system = System_Familiar; |
594 | 594 | ||
595 | QTextStream ts ( &f ); | 595 | QTextStream ts ( &f ); |
596 | d-> m_sysverstr = ts. readLine ( ). mid ( 10 ); | 596 | d-> m_sysverstr = ts. readLine ( ). mid ( 10 ); |
597 | 597 | ||
598 | f. close ( ); | 598 | f. close ( ); |
599 | } | 599 | } |
600 | 600 | ||
601 | m_leds [0] = m_leds [1] = Led_Off; | 601 | m_leds [0] = m_leds [1] = Led_Off; |
602 | 602 | ||
603 | m_power_timer = 0; | 603 | m_power_timer = 0; |
604 | 604 | ||
605 | for ( uint i = 0; i < ( sizeof( ipaq_buttons ) / sizeof( i_button )); i++ ) { | 605 | for ( uint i = 0; i < ( sizeof( ipaq_buttons ) / sizeof( i_button )); i++ ) { |
606 | i_button *ib = ipaq_buttons + i; | 606 | i_button *ib = ipaq_buttons + i; |
607 | ODeviceButton b; | 607 | ODeviceButton b; |
608 | 608 | ||
609 | qDebug ( "%d: %d", i, ib-> model ); | ||
610 | |||
611 | if (( ib-> model & d-> m_model ) == d-> m_model ) { | 609 | if (( ib-> model & d-> m_model ) == d-> m_model ) { |
612 | b. setKeycode ( ib-> code ); | 610 | b. setKeycode ( ib-> code ); |
613 | b. setUserText ( qApp-> translate ( "Button", ib-> utext )); | 611 | b. setUserText ( qApp-> translate ( "Button", ib-> utext )); |
614 | b. setPixmap ( Resource::loadPixmap ( ib-> pix )); | 612 | b. setPixmap ( Resource::loadPixmap ( ib-> pix )); |
615 | b. setFactoryPresetPressedAction ( OQCopMessage ( makeChannel ( ib-> fpressedservice ), ib-> fpressedaction )); | 613 | b. setFactoryPresetPressedAction ( OQCopMessage ( makeChannel ( ib-> fpressedservice ), ib-> fpressedaction )); |
616 | b. setFactoryPresetHeldAction ( OQCopMessage ( makeChannel ( ib-> fheldservice ), ib-> fheldaction )); | 614 | b. setFactoryPresetHeldAction ( OQCopMessage ( makeChannel ( ib-> fheldservice ), ib-> fheldaction )); |
617 | 615 | ||
618 | d-> m_buttons. append ( b ); | 616 | d-> m_buttons. append ( b ); |
619 | |||
620 | qDebug ( "code: %d", ib-> code ); | ||
621 | } | 617 | } |
622 | } | 618 | } |
623 | reloadButtonMapping ( ); | 619 | reloadButtonMapping ( ); |
624 | 620 | ||
625 | if ( d-> m_qwsserver ) | 621 | if ( d-> m_qwsserver ) |
626 | QWSServer::setKeyboardFilter ( this ); | 622 | QWSServer::setKeyboardFilter ( this ); |
627 | } | 623 | } |
628 | 624 | ||
629 | //#include <linux/h3600_ts.h> // including kernel headers is evil ... | 625 | //#include <linux/h3600_ts.h> // including kernel headers is evil ... |
630 | 626 | ||
631 | typedef struct { | 627 | typedef struct { |
632 | unsigned char OffOnBlink; /* 0=off 1=on 2=Blink */ | 628 | unsigned char OffOnBlink; /* 0=off 1=on 2=Blink */ |
633 | unsigned char TotalTime; /* Units of 5 seconds */ | 629 | unsigned char TotalTime; /* Units of 5 seconds */ |
634 | unsigned char OnTime; /* units of 100m/s */ | 630 | unsigned char OnTime; /* units of 100m/s */ |
635 | unsigned char OffTime; /* units of 100m/s */ | 631 | unsigned char OffTime; /* units of 100m/s */ |
636 | } LED_IN; | 632 | } LED_IN; |
637 | 633 | ||
638 | typedef struct { | 634 | typedef struct { |
639 | unsigned char mode; | 635 | unsigned char mode; |
640 | unsigned char pwr; | 636 | unsigned char pwr; |
641 | unsigned char brightness; | 637 | unsigned char brightness; |
642 | } FLITE_IN; | 638 | } FLITE_IN; |
643 | 639 | ||
644 | #define LED_ON OD_IOW( 'f', 5, LED_IN ) | 640 | #define LED_ON OD_IOW( 'f', 5, LED_IN ) |
645 | #define FLITE_ON OD_IOW( 'f', 7, FLITE_IN ) | 641 | #define FLITE_ON OD_IOW( 'f', 7, FLITE_IN ) |
646 | 642 | ||
647 | 643 | ||
648 | 644 | ||
649 | QValueList <OLed> iPAQ::ledList ( ) const | 645 | QValueList <OLed> iPAQ::ledList ( ) const |
650 | { | 646 | { |
651 | QValueList <OLed> vl; | 647 | QValueList <OLed> vl; |
652 | vl << Led_Power; | 648 | vl << Led_Power; |
@@ -725,65 +721,65 @@ bool iPAQ::filter ( int /*unicode*/, int keycode, int modifiers, bool isPress, b | |||
725 | } | 721 | } |
726 | 722 | ||
727 | // Rotate cursor keys 180° | 723 | // Rotate cursor keys 180° |
728 | case Key_Left : | 724 | case Key_Left : |
729 | case Key_Right: | 725 | case Key_Right: |
730 | case Key_Up : | 726 | case Key_Up : |
731 | case Key_Down : { | 727 | case Key_Down : { |
732 | if (( d-> m_model == Model_iPAQ_H31xx ) || | 728 | if (( d-> m_model == Model_iPAQ_H31xx ) || |
733 | ( d-> m_model == Model_iPAQ_H38xx )) { | 729 | ( d-> m_model == Model_iPAQ_H38xx )) { |
734 | newkeycode = Key_Left + ( keycode - Key_Left + 2 ) % 4; | 730 | newkeycode = Key_Left + ( keycode - Key_Left + 2 ) % 4; |
735 | } | 731 | } |
736 | break; | 732 | break; |
737 | } | 733 | } |
738 | 734 | ||
739 | // map Power Button short/long press to F34/F35 | 735 | // map Power Button short/long press to F34/F35 |
740 | case Key_SysReq: { | 736 | case Key_SysReq: { |
741 | if ( isPress ) { | 737 | if ( isPress ) { |
742 | if ( m_power_timer ) | 738 | if ( m_power_timer ) |
743 | killTimer ( m_power_timer ); | 739 | killTimer ( m_power_timer ); |
744 | m_power_timer = startTimer ( 500 ); | 740 | m_power_timer = startTimer ( 500 ); |
745 | } | 741 | } |
746 | else if ( m_power_timer ) { | 742 | else if ( m_power_timer ) { |
747 | killTimer ( m_power_timer ); | 743 | killTimer ( m_power_timer ); |
748 | m_power_timer = 0; | 744 | m_power_timer = 0; |
749 | QWSServer::sendKeyEvent ( -1, HardKey_Suspend, 0, true, false ); | 745 | QWSServer::sendKeyEvent ( -1, HardKey_Suspend, 0, true, false ); |
750 | QWSServer::sendKeyEvent ( -1, HardKey_Suspend, 0, false, false ); | 746 | QWSServer::sendKeyEvent ( -1, HardKey_Suspend, 0, false, false ); |
751 | } | 747 | } |
752 | newkeycode = Key_unknown; | 748 | newkeycode = Key_unknown; |
753 | break; | 749 | break; |
754 | } | 750 | } |
755 | } | 751 | } |
756 | 752 | ||
757 | if ( newkeycode != keycode ) { | 753 | kif ( newkeycode != keycode ) { |
758 | if ( newkeycode != Key_unknown ) | 754 | if ( newkeycode != Key_unknown ) |
759 | QWSServer::sendKeyEvent ( -1, newkeycode, modifiers, isPress, autoRepeat ); | 755 | QWSServer::sendKeyEvent ( -1, newkeycode, modifiers, isPress, autoRepeat ); |
760 | return true; | 756 | return true; |
761 | } | 757 | } |
762 | else | 758 | else |
763 | return false; | 759 | return false; |
764 | } | 760 | } |
765 | 761 | ||
766 | void iPAQ::timerEvent ( QTimerEvent * ) | 762 | void iPAQ::timerEvent ( QTimerEvent * ) |
767 | { | 763 | { |
768 | killTimer ( m_power_timer ); | 764 | killTimer ( m_power_timer ); |
769 | m_power_timer = 0; | 765 | m_power_timer = 0; |
770 | QWSServer::sendKeyEvent ( -1, HardKey_Backlight, 0, true, false ); | 766 | QWSServer::sendKeyEvent ( -1, HardKey_Backlight, 0, true, false ); |
771 | QWSServer::sendKeyEvent ( -1, HardKey_Backlight, 0, false, false ); | 767 | QWSServer::sendKeyEvent ( -1, HardKey_Backlight, 0, false, false ); |
772 | } | 768 | } |
773 | 769 | ||
774 | 770 | ||
775 | void iPAQ::alarmSound ( ) | 771 | void iPAQ::alarmSound ( ) |
776 | { | 772 | { |
777 | #ifndef QT_NO_SOUND | 773 | #ifndef QT_NO_SOUND |
778 | static Sound snd ( "alarm" ); | 774 | static Sound snd ( "alarm" ); |
779 | int fd; | 775 | int fd; |
780 | int vol; | 776 | int vol; |
781 | bool vol_reset = false; | 777 | bool vol_reset = false; |
782 | 778 | ||
783 | if (( fd = ::open ( "/dev/sound/mixer", O_RDWR )) >= 0 ) { | 779 | if (( fd = ::open ( "/dev/sound/mixer", O_RDWR )) >= 0 ) { |
784 | if ( ::ioctl ( fd, MIXER_READ( 0 ), &vol ) >= 0 ) { | 780 | if ( ::ioctl ( fd, MIXER_READ( 0 ), &vol ) >= 0 ) { |
785 | Config cfg ( "qpe" ); | 781 | Config cfg ( "qpe" ); |
786 | cfg. setGroup ( "Volume" ); | 782 | cfg. setGroup ( "Volume" ); |
787 | 783 | ||
788 | int volalarm = cfg. readNumEntry ( "AlarmPercent", 50 ); | 784 | int volalarm = cfg. readNumEntry ( "AlarmPercent", 50 ); |
789 | if ( volalarm < 0 ) | 785 | if ( volalarm < 0 ) |
diff --git a/libopie/odevice.h b/libopie/odevice.h index ce62f1a..54b85a2 100644 --- a/libopie/odevice.h +++ b/libopie/odevice.h | |||
@@ -54,65 +54,65 @@ enum OVendor { | |||
54 | Vendor_Unknown, | 54 | Vendor_Unknown, |
55 | 55 | ||
56 | Vendor_HP, | 56 | Vendor_HP, |
57 | Vendor_Sharp | 57 | Vendor_Sharp |
58 | }; | 58 | }; |
59 | 59 | ||
60 | enum OSystem { | 60 | enum OSystem { |
61 | System_Unknown, | 61 | System_Unknown, |
62 | 62 | ||
63 | System_Familiar, | 63 | System_Familiar, |
64 | System_Zaurus, | 64 | System_Zaurus, |
65 | System_OpenZaurus | 65 | System_OpenZaurus |
66 | }; | 66 | }; |
67 | 67 | ||
68 | enum OLedState { | 68 | enum OLedState { |
69 | Led_Off, | 69 | Led_Off, |
70 | Led_On, | 70 | Led_On, |
71 | Led_BlinkSlow, | 71 | Led_BlinkSlow, |
72 | Led_BlinkFast | 72 | Led_BlinkFast |
73 | }; | 73 | }; |
74 | 74 | ||
75 | enum OLed { | 75 | enum OLed { |
76 | Led_Mail, | 76 | Led_Mail, |
77 | Led_Power, | 77 | Led_Power, |
78 | Led_BlueTooth | 78 | Led_BlueTooth |
79 | }; | 79 | }; |
80 | 80 | ||
81 | enum OHardKey { | 81 | enum OHardKey { |
82 | HardKey_Datebook = Qt::Key_F9, | 82 | HardKey_Datebook = Qt::Key_F9, |
83 | HardKey_Contacts = Qt::Key_F10, | 83 | HardKey_Contacts = Qt::Key_F10, |
84 | HardKey_Menu = Qt::Key_F11, | 84 | HardKey_Menu = Qt::Key_F11, |
85 | HardKey_Home = Qt::Key_F12, | 85 | HardKey_Home = Qt::Key_F12, |
86 | HardKey_Mail = Qt::Key_F14, | 86 | HardKey_Mail = Qt::Key_F13, |
87 | HardKey_Record = Qt::Key_F24, | 87 | HardKey_Record = Qt::Key_F24, |
88 | HardKey_Suspend = Qt::Key_F34, | 88 | HardKey_Suspend = Qt::Key_F34, |
89 | HardKey_Backlight = Qt::Key_F35, | 89 | HardKey_Backlight = Qt::Key_F35, |
90 | }; | 90 | }; |
91 | 91 | ||
92 | 92 | ||
93 | class ODevice : public QObject { | 93 | class ODevice : public QObject { |
94 | Q_OBJECT | 94 | Q_OBJECT |
95 | 95 | ||
96 | private: | 96 | private: |
97 | ODevice ( const ODevice & ); | 97 | ODevice ( const ODevice & ); |
98 | 98 | ||
99 | protected: | 99 | protected: |
100 | ODevice ( ); | 100 | ODevice ( ); |
101 | virtual void init ( ); | 101 | virtual void init ( ); |
102 | 102 | ||
103 | ODeviceData *d; | 103 | ODeviceData *d; |
104 | 104 | ||
105 | public: | 105 | public: |
106 | virtual ~ODevice ( ); | 106 | virtual ~ODevice ( ); |
107 | 107 | ||
108 | static ODevice *inst ( ); | 108 | static ODevice *inst ( ); |
109 | 109 | ||
110 | 110 | ||
111 | 111 | ||
112 | // information | 112 | // information |
113 | 113 | ||
114 | QString modelString ( ) const; | 114 | QString modelString ( ) const; |
115 | OModel model ( ) const; | 115 | OModel model ( ) const; |
116 | inline OModel series ( ) const { return (OModel) ( model ( ) & Model_Series_Mask ); } | 116 | inline OModel series ( ) const { return (OModel) ( model ( ) & Model_Series_Mask ); } |
117 | 117 | ||
118 | QString vendorString ( ) const; | 118 | QString vendorString ( ) const; |