summaryrefslogtreecommitdiff
path: root/libopie2/opiecore/device/odevice_ipaq.cpp
Unidiff
Diffstat (limited to 'libopie2/opiecore/device/odevice_ipaq.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiecore/device/odevice_ipaq.cpp52
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
75typedef struct { 75typedef 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
84struct i_button ipaq_buttons [] = { 84struct 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
117void iPAQ::init() 117void 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
192void iPAQ::initButtons() 190void 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 ));