Diffstat (limited to 'libopie2/opiecore/device/odevice_ipaq.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | libopie2/opiecore/device/odevice_ipaq.cpp | 52 |
1 files changed, 25 insertions, 27 deletions
diff --git a/libopie2/opiecore/device/odevice_ipaq.cpp b/libopie2/opiecore/device/odevice_ipaq.cpp index 98e2ffa..efe35e7 100644 --- a/libopie2/opiecore/device/odevice_ipaq.cpp +++ b/libopie2/opiecore/device/odevice_ipaq.cpp | |||
@@ -69,143 +69,141 @@ typedef struct { | |||
69 | unsigned char OffOnBlink; /* 0=off 1=on 2=Blink */ | 69 | unsigned char OffOnBlink; /* 0=off 1=on 2=Blink */ |
70 | unsigned char TotalTime; /* Units of 5 seconds */ | 70 | unsigned char TotalTime; /* Units of 5 seconds */ |
71 | unsigned char OnTime; /* units of 100m/s */ | 71 | unsigned char OnTime; /* units of 100m/s */ |
72 | unsigned char OffTime; /* units of 100m/s */ | 72 | unsigned char OffTime; /* units of 100m/s */ |
73 | } LED_IN; | 73 | } LED_IN; |
74 | 74 | ||
75 | typedef struct { | 75 | typedef struct { |
76 | unsigned char mode; | 76 | unsigned char mode; |
77 | unsigned char pwr; | 77 | unsigned char pwr; |
78 | unsigned char brightness; | 78 | unsigned char brightness; |
79 | } FLITE_IN; | 79 | } FLITE_IN; |
80 | 80 | ||
81 | #define LED_ON OD_IOW( 'f', 5, LED_IN ) | 81 | #define LED_ON OD_IOW( 'f', 5, LED_IN ) |
82 | #define FLITE_ON OD_IOW( 'f', 7, FLITE_IN ) | 82 | #define FLITE_ON OD_IOW( 'f', 7, FLITE_IN ) |
83 | 83 | ||
84 | struct i_button ipaq_buttons [] = { | 84 | struct i_button ipaq_buttons [] = { |
85 | { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx, | 85 | { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx, |
86 | Qt::Key_F9, QT_TRANSLATE_NOOP("Button", "Calendar Button"), | 86 | Qt::Key_F9, QT_TRANSLATE_NOOP("Button", "Calendar Button"), |
87 | "devicebuttons/ipaq_calendar", | 87 | "devicebuttons/ipaq_calendar", |
88 | "datebook", "nextView()", | 88 | "datebook", "nextView()", |
89 | "today", "raise()" }, | 89 | "today", "raise()" }, |
90 | { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx, | 90 | { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx, |
91 | Qt::Key_F10, QT_TRANSLATE_NOOP("Button", "Contacts Button"), | 91 | Qt::Key_F10, QT_TRANSLATE_NOOP("Button", "Contacts Button"), |
92 | "devicebuttons/ipaq_contact", | 92 | "devicebuttons/ipaq_contact", |
93 | "addressbook", "raise()", | 93 | "addressbook", "raise()", |
94 | "addressbook", "beamBusinessCard()" }, | 94 | "addressbook", "beamBusinessCard()" }, |
95 | { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx, | 95 | { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx, |
96 | Qt::Key_F11, QT_TRANSLATE_NOOP("Button", "Menu Button"), | 96 | Qt::Key_F11, QT_TRANSLATE_NOOP("Button", "Menu Button"), |
97 | "devicebuttons/ipaq_menu", | 97 | "devicebuttons/ipaq_menu", |
98 | "QPE/TaskBar", "toggleMenu()", | 98 | "QPE/TaskBar", "toggleMenu()", |
99 | "QPE/TaskBar", "toggleStartMenu()" }, | 99 | "QPE/TaskBar", "toggleStartMenu()" }, |
100 | { Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx, | 100 | { Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx, |
101 | Qt::Key_F13, QT_TRANSLATE_NOOP("Button", "Mail Button"), | 101 | Qt::Key_F13, QT_TRANSLATE_NOOP("Button", "Mail Button"), |
102 | "devicebuttons/ipaq_mail", | 102 | "devicebuttons/ipaq_mail", |
103 | "opiemail", "raise()", | 103 | "opiemail", "raise()", |
104 | "opiemail", "newMail()" }, | 104 | "opiemail", "newMail()" }, |
105 | { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx, | 105 | { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx, |
106 | Qt::Key_F12, QT_TRANSLATE_NOOP("Button", "Home Button"), | 106 | Qt::Key_F12, QT_TRANSLATE_NOOP("Button", "Home Button"), |
107 | "devicebuttons/ipaq_home", | 107 | "devicebuttons/ipaq_home", |
108 | "QPE/Launcher", "home()", | 108 | "QPE/Launcher", "home()", |
109 | "buttonsettings", "raise()" }, | 109 | "buttonsettings", "raise()" }, |
110 | { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx, | 110 | { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx, |
111 | Qt::Key_F24, QT_TRANSLATE_NOOP("Button", "Record Button"), | 111 | Qt::Key_F24, QT_TRANSLATE_NOOP("Button", "Record Button"), |
112 | "devicebuttons/ipaq_record", | 112 | "devicebuttons/ipaq_record", |
113 | "QPE/VMemo", "toggleRecord()", | 113 | "QPE/VMemo", "toggleRecord()", |
114 | "sound", "raise()" }, | 114 | "sound", "raise()" }, |
115 | }; | 115 | }; |
116 | 116 | ||
117 | void iPAQ::init() | 117 | void iPAQ::init(const QString& model) |
118 | { | 118 | { |
119 | d->m_vendorstr = "HP"; | 119 | d->m_vendorstr = "HP"; |
120 | d->m_vendor = Vendor_HP; | 120 | d->m_vendor = Vendor_HP; |
121 | 121 | ||
122 | QFile f ( "/proc/hal/model" ); | 122 | d->m_modelstr = model.mid(model.findRev('H')); |
123 | |||
124 | if ( d->m_modelstr == "H3100" ) | ||
125 | d->m_model = Model_iPAQ_H31xx; | ||
126 | else if ( d->m_modelstr == "H3600" ) | ||
127 | d->m_model = Model_iPAQ_H36xx; | ||
128 | else if ( d->m_modelstr == "H3700" ) | ||
129 | d->m_model = Model_iPAQ_H37xx; | ||
130 | else if ( d->m_modelstr == "H3800" ) | ||
131 | d->m_model = Model_iPAQ_H38xx; | ||
132 | else if ( d->m_modelstr == "H3900" ) | ||
133 | d->m_model = Model_iPAQ_H39xx; | ||
134 | else if ( d->m_modelstr == "H5400" ) | ||
135 | d->m_model = Model_iPAQ_H5xxx; | ||
136 | else if ( d->m_modelstr == "H2200" ) | ||
137 | d->m_model = Model_iPAQ_H22xx; | ||
138 | else | ||
139 | d->m_model = Model_Unknown; | ||
123 | 140 | ||
124 | if ( f. open ( IO_ReadOnly )) { | ||
125 | QTextStream ts ( &f ); | ||
126 | 141 | ||
127 | d->m_modelstr = "H" + ts. readLine(); | ||
128 | |||
129 | if ( d->m_modelstr == "H3100" ) | ||
130 | d->m_model = Model_iPAQ_H31xx; | ||
131 | else if ( d->m_modelstr == "H3600" ) | ||
132 | d->m_model = Model_iPAQ_H36xx; | ||
133 | else if ( d->m_modelstr == "H3700" ) | ||
134 | d->m_model = Model_iPAQ_H37xx; | ||
135 | else if ( d->m_modelstr == "H3800" ) | ||
136 | d->m_model = Model_iPAQ_H38xx; | ||
137 | else if ( d->m_modelstr == "H3900" ) | ||
138 | d->m_model = Model_iPAQ_H39xx; | ||
139 | else if ( d->m_modelstr == "H5400" ) | ||
140 | d->m_model = Model_iPAQ_H5xxx; | ||
141 | else | ||
142 | d->m_model = Model_Unknown; | ||
143 | |||
144 | f. close(); | ||
145 | } | ||
146 | 142 | ||
147 | switch ( d->m_model ) { | 143 | switch ( d->m_model ) { |
148 | case Model_iPAQ_H31xx: | 144 | case Model_iPAQ_H31xx: |
149 | case Model_iPAQ_H38xx: | 145 | case Model_iPAQ_H38xx: |
150 | d->m_rotation = Rot90; | 146 | d->m_rotation = Rot90; |
151 | break; | 147 | break; |
148 | case Model_iPAQ_H5xxx: | ||
149 | case Model_iPAQ_H22xx: | ||
150 | d->m_rotation = Rot0; | ||
151 | break; | ||
152 | case Model_iPAQ_H36xx: | 152 | case Model_iPAQ_H36xx: |
153 | case Model_iPAQ_H37xx: | 153 | case Model_iPAQ_H37xx: |
154 | case Model_iPAQ_H39xx: | 154 | case Model_iPAQ_H39xx: |
155 | |||
156 | default: | 155 | default: |
157 | d->m_rotation = Rot270; | 156 | d->m_rotation = Rot270; |
158 | break; | 157 | break; |
159 | case Model_iPAQ_H5xxx: | 158 | |
160 | d->m_rotation = Rot0; | ||
161 | } | 159 | } |
162 | 160 | ||
163 | f. setName ( "/etc/familiar-version" ); | 161 | QFile f( "/etc/familiar-version" ); |
164 | if ( f. open ( IO_ReadOnly )) { | 162 | if ( f. open ( IO_ReadOnly )) { |
165 | d->m_systemstr = "Familiar"; | 163 | d->m_systemstr = "Familiar"; |
166 | d->m_system = System_Familiar; | 164 | d->m_system = System_Familiar; |
167 | 165 | ||
168 | QTextStream ts ( &f ); | 166 | QTextStream ts ( &f ); |
169 | d->m_sysverstr = ts. readLine(). mid ( 10 ); | 167 | d->m_sysverstr = ts. readLine(). mid ( 10 ); |
170 | 168 | ||
171 | f. close(); | 169 | f. close(); |
172 | } else { | 170 | } else { |
173 | f. setName ( "/etc/oz_version" ); | 171 | f. setName ( "/etc/oz_version" ); |
174 | 172 | ||
175 | if ( f. open ( IO_ReadOnly )) { | 173 | if ( f. open ( IO_ReadOnly )) { |
176 | d->m_systemstr = "OpenEmbedded/iPaq"; | 174 | d->m_systemstr = "OpenEmbedded/iPaq"; |
177 | d->m_system = System_Familiar; | 175 | d->m_system = System_Familiar; |
178 | 176 | ||
179 | QTextStream ts ( &f ); | 177 | QTextStream ts ( &f ); |
180 | ts.setDevice ( &f ); | 178 | ts.setDevice ( &f ); |
181 | d->m_sysverstr = ts. readLine(); | 179 | d->m_sysverstr = ts. readLine(); |
182 | f. close(); | 180 | f. close(); |
183 | } | 181 | } |
184 | } | 182 | } |
185 | 183 | ||
186 | m_leds [0] = m_leds [1] = Led_Off; | 184 | m_leds [0] = m_leds [1] = Led_Off; |
187 | 185 | ||
188 | m_power_timer = 0; | 186 | m_power_timer = 0; |
189 | 187 | ||
190 | } | 188 | } |
191 | 189 | ||
192 | void iPAQ::initButtons() | 190 | void iPAQ::initButtons() |
193 | { | 191 | { |
194 | if ( d->m_buttons ) | 192 | if ( d->m_buttons ) |
195 | return; | 193 | return; |
196 | 194 | ||
197 | if ( isQWS( ) ) | 195 | if ( isQWS( ) ) |
198 | QWSServer::setKeyboardFilter ( this ); | 196 | QWSServer::setKeyboardFilter ( this ); |
199 | 197 | ||
200 | d->m_buttons = new QValueList <ODeviceButton>; | 198 | d->m_buttons = new QValueList <ODeviceButton>; |
201 | 199 | ||
202 | for ( uint i = 0; i < ( sizeof( ipaq_buttons ) / sizeof( i_button )); i++ ) { | 200 | for ( uint i = 0; i < ( sizeof( ipaq_buttons ) / sizeof( i_button )); i++ ) { |
203 | i_button *ib = ipaq_buttons + i; | 201 | i_button *ib = ipaq_buttons + i; |
204 | ODeviceButton b; | 202 | ODeviceButton b; |
205 | 203 | ||
206 | if (( ib->model & d->m_model ) == d->m_model ) { | 204 | if (( ib->model & d->m_model ) == d->m_model ) { |
207 | b. setKeycode ( ib->code ); | 205 | b. setKeycode ( ib->code ); |
208 | b. setUserText ( QObject::tr ( "Button", ib->utext )); | 206 | b. setUserText ( QObject::tr ( "Button", ib->utext )); |
209 | b. setPixmap ( Resource::loadPixmap ( ib->pix )); | 207 | b. setPixmap ( Resource::loadPixmap ( ib->pix )); |
210 | b. setFactoryPresetPressedAction ( OQCopMessage ( makeChannel ( ib->fpressedservice ), ib->fpressedaction )); | 208 | b. setFactoryPresetPressedAction ( OQCopMessage ( makeChannel ( ib->fpressedservice ), ib->fpressedaction )); |
211 | b. setFactoryPresetHeldAction ( OQCopMessage ( makeChannel ( ib->fheldservice ), ib->fheldaction )); | 209 | b. setFactoryPresetHeldAction ( OQCopMessage ( makeChannel ( ib->fheldservice ), ib->fheldaction )); |