summaryrefslogtreecommitdiff
authorerik <erik>2007-02-09 17:47:29 (UTC)
committer erik <erik>2007-02-09 17:47:29 (UTC)
commitb3cde0d17f52f996c04a55de90583ca60a7e0210 (patch) (unidiff)
treed088372023f1031c9ae7a37e66c42c6d8c4e3d25
parent98353ac16bb90ee4b5df18945acf4fa7f05f9a85 (diff)
downloadopie-b3cde0d17f52f996c04a55de90583ca60a7e0210.zip
opie-b3cde0d17f52f996c04a55de90583ca60a7e0210.tar.gz
opie-b3cde0d17f52f996c04a55de90583ca60a7e0210.tar.bz2
This commit makes all supported models bit unique from each other within
their respective families. It also makes the model families bit unique with each other. This patch makes button (and general device features) not overlap. This fixes Opie bug 1836. Thanks goes out to Paul E. (aka BlueLightning) for originally reporting this problem and providing the text for a reasonable near-term solution. On top of all that, Paul even test the patch that this commit is based on, confirming that it was a reasonable solution. For those of you out there who support distros for the other model families, please be careful. And note that we have not tested on any of model family but iPAQs. We don't anticipate any problems, but be careful out there.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiecore/device/odevice.h65
1 files changed, 35 insertions, 30 deletions
diff --git a/libopie2/opiecore/device/odevice.h b/libopie2/opiecore/device/odevice.h
index 1eb5959..c6306e7 100644
--- a/libopie2/opiecore/device/odevice.h
+++ b/libopie2/opiecore/device/odevice.h
@@ -1,241 +1,246 @@
1/* 1/*
2                 This file is part of the Opie Project 2                 This file is part of the Opie Project
3              (C) 2002-2006 The Opie Team <opie-devel@handhelds.org> 3              (C) 2002-2006 The Opie Team <opie-devel@handhelds.org>
4 =. 4 =.
5 .=l. 5 .=l.
6           .>+-= 6           .>+-=
7 _;:,     .>    :=|. This program is free software; you can 7 _;:,     .>    :=|. This program is free software; you can
8.> <`_,   >  .   <= redistribute it and/or modify it under 8.> <`_,   >  .   <= redistribute it and/or modify it under
9:`=1 )Y*s>-.--   : the terms of the GNU Library General Public 9:`=1 )Y*s>-.--   : the terms of the GNU Library General Public
10.="- .-=="i,     .._ License as published by the Free Software 10.="- .-=="i,     .._ License as published by the Free Software
11 - .   .-<_>     .<> Foundation; version 2 of the License. 11 - .   .-<_>     .<> Foundation; version 2 of the License.
12     ._= =}       : 12     ._= =}       :
13    .%`+i>       _;_. 13    .%`+i>       _;_.
14    .i_,=:_.      -<s. This program is distributed in the hope that 14    .i_,=:_.      -<s. This program is distributed in the hope that
15     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 15     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
16    : ..    .:,     . . . without even the implied warranty of 16    : ..    .:,     . . . without even the implied warranty of
17    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 17    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
18  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 18  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
19..}^=.=       =       ; Library General Public License for more 19..}^=.=       =       ; Library General Public License for more
20++=   -.     .`     .: details. 20++=   -.     .`     .: details.
21 :     =  ...= . :.=- 21 :     =  ...= . :.=-
22 -.   .:....=;==+<; You should have received a copy of the GNU 22 -.   .:....=;==+<; You should have received a copy of the GNU
23  -_. . .   )=.  = Library General Public License along with 23  -_. . .   )=.  = Library General Public License along with
24    --        :-=` this library; see the file COPYING.LIB. 24    --        :-=` this library; see the file COPYING.LIB.
25 If not, write to the Free Software Foundation, 25 If not, write to the Free Software Foundation,
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_H_ 30#ifndef ODEVICE_H_
31#define ODEVICE_H_ 31#define ODEVICE_H_
32 32
33/* OPIE */ 33/* OPIE */
34#include <opie2/odevicebutton.h> 34#include <opie2/odevicebutton.h>
35#include <qpe/qpeapplication.h> /* for Transformation enum.. */ 35#include <qpe/qpeapplication.h> /* for Transformation enum.. */
36 36
37/* QT */ 37/* QT */
38#include <qnamespace.h> 38#include <qnamespace.h>
39#include <qobject.h> 39#include <qobject.h>
40#include <qstring.h> 40#include <qstring.h>
41 41
42 42
43#include <qstrlist.h> 43#include <qstrlist.h>
44#include <qwindowsystem_qws.h> 44#include <qwindowsystem_qws.h>
45 45
46 46
47class Sound; 47class Sound;
48 48
49namespace Opie{ 49namespace Opie{
50namespace Core{ 50namespace Core{
51 51
52class ODeviceData; 52class ODeviceData;
53/** 53/**
54 * The available devices 54 * The available devices
55 */ 55 */
56enum OModel { 56enum OModel {
57 Model_Unknown, // = 0 57 Model_Unknown, // = 0
58 58
59 Model_Series_Mask = 0xffff0000, 59 Model_Series_Mask = 0xffff0000,
60 60
61 Model_iPAQ = ( 1 << 16 ), 61 Model_iPAQ = ( 1 << 16 ),
62 62
63 Model_iPAQ_All = ( Model_iPAQ | 0xffff ), 63 Model_iPAQ_All = ( Model_iPAQ | 0xffff ),
64 Model_iPAQ_H31xx = ( Model_iPAQ | 0x0001 ), 64 Model_iPAQ_H31xx = ( Model_iPAQ | 0x0001 ),
65 Model_iPAQ_H36xx = ( Model_iPAQ | 0x0002 ), 65 Model_iPAQ_H36xx = ( Model_iPAQ | 0x0002 ),
66 Model_iPAQ_H37xx = ( Model_iPAQ | 0x0003 ), 66 Model_iPAQ_H37xx = ( Model_iPAQ | 0x0004 ),
67 Model_iPAQ_H38xx = ( Model_iPAQ | 0x0004 ), 67 Model_iPAQ_H38xx = ( Model_iPAQ | 0x0008 ),
68 Model_iPAQ_H39xx = ( Model_iPAQ | 0x0005 ), 68 Model_iPAQ_H39xx = ( Model_iPAQ | 0x0010 ),
69 Model_iPAQ_H5xxx = ( Model_iPAQ | 0x0006 ), 69 Model_iPAQ_H5xxx = ( Model_iPAQ | 0x0020 ),
70 Model_iPAQ_H22xx = ( Model_iPAQ | 0x0007 ), 70 Model_iPAQ_H22xx = ( Model_iPAQ | 0x0040 ),
71 Model_iPAQ_H191x = ( Model_iPAQ | 0x0008 ), 71 Model_iPAQ_H191x = ( Model_iPAQ | 0x0080 ),
72 Model_iPAQ_H1940 = ( Model_iPAQ | 0x0009 ), 72 Model_iPAQ_H1940 = ( Model_iPAQ | 0x0100 ),
73 Model_iPAQ_HX4700 = ( Model_iPAQ | 0x000A ), 73 Model_iPAQ_HX4700 = ( Model_iPAQ | 0x0200 ),
74 Model_iPAQ_H4xxx = ( Model_iPAQ | 0x000b ), 74 Model_iPAQ_H4xxx = ( Model_iPAQ | 0x0400 ),
75 Model_Jornada = ( 6 << 16 ), 75
76 Model_Jornada = ( 3 << 17 ),
77
76 Model_Jornada_56x = ( Model_Jornada | 0x0001 ), 78 Model_Jornada_56x = ( Model_Jornada | 0x0001 ),
77 Model_Jornada_720 = ( Model_Jornada | 0x0002 ), 79 Model_Jornada_720 = ( Model_Jornada | 0x0002 ),
78 Model_Jornada_820 = ( Model_Jornada | 0x0003 ), 80 Model_Jornada_820 = ( Model_Jornada | 0x0004 ),
79 81
80 Model_Zaurus = ( 2 << 16 ), 82 Model_Zaurus = ( 2 << 16 ),
81 83
82 Model_Zaurus_SL5000 = ( Model_Zaurus | 0x0001 ), 84 Model_Zaurus_SL5000 = ( Model_Zaurus | 0x0001 ),
83 Model_Zaurus_SL5500 = ( Model_Zaurus | 0x0002 ), 85 Model_Zaurus_SL5500 = ( Model_Zaurus | 0x0002 ),
84 Model_Zaurus_SLA300 = ( Model_Zaurus | 0x0003 ), 86 Model_Zaurus_SLA300 = ( Model_Zaurus | 0x0004 ),
85 Model_Zaurus_SLB600 = ( Model_Zaurus | 0x0004 ), 87 Model_Zaurus_SLB600 = ( Model_Zaurus | 0x0008 ),
86 Model_Zaurus_SLC7x0 = ( Model_Zaurus | 0x0005 ), 88 Model_Zaurus_SLC7x0 = ( Model_Zaurus | 0x0010 ),
87 Model_Zaurus_SL6000 = ( Model_Zaurus | 0x0006 ), 89 Model_Zaurus_SL6000 = ( Model_Zaurus | 0x0020 ),
88 Model_Zaurus_SLC3000 = ( Model_Zaurus | 0x0007 ), 90 Model_Zaurus_SLC3000 = ( Model_Zaurus | 0x0040 ),
89 Model_Zaurus_SLC1000 = ( Model_Zaurus | 0x0008 ), 91 Model_Zaurus_SLC1000 = ( Model_Zaurus | 0x0080 ),
90 Model_Zaurus_SLC3100 = ( Model_Zaurus | 0x0009 ), 92 Model_Zaurus_SLC3100 = ( Model_Zaurus | 0x0100 ),
91 93
92 Model_SIMpad = ( 3 << 16 ), 94 Model_SIMpad = ( 3 << 16 ),
93 95
94 Model_SIMpad_All = ( Model_SIMpad | 0xffff ), 96 Model_SIMpad_All = ( Model_SIMpad | 0xffff ),
95 Model_SIMpad_CL4 = ( Model_SIMpad | 0x0001 ), 97 Model_SIMpad_CL4 = ( Model_SIMpad | 0x0001 ),
96 Model_SIMpad_SL4 = ( Model_SIMpad | 0x0002 ), 98 Model_SIMpad_SL4 = ( Model_SIMpad | 0x0002 ),
97 Model_SIMpad_SLC = ( Model_SIMpad | 0x0003 ), 99 Model_SIMpad_SLC = ( Model_SIMpad | 0x0004 ),
98 Model_SIMpad_TSinus = ( Model_SIMpad | 0x0004 ), 100 Model_SIMpad_TSinus = ( Model_SIMpad | 0x0008 ),
99 101
100 Model_Ramses = ( 4 << 16 ), 102 Model_Ramses = ( 4 << 16 ),
101 103
102 Model_Ramses_All = ( Model_Ramses | 0xffff ), 104 Model_Ramses_All = ( Model_Ramses | 0xffff ),
103 Model_Ramses_MNCI = ( Model_Ramses | 0x0001 ), 105 Model_Ramses_MNCI = ( Model_Ramses | 0x0001 ),
104 Model_Ramses_MNCIRX = ( Model_Ramses | 0x0002 ), 106 Model_Ramses_MNCIRX = ( Model_Ramses | 0x0002 ),
105 107
106 Model_Yopy = ( 5 << 16 ), 108 Model_Yopy = ( 5 << 16 ),
107 109
108 Model_Yopy_All = ( Model_Yopy | 0xffff ), 110 Model_Yopy_All = ( Model_Yopy | 0xffff ),
109 Model_Yopy_3000 = ( Model_Yopy | 0x0001 ), 111 Model_Yopy_3000 = ( Model_Yopy | 0x0001 ),
110 Model_Yopy_3500 = ( Model_Yopy | 0x0002 ), 112 Model_Yopy_3500 = ( Model_Yopy | 0x0002 ),
111 Model_Yopy_3700 = ( Model_Yopy | 0x0003 ), 113 Model_Yopy_3700 = ( Model_Yopy | 0x0004 ),
112 114
113 Model_Beagle = ( 6 << 16 ), 115 Model_Beagle = ( 6 << 16 ),
114 116
115 Model_Beagle_All = ( Model_Beagle | 0xffff ), 117 Model_Beagle_All = ( Model_Beagle | 0xffff ),
116 Model_Beagle_PA100 = ( Model_Beagle | 0x0001 ), 118 Model_Beagle_PA100 = ( Model_Beagle | 0x0001 ),
117 119
118 Model_GenuineIntel = ( 7 << 16 ), 120 Model_GenuineIntel = ( 7 << 16 ),
119 121
120 Model_MyPal = ( 8 << 16 ), 122 Model_MyPal = ( 8 << 16 ),
121 123
122 Model_MyPal_All = ( Model_MyPal | 0xffff ), 124 Model_MyPal_All = ( Model_MyPal | 0xffff ),
123 Model_MyPal_620 = ( Model_MyPal | 0x0001 ), 125 Model_MyPal_620 = ( Model_MyPal | 0x0001 ),
124 Model_MyPal_716 = ( Model_MyPal | 0x0002 ), 126 Model_MyPal_716 = ( Model_MyPal | 0x0002 ),
125 Model_MyPal_730 = ( Model_MyPal | 0x0003 ), 127 Model_MyPal_730 = ( Model_MyPal | 0x0004 ),
126 128
127 Model_HTC = ( 9 << 16 ), 129 Model_HTC = ( 9 << 16 ),
130
128 Model_HTC_All = ( Model_HTC | 0xffff ), 131 Model_HTC_All = ( Model_HTC | 0xffff ),
129 Model_HTC_Universal = ( Model_HTC | 0x0001 ), 132 Model_HTC_Universal = ( Model_HTC | 0x0001 ),
130 Model_HTC_Alpine = ( Model_HTC | 0x0002 ), 133 Model_HTC_Alpine = ( Model_HTC | 0x0002 ),
131 Model_HTC_Apache = ( Model_HTC | 0x0003 ), 134 Model_HTC_Apache = ( Model_HTC | 0x0004 ),
132 Model_HTC_Beetles = ( Model_HTC | 0x0004 ), 135 Model_HTC_Beetles = ( Model_HTC | 0x0008 ),
133 Model_HTC_Blueangel = ( Model_HTC | 0x0005 ), 136 Model_HTC_Blueangel = ( Model_HTC | 0x0010 ),
134 Model_HTC_Himalaya = ( Model_HTC | 0x0006 ), 137 Model_HTC_Himalaya = ( Model_HTC | 0x0020 ),
135 Model_HTC_Magician = ( Model_HTC | 0x0007 ), 138 Model_HTC_Magician = ( Model_HTC | 0x0040 ),
139
140 Model_Motorola = ( 2 << 17 ),
136 141
137 Model_Motorola = ( 9 << 17 ),
138 Model_Motorola_All = ( Model_Motorola | 0xffff ), 142 Model_Motorola_All = ( Model_Motorola | 0xffff ),
139 Model_Motorola_EZX = ( Model_Motorola | 0x0001 ), 143 Model_Motorola_EZX = ( Model_Motorola | 0x0001 ),
140 144
141 Model_Palm = ( 10 << 16), 145 Model_Palm = ( 1 << 17),
146
142 Model_Palm_All = ( Model_Palm | 0xffff ), 147 Model_Palm_All = ( Model_Palm | 0xffff ),
143 Model_Palm_LD = ( Model_Palm | 0x0001 ), 148 Model_Palm_LD = ( Model_Palm | 0x0001 ),
144 Model_Palm_TX = ( Model_Palm | 0x0002 ), 149 Model_Palm_TX = ( Model_Palm | 0x0002 ),
145 Model_Palm_Z72 = ( Model_Palm | 0x0003 ), 150 Model_Palm_Z72 = ( Model_Palm | 0x0004 ),
146 151
147}; 152};
148 153
149/** 154/**
150 * The vendor of the device 155 * The vendor of the device
151 */ 156 */
152enum OVendor { 157enum OVendor {
153 Vendor_Unknown, 158 Vendor_Unknown,
154 159
155 Vendor_HP, 160 Vendor_HP,
156 Vendor_Sharp, 161 Vendor_Sharp,
157 Vendor_SIEMENS, 162 Vendor_SIEMENS,
158 Vendor_MundN, 163 Vendor_MundN,
159 Vendor_GMate, 164 Vendor_GMate,
160 Vendor_MasterIA, 165 Vendor_MasterIA,
161 Vendor_GenuineIntel, 166 Vendor_GenuineIntel,
162 Vendor_Asus, 167 Vendor_Asus,
163 Vendor_HTC, 168 Vendor_HTC,
164 Vendor_Motorola, 169 Vendor_Motorola,
165 Vendor_Palm, 170 Vendor_Palm,
166}; 171};
167 172
168/** 173/**
169 * The System used 174 * The System used
170 */ 175 */
171enum OSystem { 176enum OSystem {
172 System_Unknown, 177 System_Unknown,
173 178
174 System_Familiar, 179 System_Familiar,
175 System_Zaurus, 180 System_Zaurus,
176 System_OpenZaurus, 181 System_OpenZaurus,
177 System_Linupy, 182 System_Linupy,
178 System_OpenEmbedded, 183 System_OpenEmbedded,
179 System_PC, 184 System_PC,
180 System_OpenEZX, 185 System_OpenEZX,
181 System_Angstrom, 186 System_Angstrom,
182}; 187};
183 188
184typedef struct { 189typedef struct {
185 OSystem system; 190 OSystem system;
186 char* sysstr; 191 char* sysstr;
187 char* sysvfile; 192 char* sysvfile;
188} ODistribution; 193} ODistribution;
189 194
190extern ODistribution distributions[]; 195extern ODistribution distributions[];
191 196
192 197
193enum OLedState { 198enum OLedState {
194 Led_Off, 199 Led_Off,
195 Led_On, 200 Led_On,
196 Led_BlinkSlow, 201 Led_BlinkSlow,
197 Led_BlinkFast 202 Led_BlinkFast
198}; 203};
199 204
200enum OLed { 205enum OLed {
201 Led_Mail, 206 Led_Mail,
202 Led_Power, 207 Led_Power,
203 Led_BlueTooth 208 Led_BlueTooth
204}; 209};
205 210
206enum OHardKey { 211enum OHardKey {
207 HardKey_Datebook = Qt::Key_F9, 212 HardKey_Datebook = Qt::Key_F9,
208 HardKey_Contacts = Qt::Key_F10, 213 HardKey_Contacts = Qt::Key_F10,
209 HardKey_Menu = Qt::Key_F11, 214 HardKey_Menu = Qt::Key_F11,
210 HardKey_Home = Qt::Key_F12, 215 HardKey_Home = Qt::Key_F12,
211 HardKey_Mail = Qt::Key_F13, 216 HardKey_Mail = Qt::Key_F13,
212 HardKey_Record = Qt::Key_F24, 217 HardKey_Record = Qt::Key_F24,
213 HardKey_Suspend = Qt::Key_F34, 218 HardKey_Suspend = Qt::Key_F34,
214 HardKey_Backlight = Qt::Key_F35, 219 HardKey_Backlight = Qt::Key_F35,
215 HardKey_Action = Qt::Key_F10, 220 HardKey_Action = Qt::Key_F10,
216 HardKey_OK = Qt::Key_F11, 221 HardKey_OK = Qt::Key_F11,
217 HardKey_End = Qt::Key_F12, 222 HardKey_End = Qt::Key_F12,
218}; 223};
219 224
220enum ODirection { 225enum ODirection {
221 CW = 0, 226 CW = 0,
222 CCW = 1, 227 CCW = 1,
223 Flip = 2, 228 Flip = 2,
224}; 229};
225 230
226enum OHingeStatus { 231enum OHingeStatus {
227 CASE_CLOSED = 3, 232 CASE_CLOSED = 3,
228 CASE_PORTRAIT = 2, 233 CASE_PORTRAIT = 2,
229 CASE_LANDSCAPE = 0, 234 CASE_LANDSCAPE = 0,
230 CASE_UNKNOWN = 1, 235 CASE_UNKNOWN = 1,
231}; 236};
232 237
233/* default button for qvfb or such 238/* default button for qvfb or such
234 * see odevice.cpp for details. 239 * see odevice.cpp for details.
235 * hint: manage a user defined button for qvfb? 240 * hint: manage a user defined button for qvfb?
236 * alwin 241 * alwin
237 */ 242 */
238struct default_button { 243struct default_button {
239 Qt::Key code; 244 Qt::Key code;
240 char *utext; 245 char *utext;
241 char *pix; 246 char *pix;