summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--ChangeLog1
-rw-r--r--libopie2/opiecore/device/odevice_zaurus.cpp3
2 files changed, 1 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index ccec044..8ff1be9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,354 +1,355 @@
1 2005-??-??Opie 1.2.2 1 2005-??-??Opie 1.2.2
2 2
3 3
4 New Features 4 New Features
5 ------------ 5 ------------
6 * Appearance: Added configuration options to set smallIconSize, bigIconSize, useBigPixmaps (hrw, drw) 6 * Appearance: Added configuration options to set smallIconSize, bigIconSize, useBigPixmaps (hrw, drw)
7 * Opie-Notes: Notes application based on NoteZ (hrw) 7 * Opie-Notes: Notes application based on NoteZ (hrw)
8 * OPIE-PackageManager: Added two configuration options: "Force recursive", "Verbose fetch" (hrw) 8 * OPIE-PackageManager: Added two configuration options: "Force recursive", "Verbose fetch" (hrw)
9 9
10 Fixed Bugs 10 Fixed Bugs
11 ---------- 11 ----------
12 * #1695 - Date selector use too small fontsize on VGA screen (hrw) 12 * #1695 - Date selector use too small fontsize on VGA screen (hrw)
13 * #1686 - opie-console lack UI setting for switching scrollbar (hrw) 13 * #1686 - opie-console lack UI setting for switching scrollbar (hrw)
14 * #1647 - Opie-console doesn't respect scroll-bar on left side (hrw) 14 * #1647 - Opie-console doesn't respect scroll-bar on left side (hrw)
15 * #1624 - Button settngs changes are applied only after restart (hrw) 15 * #1624 - Button settngs changes are applied only after restart (hrw)
16 * #1492 - Backup and Restore does not show list of backups to restore on start (hrw) 16 * #1492 - Backup and Restore does not show list of backups to restore on start (hrw)
17 * n.a. - remove hardcoded font size from wellenreiter (hrw) 17 * n.a. - remove hardcoded font size from wellenreiter (hrw)
18 * n.a. - added patch to build QT/E 2.3.10 with gcc 4.x.x (hrw) 18 * n.a. - added patch to build QT/E 2.3.10 with gcc 4.x.x (hrw)
19 * n.a. - make blue-pin UI resizable to looks good in any resolution (hrw) 19 * n.a. - make blue-pin UI resizable to looks good in any resolution (hrw)
20 * n.a. - fix a problem with vCard send to Sony Ericsson k600i (ar) 20 * n.a. - fix a problem with vCard send to Sony Ericsson k600i (ar)
21 * n.a. - add a patch to build Qt/E 2.3.10 on amd64 with gcc 4.x.x (ar) 21 * n.a. - add a patch to build Qt/E 2.3.10 on amd64 with gcc 4.x.x (ar)
22 * n.a. - Opie-console fallback to FixedFont settings from qpe.conf in config (hrw) 22 * n.a. - Opie-console fallback to FixedFont settings from qpe.conf in config (hrw)
23 * n.a. - Set version to 1.2.1 in About applet (hrw) 23 * n.a. - Set version to 1.2.1 in About applet (hrw)
24 24
25 Internal 25 Internal
26 -------- 26 --------
27 * libopiecore: /etc/oz_version renamed to /etc/openzaurus-version (hrw) 27 * libopiecore: /etc/oz_version renamed to /etc/openzaurus-version (hrw)
28 * libopiecore: SL6000 (tosa) now uses corgi-bl (Dirk Opfer)
28 29
29 2005-09-11Opie 1.2.1 30 2005-09-11Opie 1.2.1
30 31
31 32
32 New Features 33 New Features
33 ------------ 34 ------------
34 * OpieStumbler: Scans WiFi networks using the wireless extension scanning (skyhusker) 35 * OpieStumbler: Scans WiFi networks using the wireless extension scanning (skyhusker)
35 * Opie-Reader: Support for document formats ArriereGo and Reb, add flite output (tim,pohly) 36 * Opie-Reader: Support for document formats ArriereGo and Reb, add flite output (tim,pohly)
36 * Opie-Networksettings: Add support for wlan-ng devices and improve WEP handling (Dirk Opfer) 37 * Opie-Networksettings: Add support for wlan-ng devices and improve WEP handling (Dirk Opfer)
37 * Wellenreiter: Remove Joining networks - use OpieStumbler for that (mickeyl) 38 * Wellenreiter: Remove Joining networks - use OpieStumbler for that (mickeyl)
38 * Opie-Mobilemsg has gone unsupported - it never really worked and there will be a replacement (mickeyl) 39 * Opie-Mobilemsg has gone unsupported - it never really worked and there will be a replacement (mickeyl)
39 * Opie-Tabmanager has gone unsupported - it barely works and there is not much of a use of it anyway (mickeyl) 40 * Opie-Tabmanager has gone unsupported - it barely works and there is not much of a use of it anyway (mickeyl)
40 * Checkbook: Added configuration option to use smaller font for checkbook transaction tab (hrw) 41 * Checkbook: Added configuration option to use smaller font for checkbook transaction tab (hrw)
41 * ZSafe: Made UI conform to Opie standards (drw) 42 * ZSafe: Made UI conform to Opie standards (drw)
42 * Today Addressbook plugin: Fixed configuration to show/not show birthdays, use checkboxes for selection (hrw) 43 * Today Addressbook plugin: Fixed configuration to show/not show birthdays, use checkboxes for selection (hrw)
43 * Opie-Console: Read initial fixed font configuration from qpe.conf (mickeyl) 44 * Opie-Console: Read initial fixed font configuration from qpe.conf (mickeyl)
44 * Opie-PcmciaApplet: Configure insert/resume actions and bind unsupported cards (mickeyl) 45 * Opie-PcmciaApplet: Configure insert/resume actions and bind unsupported cards (mickeyl)
45 * SysInfo: Remove CPU tab and add Devices tab instead (mickeyl) 46 * SysInfo: Remove CPU tab and add Devices tab instead (mickeyl)
46 * Opie-smb: Added Opie front end for Samba (ljp) 47 * Opie-smb: Added Opie front end for Samba (ljp)
47 * Opie-Bluetooth: Replace obex send implementation and patch libopieobex and the bluetoothapplet (Michael Haynie) 48 * Opie-Bluetooth: Replace obex send implementation and patch libopieobex and the bluetoothapplet (Michael Haynie)
48 * Opieplayer: rudimentary podcast support (ljp) 49 * Opieplayer: rudimentary podcast support (ljp)
49 50
50 Fixed Bugs 51 Fixed Bugs
51 ---------- 52 ----------
52 * #1377 - Suspend Powermanagement when switched to another VT (mickeyl) 53 * #1377 - Suspend Powermanagement when switched to another VT (mickeyl)
53 - We actually suspend the complete Opie now in that case. 54 - We actually suspend the complete Opie now in that case.
54 * #1384 - Battery status updated improperly when charging (skyhusker) 55 * #1384 - Battery status updated improperly when charging (skyhusker)
55 * #1476 - Wrong order of application entries in the O-menu (skyhusker) 56 * #1476 - Wrong order of application entries in the O-menu (skyhusker)
56 * #1514 - Remove usage of cardmon/pcmcia picture in applications. pcmcia is now an inline picture (mickeyl) 57 * #1514 - Remove usage of cardmon/pcmcia picture in applications. pcmcia is now an inline picture (mickeyl)
57 * #1535- Missing line break and unnecessary location shown with Today-Calendar plugin (deller) 58 * #1535- Missing line break and unnecessary location shown with Today-Calendar plugin (deller)
58 * #1543 - Time Settings: "predict" tab is displayed twice after reopen (hrw) 59 * #1543 - Time Settings: "predict" tab is displayed twice after reopen (hrw)
59 * #1546 - Battery applet popup is not always large enough to show jacket remaining info (skyhusker) 60 * #1546 - Battery applet popup is not always large enough to show jacket remaining info (skyhusker)
60 * #1557 - Light&Power-Settings don't store warning intervall and warning levels (skyhusker) 61 * #1557 - Light&Power-Settings don't store warning intervall and warning levels (skyhusker)
61 * #1565 - crash-fix in odevice.cpp while scanning the distribution table (deller) 62 * #1565 - crash-fix in odevice.cpp while scanning the distribution table (deller)
62 * #1614 - Make Opie-console start in $HOME instead of / (skyhusker) 63 * #1614 - Make Opie-console start in $HOME instead of / (skyhusker)
63 * #1635 - opie-today, datebook-plugin does not show notes (skyhusker) 64 * #1635 - opie-today, datebook-plugin does not show notes (skyhusker)
64 * #1665 - Opie-IRC displays the host prepended to the message when peer is using and ipv6 address (skyhusker) 65 * #1665 - Opie-IRC displays the host prepended to the message when peer is using and ipv6 address (skyhusker)
65 * #1666 - Opie-IRC does not allow to add !channels in config asautojoin ones (skyhusker) 66 * #1666 - Opie-IRC does not allow to add !channels in config asautojoin ones (skyhusker)
66 * #1667 - Opie-IRC does not show messages from !channel (skyhusker) 67 * #1667 - Opie-IRC does not show messages from !channel (skyhusker)
67 * #1679 - Security PIN plugin is QVGA sized (hrw) 68 * #1679 - Security PIN plugin is QVGA sized (hrw)
68 * #1682 - Properly resize tab control in OTabWidget (drw) 69 * #1682 - Properly resize tab control in OTabWidget (drw)
69 * n.a. - always show volume and wireless applet popups inside visible screen (deller) 70 * n.a. - always show volume and wireless applet popups inside visible screen (deller)
70 * n.a. - scale O-Menu-Applets appropriately (mickeyl) 71 * n.a. - scale O-Menu-Applets appropriately (mickeyl)
71 * n.a. - libopienet: fix bugs in wireless scanning and setting SSID (skyhusker) 72 * n.a. - libopienet: fix bugs in wireless scanning and setting SSID (skyhusker)
72 * n.a. - Wellenreiter: relax WE version matching test a bit (mickeyl) 73 * n.a. - Wellenreiter: relax WE version matching test a bit (mickeyl)
73 * n.a. - scale BluezApplet appropriately and use larger icons (mickeyl) 74 * n.a. - scale BluezApplet appropriately and use larger icons (mickeyl)
74 * n.a. - memoryapplet: fix crash in memoryapplet on kernels without swap support (seneca cunningham) 75 * n.a. - memoryapplet: fix crash in memoryapplet on kernels without swap support (seneca cunningham)
75 * n.a. - networksettings: ignore hostap control interfaces wifi* (mickeyl) 76 * n.a. - networksettings: ignore hostap control interfaces wifi* (mickeyl)
76 * n.a. - Today Addressbook plugin fix configuration to show/not show birthdays, use checkboxes for selection (hrw) 77 * n.a. - Today Addressbook plugin fix configuration to show/not show birthdays, use checkboxes for selection (hrw)
77 * n.a. - remove hardcoded font size from netsystemtime (hrw) 78 * n.a. - remove hardcoded font size from netsystemtime (hrw)
78 * n.a. - remove hardcoded font size from checkbook graphs (hrw) 79 * n.a. - remove hardcoded font size from checkbook graphs (hrw)
79 * n.a. - Dagger - fixes for Sword 1.5.8, morph tag x-refs, closing last tab crash (drw) 80 * n.a. - Dagger - fixes for Sword 1.5.8, morph tag x-refs, closing last tab crash (drw)
80 81
81 82
82 Internal 83 Internal
83 -------- 84 --------
84 * Make BluezApplet use OTaskbarApplet (mickeyl) 85 * Make BluezApplet use OTaskbarApplet (mickeyl)
85 * libopiecore: rewrite OFileNotification to use the Linux 2.6 inotify interface (mickeyl) 86 * libopiecore: rewrite OFileNotification to use the Linux 2.6 inotify interface (mickeyl)
86 * libopiecore: add ODirNotification - recursive directory notifications (mickeyl) 87 * libopiecore: add ODirNotification - recursive directory notifications (mickeyl)
87 * libopienet: Skip hostap control interfaces 'wifi' and improve robustness in ONetworkInterface (mickeyl) 88 * libopienet: Skip hostap control interfaces 'wifi' and improve robustness in ONetworkInterface (mickeyl)
88 * libopieui: Remove OVersatileView and OVersatileViewItem (mickeyl) 89 * libopieui: Remove OVersatileView and OVersatileViewItem (mickeyl)
89 * libopienet: Miscellaneous API cleanups (mickeyl) 90 * libopienet: Miscellaneous API cleanups (mickeyl)
90 * libopiecore: Add linux pcmcia system abstraction classes (mickeyl) 91 * libopiecore: Add linux pcmcia system abstraction classes (mickeyl)
91 * libopiecore: ODevice now knows the default gfx driver to use (mteira,mickeyl) 92 * libopiecore: ODevice now knows the default gfx driver to use (mteira,mickeyl)
92 * libopiecore: Add support for the Sharp SL-C3100 "Borzoi" (mickeyl) 93 * libopiecore: Add support for the Sharp SL-C3100 "Borzoi" (mickeyl)
93 * libopiecore: Add support for the new Linux Inputsystem Switches type [necessary for auto rotation in 2.6.13] (mickeyl) 94 * libopiecore: Add support for the new Linux Inputsystem Switches type [necessary for auto rotation in 2.6.13] (mickeyl)
94 * Remove assumptions about default gfx driver ("Transformed") all over the place (mteira,mickeyl) 95 * Remove assumptions about default gfx driver ("Transformed") all over the place (mteira,mickeyl)
95 * Fix / Optimize number of scanned directories (ljp) 96 * Fix / Optimize number of scanned directories (ljp)
96 * Use five point mouse calibration to make calibrated mouse drivers work on newer Zaurii (rp,mickeyl) 97 * Use five point mouse calibration to make calibrated mouse drivers work on newer Zaurii (rp,mickeyl)
97 98
98 2005-03-25Opie 1.2.0 99 2005-03-25Opie 1.2.0
99 100
100 Fixed Bugs 101 Fixed Bugs
101 ---------- 102 ----------
102 * #1613 - AdvancedFM - scale toolbar icons appropriately (drw) 103 * #1613 - AdvancedFM - scale toolbar icons appropriately (drw)
103 * #1620 - OFileSelector - show the button on press and not on press on hold (alwin) 104 * #1620 - OFileSelector - show the button on press and not on press on hold (alwin)
104 * #1473 - Opie-Eye - Same as #1620 but we lack a common FileSystem Button class (zecke) 105 * #1473 - Opie-Eye - Same as #1620 but we lack a common FileSystem Button class (zecke)
105 * n.a. - PackageManager - fix bug where messages show up multiple times in install dialog (drw) 106 * n.a. - PackageManager - fix bug where messages show up multiple times in install dialog (drw)
106 * n.a.- make qpeglobal.h include qglobal.h (zecke) 107 * n.a.- make qpeglobal.h include qglobal.h (zecke)
107 108
108 2005-03-20Opie 1.2.0-rc1 109 2005-03-20Opie 1.2.0-rc1
109 110
110 111
111 New Features 112 New Features
112 ------------ 113 ------------
113 * Launcher: Support a static background pixmap (mickeyl) 114 * Launcher: Support a static background pixmap (mickeyl)
114 * LauncherSettings: Choose whether to have a static background pixmap (mickeyl) 115 * LauncherSettings: Choose whether to have a static background pixmap (mickeyl)
115 * PackageManager supports the 'lists_dir' ipkg configuration option (drw) 116 * PackageManager supports the 'lists_dir' ipkg configuration option (drw)
116 * Added hi-res inline images for large resolution devices (drw) 117 * Added hi-res inline images for large resolution devices (drw)
117 * Improved launcher icons for consistency (ar) 118 * Improved launcher icons for consistency (ar)
118 * Datebook: Added plugin system to datebook so holidays and birthdays from contacts may displayed in datebook (alwin) 119 * Datebook: Added plugin system to datebook so holidays and birthdays from contacts may displayed in datebook (alwin)
119 120
120 Fixed Bugs 121 Fixed Bugs
121 ---------- 122 ----------
122 * #1236 - VCards contained empty home and work address entries causing Palms to crash (eilers) 123 * #1236 - VCards contained empty home and work address entries causing Palms to crash (eilers)
123 * #1412 - Launcher Settings - fixed default settings for background in Edit tab dialog (drw) 124 * #1412 - Launcher Settings - fixed default settings for background in Edit tab dialog (drw)
124 * #1472 - Opie textedit now check for unsaved changes on ESC key (ljp) 125 * #1472 - Opie textedit now check for unsaved changes on ESC key (ljp)
125 * #1474 - Implement GUI for Scrollbars on the Left in Appearance (zecke) 126 * #1474 - Implement GUI for Scrollbars on the Left in Appearance (zecke)
126 * #1482 - Fix double '/' in paths (zecke) 127 * #1482 - Fix double '/' in paths (zecke)
127 * #1536 - Autosave of custom locations in opie backup (ar) 128 * #1536 - Autosave of custom locations in opie backup (ar)
128 * #1539 - Fixed displaying too long path in the delete dialog in opie-eye (zecke) 129 * #1539 - Fixed displaying too long path in the delete dialog in opie-eye (zecke)
129 * #1540 - Implemented deletion of DocLnks in opie-eye (zecke) 130 * #1540 - Implemented deletion of DocLnks in opie-eye (zecke)
130 * #1542 - Fixed Todo crash when priority < 1 or > 5 (drw) 131 * #1542 - Fixed Todo crash when priority < 1 or > 5 (drw)
131 * #1550 - Browse for alarm sound start in QPEDIR/sounds/ (zecke) 132 * #1550 - Browse for alarm sound start in QPEDIR/sounds/ (zecke)
132 * #1554 - Fixed Opie-Console name in .desktop file (mickeyl) 133 * #1554 - Fixed Opie-Console name in .desktop file (mickeyl)
133 * #1556 - Start to look for sound files in /opt/QtPalmtop/sounds (zecke) 134 * #1556 - Start to look for sound files in /opt/QtPalmtop/sounds (zecke)
134 * #1558 - Fixed opie-login breaking opie startup (mickeyl) 135 * #1558 - Fixed opie-login breaking opie startup (mickeyl)
135 * #1560 - Fixed Opie-Console picking up the wrong shell (bluelightning) 136 * #1560 - Fixed Opie-Console picking up the wrong shell (bluelightning)
136 * #1570 - Confirmation needed befor Restore a backup and overwrite local data (ar) 137 * #1570 - Confirmation needed befor Restore a backup and overwrite local data (ar)
137 * #1591 - Addressbook sortorder changed by clicking on column 0 (eilers) 138 * #1591 - Addressbook sortorder changed by clicking on column 0 (eilers)
138 * #1599 - Security - change recommendation for opie-multiauth to opie-securityplugin (gints) 139 * #1599 - Security - change recommendation for opie-multiauth to opie-securityplugin (gints)
139 * #1604 - Checkbook crashed on startup (drw) 140 * #1604 - Checkbook crashed on startup (drw)
140 * #1608 - Addressbook crashed after search, which may caused by not initialzed member variable (eilers) 141 * #1608 - Addressbook crashed after search, which may caused by not initialzed member variable (eilers)
141 * #1608 - QueryByExampe-Datediff on SQL database did not worked properly (eilers) 142 * #1608 - QueryByExampe-Datediff on SQL database did not worked properly (eilers)
142 * n.a. - Netsystemtime - fixed UI to prevent error dialog from displaying when it shouldn't, get rid of some compiler warnings (drw) 143 * n.a. - Netsystemtime - fixed UI to prevent error dialog from displaying when it shouldn't, get rid of some compiler warnings (drw)
143 * n.a. - PackageManager - fixed where last package in status file was not shown as installed when it should be (drw) 144 * n.a. - PackageManager - fixed where last package in status file was not shown as installed when it should be (drw)
144 * n.a. - PackageManager - fixed bug where lists_dir was not being honored at startup (drw) 145 * n.a. - PackageManager - fixed bug where lists_dir was not being honored at startup (drw)
145 * n.a. - PackageManager - provided default value for lists_dir when none is entered in configuration dialog (drw) 146 * n.a. - PackageManager - provided default value for lists_dir when none is entered in configuration dialog (drw)
146 * n.a. - OTabWidget - fixed scroll buttons, fix display position of tabs (drw) 147 * n.a. - OTabWidget - fixed scroll buttons, fix display position of tabs (drw)
147 * n.a. - AddressBook - fixed sorting by 'File As' name (drw) 148 * n.a. - AddressBook - fixed sorting by 'File As' name (drw)
148 * n.a. - AddressBook - fixed category handling for 'All' and 'Unfiled' (eilers) 149 * n.a. - AddressBook - fixed category handling for 'All' and 'Unfiled' (eilers)
149 * n.a. - AddressBook - fixed letter picker record selection and sort records afterwards (drw) 150 * n.a. - AddressBook - fixed letter picker record selection and sort records afterwards (drw)
150 151
151 Internal 152 Internal
152 -------- 153 --------
153 * Worked around bug in Qt/Embedded 2.3.10: qt_version() returns 231 (mickeyl) 154 * Worked around bug in Qt/Embedded 2.3.10: qt_version() returns 231 (mickeyl)
154 * Killed the need for weak symbols in QtE (zecke) 155 * Killed the need for weak symbols in QtE (zecke)
155 * Added optional building libqpe without inline images (mickeyl) 156 * Added optional building libqpe without inline images (mickeyl)
156 * OColorButton - fixed so does not emit a colorSelected signal inside of resizeEvent (drw) 157 * OColorButton - fixed so does not emit a colorSelected signal inside of resizeEvent (drw)
157 158
158 2005-02-03Opie 1.1.9 159 2005-02-03Opie 1.1.9
159 160
160 New Features 161 New Features
161 ------------ 162 ------------
162 * Number of icon columns in Launcher is customizable through Launcher.conf (hrw,zecke,mickeyl) 163 * Number of icon columns in Launcher is customizable through Launcher.conf (hrw,zecke,mickeyl)
163 * Number of icon columns in Launcher is customizable through LauncherSettings (mickeyl) 164 * Number of icon columns in Launcher is customizable through LauncherSettings (mickeyl)
164 * Usability enhancements in OpieIRC (skyhusker) 165 * Usability enhancements in OpieIRC (skyhusker)
165 166
166 Fixed Bugs 167 Fixed Bugs
167 ---------- 168 ----------
168 * #1501 - Fixed bug in todo sql backend (eilers) 169 * #1501 - Fixed bug in todo sql backend (eilers)
169 * #1505 - Added more Swap sizes in memoryapplet (mickeyl) 170 * #1505 - Added more Swap sizes in memoryapplet (mickeyl)
170 * #1525 - Hopefully fixed double alarms and not removing alarms set with the Clock application (zecke) 171 * #1525 - Hopefully fixed double alarms and not removing alarms set with the Clock application (zecke)
171 * #1533 - Security Owner Dialog (shown in case of unsuccessfull authentiacation) wasn't able to display information in non latin1 encoding (zecke) 172 * #1533 - Security Owner Dialog (shown in case of unsuccessfull authentiacation) wasn't able to display information in non latin1 encoding (zecke)
172 * n.a. - Removed hard coded font sizes in a couple of inputmethods (mickeyl) 173 * n.a. - Removed hard coded font sizes in a couple of inputmethods (mickeyl)
173 * n.a. - Removed MediumDlg appearing prior to FirstUsage wizard (i.e. calibration) (mickeyl) 174 * n.a. - Removed MediumDlg appearing prior to FirstUsage wizard (i.e. calibration) (mickeyl)
174 * n.a. - Fixed numerous buglets in OpieIRC (skyhusker) 175 * n.a. - Fixed numerous buglets in OpieIRC (skyhusker)
175 176
176 Internal 177 Internal
177 -------- 178 --------
178 * Added the Qtopia 1.7 SDK macros for quick-apps to easa compilation of 3rd party apps against our headers (mickeyl) 179 * Added the Qtopia 1.7 SDK macros for quick-apps to easa compilation of 3rd party apps against our headers (mickeyl)
179 * You can now use the Opie build system in combination with a OpenEmbedded staging area which makes a nice cross development environment (mickeyl) 180 * You can now use the Opie build system in combination with a OpenEmbedded staging area which makes a nice cross development environment (mickeyl)
180 * Made Opie compilable with Qt/Embedded 2.3.10 (ar) 181 * Made Opie compilable with Qt/Embedded 2.3.10 (ar)
181 * Changed Launcher to get default orientation from ODevice w/ QWS_DISPLAY overriding (mickeyl) 182 * Changed Launcher to get default orientation from ODevice w/ QWS_DISPLAY overriding (mickeyl)
182 * Build tree cleanups (mickeyl) 183 * Build tree cleanups (mickeyl)
183 184
184 2004-11-26Opie 1.1.8 185 2004-11-26Opie 1.1.8
185 186
186 New Features 187 New Features
187 ------------ 188 ------------
188 * PackageManager supports installation of local ipkg files (drw) 189 * PackageManager supports installation of local ipkg files (drw)
189 * PackageManager supports linking of applications to root (drw) 190 * PackageManager supports linking of applications to root (drw)
190 * PackageManager supports src/gz feeds (drw,wimpie) 191 * PackageManager supports src/gz feeds (drw,wimpie)
191 * Added a syslog information tab to sysinfo (mickeyl) 192 * Added a syslog information tab to sysinfo (mickeyl)
192 * Added new, more consistent, PIM icons + a GIMP teplate (ar) 193 * Added new, more consistent, PIM icons + a GIMP teplate (ar)
193 194
194 Fixed Bugs 195 Fixed Bugs
195 ---------- 196 ----------
196 * #1017 - Tetrix doesn't display correctly for high resolution screens (drw) 197 * #1017 - Tetrix doesn't display correctly for high resolution screens (drw)
197 * #1269 - VCards were imported into personal area if it was activated (eilers) 198 * #1269 - VCards were imported into personal area if it was activated (eilers)
198 * #1464 - Packagemanager dont set active filter after install a package (drw) 199 * #1464 - Packagemanager dont set active filter after install a package (drw)
199 * #1479 - Improved VCard-Parser to import VCards created by Evolution 2 and Apple Addressbook (eilers) 200 * #1479 - Improved VCard-Parser to import VCards created by Evolution 2 and Apple Addressbook (eilers)
200 * #1493 - Fixed one column layout bug of the launcher (hrw) 201 * #1493 - Fixed one column layout bug of the launcher (hrw)
201 * n.a. - PackageManager - (Minor UI tweak) in filter dialog, when option is enabled, set focus to widget that corresponds to that option (drw) 202 * n.a. - PackageManager - (Minor UI tweak) in filter dialog, when option is enabled, set focus to widget that corresponds to that option (drw)
202 * n.a. - PackageManager - (Minor UI tweak) fix double entry in source feed configuration when adding a new feed (drw) 203 * n.a. - PackageManager - (Minor UI tweak) fix double entry in source feed configuration when adding a new feed (drw)
203 * n.a. - Battery Applet - fix sizing of battery info popup (drw,mickeyl) 204 * n.a. - Battery Applet - fix sizing of battery info popup (drw,mickeyl)
204 205
205 Internal 206 Internal
206 -------- 207 --------
207 * Moved libopie1 to unsupported (mickeyl) 208 * Moved libopie1 to unsupported (mickeyl)
208 * Implemented generic queryByExample() with incremental searching. A lot of internal changes of the Pim2-library (eilers) 209 * Implemented generic queryByExample() with incremental searching. A lot of internal changes of the Pim2-library (eilers)
209 * Added fast and full featured and incremental sorted() for SQL addressbook backend (eilers) 210 * Added fast and full featured and incremental sorted() for SQL addressbook backend (eilers)
210 211
211 2004-11-14Opie 1.1.7 212 2004-11-14Opie 1.1.7
212 213
213 New Features 214 New Features
214 ------------ 215 ------------
215 * libOpieDB now uses SQLite V3 instead V2. Remember to upgrade your database files! (eilers) 216 * libOpieDB now uses SQLite V3 instead V2. Remember to upgrade your database files! (eilers)
216 * Backup now uses the busy indicator when backing up and restore (ar) 217 * Backup now uses the busy indicator when backing up and restore (ar)
217 * OpiePlayer2 gained adding of Directories to the playlist (zecke) 218 * OpiePlayer2 gained adding of Directories to the playlist (zecke)
218 * OpiePlayer2 better error handling (zecke) 219 * OpiePlayer2 better error handling (zecke)
219 * OpiePlayer2 progress indication while streaming (zecke) 220 * OpiePlayer2 progress indication while streaming (zecke)
220 * OpiePlayer2 ported to use libxine 1.0.0-rc6a (brad,zecke) 221 * OpiePlayer2 ported to use libxine 1.0.0-rc6a (brad,zecke)
221 * Ported brightnessapplet from Qtopia 1.7 (mickeyl) 222 * Ported brightnessapplet from Qtopia 1.7 (mickeyl)
222 * Opie-Eye got a Digital Camera File Backend (alwin,zecke) 223 * Opie-Eye got a Digital Camera File Backend (alwin,zecke)
223 * Support for Tuxpad1 of Tradesquare.NL (mickeyl,zecke) 224 * Support for Tuxpad1 of Tradesquare.NL (mickeyl,zecke)
224 * Opie-Console use Custom Font and Size in a Profile (harlekin) 225 * Opie-Console use Custom Font and Size in a Profile (harlekin)
225 * Opie-Console transparently log the Output and Input to a file (harlekin) 226 * Opie-Console transparently log the Output and Input to a file (harlekin)
226 * Added new O-menu icon to lock the PDA immediately: opie-lockapplet (clem) 227 * Added new O-menu icon to lock the PDA immediately: opie-lockapplet (clem)
227 * Opie-Security now hides the plugin-based authentication tabs if no auth. plugin package is installed (clem) 228 * Opie-Security now hides the plugin-based authentication tabs if no auth. plugin package is installed (clem)
228 * Opie-Security gained a 'test authentication' button (clem) 229 * Opie-Security gained a 'test authentication' button (clem)
229 * Opie-Eye got a more unique layout (menubar), a slideshow, user can setup some defaults 230 * Opie-Eye got a more unique layout (menubar), a slideshow, user can setup some defaults
230 * Opie-Mail improve the handling of POP mail boxes (alwin) 231 * Opie-Mail improve the handling of POP mail boxes (alwin)
231 * Both Opie-Eye and Opie-Mail were greatly improved due the hard work of Rajko Albrecht(alwin) 232 * Both Opie-Eye and Opie-Mail were greatly improved due the hard work of Rajko Albrecht(alwin)
232 * Opie IRC - backports of the 'NeIRC fork' (zecke) 233 * Opie IRC - backports of the 'NeIRC fork' (zecke)
233 234
234 Fixed Bugs 235 Fixed Bugs
235 ---------- 236 ----------
236 * #501 - Pickboard is able to show 'Umlaute' (TT,zecke) 237 * #501 - Pickboard is able to show 'Umlaute' (TT,zecke)
237 * #608 - Make Opie usable for left handed users (zecke) 238 * #608 - Make Opie usable for left handed users (zecke)
238 * #957 - Import of VCards/VTodos/VEvents with BASE64 encoding (ljp,zecke) 239 * #957 - Import of VCards/VTodos/VEvents with BASE64 encoding (ljp,zecke)
239 * #1245 - Opie-Go 'paused' (zecke) 240 * #1245 - Opie-Go 'paused' (zecke)
240 * #1358 - DocTab didn't show any MimeTypes (was fixed earlier) (zecke) 241 * #1358 - DocTab didn't show any MimeTypes (was fixed earlier) (zecke)
241 * #1380 - QDateBookAccess::remove() doesn't remove entries (eilers, zecke) 242 * #1380 - QDateBookAccess::remove() doesn't remove entries (eilers, zecke)
242 * #1395 - Build VNC Backend with gcc3.4 243 * #1395 - Build VNC Backend with gcc3.4
243 * #1440 - The icon of opie-mobilemsg is missing (CoreDump) 244 * #1440 - The icon of opie-mobilemsg is missing (CoreDump)
244 * #1426 - Add missing opie-bartender Icon (CoreDump) 245 * #1426 - Add missing opie-bartender Icon (CoreDump)
245 * #1445 - Opie-Sheet Has No Icon (CoreDump) 246 * #1445 - Opie-Sheet Has No Icon (CoreDump)
246 * #1448 - Brightness Applet added (mickeyl) 247 * #1448 - Brightness Applet added (mickeyl)
247 * #1450 - ZSame didn't clear the bonus item after winning a game (zecke) 248 * #1450 - ZSame didn't clear the bonus item after winning a game (zecke)
248 * #1482 - Fix OFileSelector to be able to sort by size (zecke) 249 * #1482 - Fix OFileSelector to be able to sort by size (zecke)
249 * n.a. - Opie-mail: fixed some crasher, some layout-problems 250 * n.a. - Opie-mail: fixed some crasher, some layout-problems
250 * n.a. - Converted applications to not hardcode /opt/QtPalmtop but to use QPEApplication::qpeDir (zecke) 251 * n.a. - Converted applications to not hardcode /opt/QtPalmtop but to use QPEApplication::qpeDir (zecke)
251 * n.a. - Converted usage of qpeDir() not to include a '/' as first charachter of the string (zecke) 252 * n.a. - Converted usage of qpeDir() not to include a '/' as first charachter of the string (zecke)
252 * n.a. - Build system: Enable distcc and ccache when crosscompiling too, and use them everywhere we can (clem) 253 * n.a. - Build system: Enable distcc and ccache when crosscompiling too, and use them everywhere we can (clem)
253 * n.a. - Build system: Fix deps in several config.in (and fix scripts/deps.pl too) to stop breaking builds, especially with make -j highNumber (clem) 254 * n.a. - Build system: Fix deps in several config.in (and fix scripts/deps.pl too) to stop breaking builds, especially with make -j highNumber (clem)
254 * n.a. - Removed hardcoded icon size in a couple of applets (mickeyl) 255 * n.a. - Removed hardcoded icon size in a couple of applets (mickeyl)
255 256
256 Internal 257 Internal
257 -------- 258 --------
258 * Opie-Qashmoney has been moved to unsupported (mickeyl) 259 * Opie-Qashmoney has been moved to unsupported (mickeyl)
259 * Opie-Ubrowser has been moved to unsupported (mickeyl) 260 * Opie-Ubrowser has been moved to unsupported (mickeyl)
260 261
261 2004-09-17Opie 1.1.6 262 2004-09-17Opie 1.1.6
262 263
263 New Features 264 New Features
264 ------------ 265 ------------
265 * Fifteen gained configurable number of items (zecke) 266 * Fifteen gained configurable number of items (zecke)
266 * Fifteen can have custom background images (zecke) 267 * Fifteen can have custom background images (zecke)
267 * Added daemonizing capabilities to QWS Server [via Qt/Embedded] (mickeyl) 268 * Added daemonizing capabilities to QWS Server [via Qt/Embedded] (mickeyl)
268 * Integrated the new security framework into libopie2 (zecke,clem) 269 * Integrated the new security framework into libopie2 (zecke,clem)
269 * Converted the launcher to use the new security framework (zecke) 270 * Converted the launcher to use the new security framework (zecke)
270 * Backup can now handle custom locations for backup and restore (ar) 271 * Backup can now handle custom locations for backup and restore (ar)
271 * Implemented right-on-hold feedback (wimpie,zecke) 272 * Implemented right-on-hold feedback (wimpie,zecke)
272 * Lots of new features in opie-reader (tim,pohly) 273 * Lots of new features in opie-reader (tim,pohly)
273 * Build system cleanups (schurig) 274 * Build system cleanups (schurig)
274 275
275 Fixed Bugs 276 Fixed Bugs
276 -------- 277 --------
277 * #1005 - Fixed backup to CompactFlash (ar) 278 * #1005 - Fixed backup to CompactFlash (ar)
278 * #1167 - Fixed Opie write crashing on more text than one page (ar) 279 * #1167 - Fixed Opie write crashing on more text than one page (ar)
279 * #1225 - Fixed repeated light flashing on Zaurus with keyz (mickeyl) 280 * #1225 - Fixed repeated light flashing on Zaurus with keyz (mickeyl)
280 * #1359 - Fixed bookmarks in Gutenbrowser (ljp) 281 * #1359 - Fixed bookmarks in Gutenbrowser (ljp)
281 * #1361 - Fixed auto upercase in Opie-Addressbook (eilers) 282 * #1361 - Fixed auto upercase in Opie-Addressbook (eilers)
282 * #1370 - Pimconverter now reacts on cancel key (eilers) 283 * #1370 - Pimconverter now reacts on cancel key (eilers)
283 * #1376 - Bring back the capslock/numlock display (zecke) 284 * #1376 - Bring back the capslock/numlock display (zecke)
284 * #1383 - Language settings now warns about losing open apps (Markus Litz) 285 * #1383 - Language settings now warns about losing open apps (Markus Litz)
285 * #1393 - Fixed line wrap issues in opie-console for the default profile (mickeyl) 286 * #1393 - Fixed line wrap issues in opie-console for the default profile (mickeyl)
286 * #1394 - Fixed oversized headline in opie-login (coredump) 287 * #1394 - Fixed oversized headline in opie-login (coredump)
287 * #1396 - Opie-console captures the escape key and vim is working (zecke) 288 * #1396 - Opie-console captures the escape key and vim is working (zecke)
288 * #1401 - Scrollbar is now only visible if necessary in DocTab (mickeyl) 289 * #1401 - Scrollbar is now only visible if necessary in DocTab (mickeyl)
289 290
290 2004-07-06Opie 1.1.4 291 2004-07-06Opie 1.1.4
291 292
292 New Features 293 New Features
293 ------------ 294 ------------
294 * Added four themes courtesy Robert Griebl (http://www.softforge.de/zstyle) 295 * Added four themes courtesy Robert Griebl (http://www.softforge.de/zstyle)
295 * Added Conversion tool for pim-data (eilers) 296 * Added Conversion tool for pim-data (eilers)
296 * Introduced new OPimAccessFactory and OBackendFactory which simplyfies database access (eilers) 297 * Introduced new OPimAccessFactory and OBackendFactory which simplyfies database access (eilers)
297 * Modified the PIM API for providing generic use of OPimRecords (eilers) 298 * Modified the PIM API for providing generic use of OPimRecords (eilers)
298 * Clicking on the application symbol now iterates over the application's top level widgets if already raised (zecke) 299 * Clicking on the application symbol now iterates over the application's top level widgets if already raised (zecke)
299 300
300 Fixed Bugs 301 Fixed Bugs
301 -------- 302 --------
302 * #1068 - Country Drop Down Box Off Screen 303 * #1068 - Country Drop Down Box Off Screen
303 * #1291 - Opie tinykate does not open .desktop files (ar) 304 * #1291 - Opie tinykate does not open .desktop files (ar)
304 * #1291 - Opie sheet not saving correctly (ar) 305 * #1291 - Opie sheet not saving correctly (ar)
305 * #1294 - Opie does not know about British Summer Time 306 * #1294 - Opie does not know about British Summer Time
306 * #1314 - Drawpad initialization (mickeyl) 307 * #1314 - Drawpad initialization (mickeyl)
307 * #1317 - Packagemanager crashes on hold-down or install (chicken) 308 * #1317 - Packagemanager crashes on hold-down or install (chicken)
308 * #1321 - Batteryapplet graphic glitch (harlekin) 309 * #1321 - Batteryapplet graphic glitch (harlekin)
309 * #1324 - ZSafe not starting up (mickeyl) 310 * #1324 - ZSafe not starting up (mickeyl)
310 * #1328 - Personal Home Address fields is trimmed to 1char (eilers) 311 * #1328 - Personal Home Address fields is trimmed to 1char (eilers)
311 * #1327 - Opie-mail ipk does not depend on libopiedb2 (chicken) 312 * #1327 - Opie-mail ipk does not depend on libopiedb2 (chicken)
312 * #1345 - Networksettingsplugin wlan plugin dependency on libpcap0 (mickeyl) 313 * #1345 - Networksettingsplugin wlan plugin dependency on libpcap0 (mickeyl)
313 * #1348 - Datebook dependency on libopiedb2 (chicken) 314 * #1348 - Datebook dependency on libopiedb2 (chicken)
314 * #1328 - Switched SQLDatabase and VCards char encoding from latin1 to unicode (eilers) 315 * #1328 - Switched SQLDatabase and VCards char encoding from latin1 to unicode (eilers)
315 316
316 2004-04-25Opie 1.1.3 317 2004-04-25Opie 1.1.3
317 318
318 * Introduced first implementation of SQL-Support using SQLite (eilers) 319 * Introduced first implementation of SQL-Support using SQLite (eilers)
319 * Added a new Gutenberg Project reader app - opie-gutenbrowser (ljp) 320 * Added a new Gutenberg Project reader app - opie-gutenbrowser (ljp)
320 * Added a real system graffiti character set (brad) 321 * Added a real system graffiti character set (brad)
321 * Added Generic Keyconfig Widget (zecke) 322 * Added Generic Keyconfig Widget (zecke)
322 * Improved Screenshotapplet and Drawpad integration. You can now open a screenshot in drawpad and take notes (zecke) 323 * Improved Screenshotapplet and Drawpad integration. You can now open a screenshot in drawpad and take notes (zecke)
323 * Added new Bible reader app - opie-dagger (drw) 324 * Added new Bible reader app - opie-dagger (drw)
324 * Added a new Image Viewer. Work is ongoing (zecke,alwin) 325 * Added a new Image Viewer. Work is ongoing (zecke,alwin)
325 * Added namespace usage in libopie2 and everywhere (zecke,alwin) 326 * Added namespace usage in libopie2 and everywhere (zecke,alwin)
326 * Enabled the possibility to pass command line arguments to applications (mickeyl) 327 * Enabled the possibility to pass command line arguments to applications (mickeyl)
327 * Added an about applet showing some credits and information about Opie (mickeyl) 328 * Added an about applet showing some credits and information about Opie (mickeyl)
328 * Added benchmarking functionality to sysinfo (mickeyl) 329 * Added benchmarking functionality to sysinfo (mickeyl)
329 * Added applet and configuration application for switching hardware keyboard layouts (alwin) 330 * Added applet and configuration application for switching hardware keyboard layouts (alwin)
330 * Ported applications from libopie1 to libopie2* (drw,ar,alwin) 331 * Ported applications from libopie1 to libopie2* (drw,ar,alwin)
331 * Imported fullscreen and font improvements from the Qkonsole fork to embeddedkonsole (waspe) 332 * Imported fullscreen and font improvements from the Qkonsole fork to embeddedkonsole (waspe)
332 * Clean-up of package information in control files (drw) 333 * Clean-up of package information in control files (drw)
333 * Repaired mediummount which was broken since integrating the quicklauncher (alwin) 334 * Repaired mediummount which was broken since integrating the quicklauncher (alwin)
334 * Improved big-screen support (zecke,ar) 335 * Improved big-screen support (zecke,ar)
335 * Improved multikeyboard support, added keyboard layout switching applet (mouse) 336 * Improved multikeyboard support, added keyboard layout switching applet (mouse)
336 * Added a new mail client based on libetpan (harlekin,alwin,jgf) 337 * Added a new mail client based on libetpan (harlekin,alwin,jgf)
337 * Added new package manager - opie-packagemanager (drw) 338 * Added new package manager - opie-packagemanager (drw)
338 * Improved light-n-power for C7x0 (mickeyl) 339 * Improved light-n-power for C7x0 (mickeyl)
339 * Added automatic rotation support for C7x0 (treke) 340 * Added automatic rotation support for C7x0 (treke)
340 * Split libopie1 up into a set of smaller - functionally grouped - libraries (mickeyl) 341 * Split libopie1 up into a set of smaller - functionally grouped - libraries (mickeyl)
341 * Added scanning the wireless network neighbourhood to networksettings (mickeyl) 342 * Added scanning the wireless network neighbourhood to networksettings (mickeyl)
342 343
343 2003-11-29Opie 1.0.3 344 2003-11-29Opie 1.0.3
344 345
345 * Released as Version 1.0.3 346 * Released as Version 1.0.3
346 * Improved i18n (various contributors) 347 * Improved i18n (various contributors)
347 * Reduced application startup time by integrating the TT quicklauncher (zecke,harlekin) 348 * Reduced application startup time by integrating the TT quicklauncher (zecke,harlekin)
348 * Made the Documents Tab optional (mickeyl) 349 * Made the Documents Tab optional (mickeyl)
349 * Integrated basic support for HP iPAQ 54xx and the Jornada 5xx (chicken) 350 * Integrated basic support for HP iPAQ 54xx and the Jornada 5xx (chicken)
350 351
351 2003-08-04Opie 1.0.0 352 2003-08-04Opie 1.0.0
352 353
353 * Released as Version 1.0.0 354 * Released as Version 1.0.0
354 * Including a PPP module for easy dial up (tille,harlekin,zecke) 355 * Including a PPP module for easy dial up (tille,harlekin,zecke)
diff --git a/libopie2/opiecore/device/odevice_zaurus.cpp b/libopie2/opiecore/device/odevice_zaurus.cpp
index 8a7e252..28a1ccf 100644
--- a/libopie2/opiecore/device/odevice_zaurus.cpp
+++ b/libopie2/opiecore/device/odevice_zaurus.cpp
@@ -1,759 +1,756 @@
1/* 1/*
2                 This file is part of the Opie Project 2                 This file is part of the Opie Project
3              Copyright (C) 2002-2005 The Opie Team <opie-devel@handhelds.org> 3              Copyright (C) 2002-2005 The Opie Team <opie-devel@handhelds.org>
4 =. Copyright (C) 2002-2005 Michael 'Mickey' Lauer <mickey@Vanille.de> 4 =. Copyright (C) 2002-2005 Michael 'Mickey' Lauer <mickey@Vanille.de>
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#include "odevice_zaurus.h" 30#include "odevice_zaurus.h"
31 31
32/* OPIE */ 32/* OPIE */
33#include <opie2/oinputsystem.h> 33#include <opie2/oinputsystem.h>
34#include <opie2/oresource.h> 34#include <opie2/oresource.h>
35 35
36#include <qpe/config.h> 36#include <qpe/config.h>
37#include <qpe/sound.h> 37#include <qpe/sound.h>
38 38
39/* QT */ 39/* QT */
40#include <qapplication.h> 40#include <qapplication.h>
41#include <qfile.h> 41#include <qfile.h>
42#include <qtextstream.h> 42#include <qtextstream.h>
43#include <qwindowsystem_qws.h> 43#include <qwindowsystem_qws.h>
44#include <qcopchannel_qws.h> 44#include <qcopchannel_qws.h>
45 45
46/* STD */ 46/* STD */
47#include <string.h> 47#include <string.h>
48#include <errno.h> 48#include <errno.h>
49#include <fcntl.h> 49#include <fcntl.h>
50#include <math.h> 50#include <math.h>
51#include <stdlib.h> 51#include <stdlib.h>
52#include <signal.h> 52#include <signal.h>
53#include <sys/ioctl.h> 53#include <sys/ioctl.h>
54#include <sys/time.h> 54#include <sys/time.h>
55#include <unistd.h> 55#include <unistd.h>
56#ifndef QT_NO_SOUND 56#ifndef QT_NO_SOUND
57#include <linux/soundcard.h> 57#include <linux/soundcard.h>
58#endif 58#endif
59 59
60using namespace Opie::Core; 60using namespace Opie::Core;
61using namespace Opie::Core::Internal; 61using namespace Opie::Core::Internal;
62 62
63struct z_button z_buttons [] = { 63struct z_button z_buttons [] = {
64 { Qt::Key_F9, QT_TRANSLATE_NOOP("Button", "Calendar Button"), 64 { Qt::Key_F9, QT_TRANSLATE_NOOP("Button", "Calendar Button"),
65 "devicebuttons/z_calendar", 65 "devicebuttons/z_calendar",
66 "datebook", "nextView()", 66 "datebook", "nextView()",
67 "today", "raise()" }, 67 "today", "raise()" },
68 { Qt::Key_F10, QT_TRANSLATE_NOOP("Button", "Contacts Button"), 68 { Qt::Key_F10, QT_TRANSLATE_NOOP("Button", "Contacts Button"),
69 "devicebuttons/z_contact", 69 "devicebuttons/z_contact",
70 "addressbook", "raise()", 70 "addressbook", "raise()",
71 "addressbook", "beamBusinessCard()" }, 71 "addressbook", "beamBusinessCard()" },
72 { Qt::Key_F12, QT_TRANSLATE_NOOP("Button", "Home Button"), 72 { Qt::Key_F12, QT_TRANSLATE_NOOP("Button", "Home Button"),
73 "devicebuttons/z_home", 73 "devicebuttons/z_home",
74 "QPE/Launcher", "home()", 74 "QPE/Launcher", "home()",
75 "buttonsettings", "raise()" }, 75 "buttonsettings", "raise()" },
76 { Qt::Key_F11, QT_TRANSLATE_NOOP("Button", "Menu Button"), 76 { Qt::Key_F11, QT_TRANSLATE_NOOP("Button", "Menu Button"),
77 "devicebuttons/z_menu", 77 "devicebuttons/z_menu",
78 "QPE/TaskBar", "toggleMenu()", 78 "QPE/TaskBar", "toggleMenu()",
79 "QPE/TaskBar", "toggleStartMenu()" }, 79 "QPE/TaskBar", "toggleStartMenu()" },
80 { Qt::Key_F13, QT_TRANSLATE_NOOP("Button", "Mail Button"), 80 { Qt::Key_F13, QT_TRANSLATE_NOOP("Button", "Mail Button"),
81 "devicebuttons/z_mail", 81 "devicebuttons/z_mail",
82 "opiemail", "raise()", 82 "opiemail", "raise()",
83 "opiemail", "newMail()" }, 83 "opiemail", "newMail()" },
84}; 84};
85 85
86struct z_button z_buttons_c700 [] = { 86struct z_button z_buttons_c700 [] = {
87 { Qt::Key_F9, QT_TRANSLATE_NOOP("Button", "Calendar Button"), 87 { Qt::Key_F9, QT_TRANSLATE_NOOP("Button", "Calendar Button"),
88 "devicebuttons/z_calendar", 88 "devicebuttons/z_calendar",
89 "datebook", "nextView()", 89 "datebook", "nextView()",
90 "today", "raise()" }, 90 "today", "raise()" },
91 { Qt::Key_F10, QT_TRANSLATE_NOOP("Button", "Contacts Button"), 91 { Qt::Key_F10, QT_TRANSLATE_NOOP("Button", "Contacts Button"),
92 "devicebuttons/z_contact", 92 "devicebuttons/z_contact",
93 "addressbook", "raise()", 93 "addressbook", "raise()",
94 "addressbook", "beamBusinessCard()" }, 94 "addressbook", "beamBusinessCard()" },
95 { Qt::Key_F12, QT_TRANSLATE_NOOP("Button", "Home Button"), 95 { Qt::Key_F12, QT_TRANSLATE_NOOP("Button", "Home Button"),
96 "devicebuttons/z_home", 96 "devicebuttons/z_home",
97 "QPE/Launcher", "home()", 97 "QPE/Launcher", "home()",
98 "buttonsettings", "raise()" }, 98 "buttonsettings", "raise()" },
99 { Qt::Key_F11, QT_TRANSLATE_NOOP("Button", "Menu Button"), 99 { Qt::Key_F11, QT_TRANSLATE_NOOP("Button", "Menu Button"),
100 "devicebuttons/z_menu", 100 "devicebuttons/z_menu",
101 "QPE/TaskBar", "toggleMenu()", 101 "QPE/TaskBar", "toggleMenu()",
102 "QPE/TaskBar", "toggleStartMenu()" }, 102 "QPE/TaskBar", "toggleStartMenu()" },
103 { Qt::Key_F13, QT_TRANSLATE_NOOP("Button", "Mail Button"), 103 { Qt::Key_F13, QT_TRANSLATE_NOOP("Button", "Mail Button"),
104 "devicebuttons/z_mail", 104 "devicebuttons/z_mail",
105 "opiemail", "raise()", 105 "opiemail", "raise()",
106 "opiemail", "newMail()" }, 106 "opiemail", "newMail()" },
107 107
108 { Qt::Key_F15, QT_TRANSLATE_NOOP("Button", "Hinge1"), 108 { Qt::Key_F15, QT_TRANSLATE_NOOP("Button", "Hinge1"),
109 "devicebuttons/z_hinge1", 109 "devicebuttons/z_hinge1",
110 "QPE/Rotation", "rotateDefault()",0}, 110 "QPE/Rotation", "rotateDefault()",0},
111 { Qt::Key_F16, QT_TRANSLATE_NOOP("Button", "Hinge2"), 111 { Qt::Key_F16, QT_TRANSLATE_NOOP("Button", "Hinge2"),
112 "devicebuttons/z_hinge2", 112 "devicebuttons/z_hinge2",
113 "QPE/Rotation", "rotateDefault()",0}, 113 "QPE/Rotation", "rotateDefault()",0},
114 { Qt::Key_F17, QT_TRANSLATE_NOOP("Button", "Hinge3"), 114 { Qt::Key_F17, QT_TRANSLATE_NOOP("Button", "Hinge3"),
115 "devicebuttons/z_hinge3", 115 "devicebuttons/z_hinge3",
116 "QPE/Rotation", "rotateDefault()",0}, 116 "QPE/Rotation", "rotateDefault()",0},
117}; 117};
118 118
119struct z_button z_buttons_6000 [] = { 119struct z_button z_buttons_6000 [] = {
120 { Qt::Key_F9, QT_TRANSLATE_NOOP("Button", "Calendar Button"), 120 { Qt::Key_F9, QT_TRANSLATE_NOOP("Button", "Calendar Button"),
121 "devicebuttons/z_calendar", 121 "devicebuttons/z_calendar",
122 "datebook", "nextView()", 122 "datebook", "nextView()",
123 "today", "raise()" }, 123 "today", "raise()" },
124 { Qt::Key_F10, QT_TRANSLATE_NOOP("Button", "Contacts Button"), 124 { Qt::Key_F10, QT_TRANSLATE_NOOP("Button", "Contacts Button"),
125 "devicebuttons/z_contact", 125 "devicebuttons/z_contact",
126 "addressbook", "raise()", 126 "addressbook", "raise()",
127 "addressbook", "beamBusinessCard()" }, 127 "addressbook", "beamBusinessCard()" },
128 { Qt::Key_F12, QT_TRANSLATE_NOOP("Button", "Home Button"), 128 { Qt::Key_F12, QT_TRANSLATE_NOOP("Button", "Home Button"),
129 "devicebuttons/z_home", 129 "devicebuttons/z_home",
130 "QPE/Launcher", "home()", 130 "QPE/Launcher", "home()",
131 "buttonsettings", "raise()" }, 131 "buttonsettings", "raise()" },
132 { Qt::Key_F11, QT_TRANSLATE_NOOP("Button", "Menu Button"), 132 { Qt::Key_F11, QT_TRANSLATE_NOOP("Button", "Menu Button"),
133 "devicebuttons/z_menu", 133 "devicebuttons/z_menu",
134 "QPE/TaskBar", "toggleMenu()", 134 "QPE/TaskBar", "toggleMenu()",
135 "QPE/TaskBar", "toggleStartMenu()" }, 135 "QPE/TaskBar", "toggleStartMenu()" },
136 { Qt::Key_F13, QT_TRANSLATE_NOOP("Button", "Mail Button"), 136 { Qt::Key_F13, QT_TRANSLATE_NOOP("Button", "Mail Button"),
137 "devicebuttons/z_mail", 137 "devicebuttons/z_mail",
138 "opiemail", "raise()", 138 "opiemail", "raise()",
139 "opiemail", "newMail()" }, 139 "opiemail", "newMail()" },
140 { Qt::Key_F15, QT_TRANSLATE_NOOP("Button", "Rotate Button"), 140 { Qt::Key_F15, QT_TRANSLATE_NOOP("Button", "Rotate Button"),
141 "devicebuttons/z_rotate", 141 "devicebuttons/z_rotate",
142 0, 142 0,
143 "QPE/Rotation", "rotateDefault()" }, 143 "QPE/Rotation", "rotateDefault()" },
144 { Qt::Key_F24, QT_TRANSLATE_NOOP("Button", "Record Button"), 144 { Qt::Key_F24, QT_TRANSLATE_NOOP("Button", "Record Button"),
145 "devicebuttons/z_hinge3", 145 "devicebuttons/z_hinge3",
146 "QPE/VMemo", "toggleRecord()", 146 "QPE/VMemo", "toggleRecord()",
147 "sound", "raise()" }, 147 "sound", "raise()" },
148}; 148};
149 149
150// FIXME This gets unnecessary complicated. We should think about splitting the Zaurus 150// FIXME This gets unnecessary complicated. We should think about splitting the Zaurus
151// class up into individual classes. We would need three classes 151// class up into individual classes. We would need three classes
152// 152//
153// Zaurus-Collie (SA-model w/ 320x240 lcd, for SL5500 and SL5000) 153// Zaurus-Collie (SA-model w/ 320x240 lcd, for SL5500 and SL5000)
154// Zaurus-Poodle (PXA-model w/ 320x240 lcd, for SL5600) 154// Zaurus-Poodle (PXA-model w/ 320x240 lcd, for SL5600)
155// Zaurus-Corgi (PXA-model w/ 640x480 lcd, for C700, C750, C760, C860, C3000, C1000, C3100) 155// Zaurus-Corgi (PXA-model w/ 640x480 lcd, for C700, C750, C760, C860, C3000, C1000, C3100)
156// Zaurus-Tosa (PXA-model w/ 480x640 lcd, for SL6000) 156// Zaurus-Tosa (PXA-model w/ 480x640 lcd, for SL6000)
157 157
158void Zaurus::init(const QString& cpu_info) 158void Zaurus::init(const QString& cpu_info)
159{ 159{
160 qDebug( "Zaurus::init()" ); 160 qDebug( "Zaurus::init()" );
161 // Set the time to wait until the system is really suspended 161 // Set the time to wait until the system is really suspended
162 // the delta between apm --suspend and sleeping 162 // the delta between apm --suspend and sleeping
163 setAPMTimeOut( 15000 ); 163 setAPMTimeOut( 15000 );
164 164
165 // generic distribution code already scanned /etc/issue at that point - 165 // generic distribution code already scanned /etc/issue at that point -
166 // embedix releases contain "Embedix <version> | Linux for Embedded Devices" 166 // embedix releases contain "Embedix <version> | Linux for Embedded Devices"
167 if ( d->m_sysverstr.contains( "embedix", false ) ) 167 if ( d->m_sysverstr.contains( "embedix", false ) )
168 { 168 {
169 d->m_vendorstr = "Sharp"; 169 d->m_vendorstr = "Sharp";
170 d->m_vendor = Vendor_Sharp; 170 d->m_vendor = Vendor_Sharp;
171 d->m_systemstr = "Zaurus"; 171 d->m_systemstr = "Zaurus";
172 d->m_system = System_Zaurus; 172 d->m_system = System_Zaurus;
173 m_embedix = true; 173 m_embedix = true;
174 } 174 }
175 else 175 else
176 { 176 {
177 d->m_vendorstr = "OpenZaurus Team"; 177 d->m_vendorstr = "OpenZaurus Team";
178 d->m_systemstr = "OpenZaurus"; 178 d->m_systemstr = "OpenZaurus";
179 d->m_system = System_OpenZaurus; 179 d->m_system = System_OpenZaurus;
180 // sysver already gathered 180 // sysver already gathered
181 181
182 // OpenZaurus sometimes uses the 2.4 (embedix) kernel, check if this is one 182 // OpenZaurus sometimes uses the 2.4 (embedix) kernel, check if this is one
183 FILE *uname = popen("uname -r", "r"); 183 FILE *uname = popen("uname -r", "r");
184 QFile f; 184 QFile f;
185 QString line; 185 QString line;
186 if ( f.open(IO_ReadOnly, uname) ) { 186 if ( f.open(IO_ReadOnly, uname) ) {
187 QTextStream ts ( &f ); 187 QTextStream ts ( &f );
188 line = ts.readLine(); 188 line = ts.readLine();
189 m_embedix = line.startsWith( "2.4." ); 189 m_embedix = line.startsWith( "2.4." );
190 f.close(); 190 f.close();
191 } 191 }
192 pclose(uname); 192 pclose(uname);
193 } 193 }
194 194
195 // check the Zaurus model 195 // check the Zaurus model
196 QString model; 196 QString model;
197 int loc = cpu_info.find( ":" ); 197 int loc = cpu_info.find( ":" );
198 if ( loc != -1 ) 198 if ( loc != -1 )
199 model = cpu_info.mid( loc+2 ).simplifyWhiteSpace(); 199 model = cpu_info.mid( loc+2 ).simplifyWhiteSpace();
200 else 200 else
201 model = cpu_info; 201 model = cpu_info;
202 202
203 if ( model == "SHARP Corgi" ) { 203 if ( model == "SHARP Corgi" ) {
204 d->m_model = Model_Zaurus_SLC7x0; 204 d->m_model = Model_Zaurus_SLC7x0;
205 d->m_modelstr = "Zaurus SL-C700"; 205 d->m_modelstr = "Zaurus SL-C700";
206 } else if ( model == "SHARP Shepherd" ) { 206 } else if ( model == "SHARP Shepherd" ) {
207 d->m_model = Model_Zaurus_SLC7x0; 207 d->m_model = Model_Zaurus_SLC7x0;
208 d->m_modelstr = "Zaurus SL-C750"; 208 d->m_modelstr = "Zaurus SL-C750";
209 } else if ( model == "SHARP Husky" ) { 209 } else if ( model == "SHARP Husky" ) {
210 d->m_model = Model_Zaurus_SLC7x0; 210 d->m_model = Model_Zaurus_SLC7x0;
211 d->m_modelstr = "Zaurus SL-C760 or SL-C860"; 211 d->m_modelstr = "Zaurus SL-C760 or SL-C860";
212 } else if ( model == "SHARP Boxer" ) { 212 } else if ( model == "SHARP Boxer" ) {
213 d->m_model = Model_Zaurus_SLC7x0; 213 d->m_model = Model_Zaurus_SLC7x0;
214 d->m_modelstr = "Zaurus SL-C760 or SL-C860"; 214 d->m_modelstr = "Zaurus SL-C760 or SL-C860";
215 } else if ( model == "SHARP Poodle" ) { 215 } else if ( model == "SHARP Poodle" ) {
216 d->m_model = Model_Zaurus_SLB600; 216 d->m_model = Model_Zaurus_SLB600;
217 d->m_modelstr = "Zaurus SL-B500 or SL-5600"; 217 d->m_modelstr = "Zaurus SL-B500 or SL-5600";
218 } else if ( model == "Sharp-Collie" || model == "Collie" ) { 218 } else if ( model == "Sharp-Collie" || model == "Collie" ) {
219 d->m_model = Model_Zaurus_SL5500; 219 d->m_model = Model_Zaurus_SL5500;
220 d->m_modelstr = "Zaurus SL-5500 or SL-5000d"; 220 d->m_modelstr = "Zaurus SL-5500 or SL-5000d";
221 } else if ( model == "SHARP Tosa" ) { 221 } else if ( model == "SHARP Tosa" ) {
222 d->m_model = Model_Zaurus_SL6000; 222 d->m_model = Model_Zaurus_SL6000;
223 d->m_modelstr = "Zaurus SL-6000"; 223 d->m_modelstr = "Zaurus SL-6000";
224 } else if ( model == "SHARP Spitz" ) { 224 } else if ( model == "SHARP Spitz" ) {
225 d->m_model = Model_Zaurus_SLC3000; 225 d->m_model = Model_Zaurus_SLC3000;
226 d->m_modelstr = "Zaurus SL-C3000"; 226 d->m_modelstr = "Zaurus SL-C3000";
227 } else if ( model == "SHARP Akita" ) { 227 } else if ( model == "SHARP Akita" ) {
228 d->m_model = Model_Zaurus_SLC1000; 228 d->m_model = Model_Zaurus_SLC1000;
229 d->m_modelstr = "Zaurus SL-C1000"; 229 d->m_modelstr = "Zaurus SL-C1000";
230 } else if ( model == "SHARP Borzoi" ) { 230 } else if ( model == "SHARP Borzoi" ) {
231 d->m_model = Model_Zaurus_SLC3100; 231 d->m_model = Model_Zaurus_SLC3100;
232 d->m_modelstr = "Zaurus SL-C3100"; 232 d->m_modelstr = "Zaurus SL-C3100";
233 } else { 233 } else {
234 d->m_model = Model_Zaurus_SL5500; 234 d->m_model = Model_Zaurus_SL5500;
235 d->m_modelstr = "Unknown Zaurus"; 235 d->m_modelstr = "Unknown Zaurus";
236 } 236 }
237 237
238 // set path to backlight device in kernel 2.6 238 // set path to backlight device in kernel 2.6
239 switch ( d->m_model ) 239 switch ( d->m_model )
240 { 240 {
241 case Model_Zaurus_SLB600: // fallthrough 241 case Model_Zaurus_SLB600: // fallthrough
242 case Model_Zaurus_SL5500: 242 case Model_Zaurus_SL5500:
243 m_backlightdev = "/sys/class/backlight/locomo-backlight/"; 243 m_backlightdev = "/sys/class/backlight/locomo-backlight/";
244 break; 244 break;
245 case Model_Zaurus_SL6000:
246 m_backlightdev = "/sys/class/backlight/tosa-bl/";
247 break;
248 default: 245 default:
249 m_backlightdev = "/sys/class/backlight/corgi-bl/"; 246 m_backlightdev = "/sys/class/backlight/corgi-bl/";
250 } 247 }
251 248
252 // set initial rotation 249 // set initial rotation
253 switch( d->m_model ) 250 switch( d->m_model )
254 { 251 {
255 case Model_Zaurus_SL6000: // fallthrough 252 case Model_Zaurus_SL6000: // fallthrough
256 case Model_Zaurus_SLA300: 253 case Model_Zaurus_SLA300:
257 d->m_rotation = Rot0; 254 d->m_rotation = Rot0;
258 break; 255 break;
259 case Model_Zaurus_SLC3100: // fallthrough 256 case Model_Zaurus_SLC3100: // fallthrough
260 case Model_Zaurus_SLC3000: // fallthrough 257 case Model_Zaurus_SLC3000: // fallthrough
261 case Model_Zaurus_SLC1000: // fallthrough 258 case Model_Zaurus_SLC1000: // fallthrough
262 case Model_Zaurus_SLC7x0: 259 case Model_Zaurus_SLC7x0:
263 initHingeSensor(); 260 initHingeSensor();
264 d->m_rotation = rotation(); 261 d->m_rotation = rotation();
265 d->m_direction = direction(); 262 d->m_direction = direction();
266 break; 263 break;
267 case Model_Zaurus_SLB600: // fallthrough 264 case Model_Zaurus_SLB600: // fallthrough
268 case Model_Zaurus_SL5000: // fallthrough 265 case Model_Zaurus_SL5000: // fallthrough
269 case Model_Zaurus_SL5500: // fallthrough 266 case Model_Zaurus_SL5500: // fallthrough
270 default: 267 default:
271 d->m_rotation = Rot270; 268 d->m_rotation = Rot270;
272 } 269 }
273 270
274 // set default qte driver 271 // set default qte driver
275 switch( d->m_model ) 272 switch( d->m_model )
276 { 273 {
277 case Model_Zaurus_SLC7x0: 274 case Model_Zaurus_SLC7x0:
278 d->m_qteDriver = "W100"; 275 d->m_qteDriver = "W100";
279 break; 276 break;
280 default: 277 default:
281 d->m_qteDriver = "Transformed"; 278 d->m_qteDriver = "Transformed";
282 } 279 }
283 280
284 m_leds[0] = Led_Off; 281 m_leds[0] = Led_Off;
285 282
286 if ( m_embedix ) 283 if ( m_embedix )
287 qDebug( "Zaurus::init() - Using the 2.4 Embedix HAL on a %s", (const char*) d->m_modelstr ); 284 qDebug( "Zaurus::init() - Using the 2.4 Embedix HAL on a %s", (const char*) d->m_modelstr );
288 else 285 else
289 qDebug( "Zaurus::init() - Using the 2.6 OpenZaurus HAL on a %s", (const char*) d->m_modelstr ); 286 qDebug( "Zaurus::init() - Using the 2.6 OpenZaurus HAL on a %s", (const char*) d->m_modelstr );
290} 287}
291 288
292void Zaurus::initButtons() 289void Zaurus::initButtons()
293{ 290{
294 qDebug( "Zaurus::initButtons()" ); 291 qDebug( "Zaurus::initButtons()" );
295 if ( d->m_buttons ) 292 if ( d->m_buttons )
296 return; 293 return;
297 294
298 d->m_buttons = new QValueList <ODeviceButton>; 295 d->m_buttons = new QValueList <ODeviceButton>;
299 296
300 struct z_button * pz_buttons; 297 struct z_button * pz_buttons;
301 int buttoncount; 298 int buttoncount;
302 switch ( d->m_model ) 299 switch ( d->m_model )
303 { 300 {
304 case Model_Zaurus_SL6000: 301 case Model_Zaurus_SL6000:
305 pz_buttons = z_buttons_6000; 302 pz_buttons = z_buttons_6000;
306 buttoncount = ARRAY_SIZE(z_buttons_6000); 303 buttoncount = ARRAY_SIZE(z_buttons_6000);
307 break; 304 break;
308 case Model_Zaurus_SLC3100: // fallthrough 305 case Model_Zaurus_SLC3100: // fallthrough
309 case Model_Zaurus_SLC3000: // fallthrough 306 case Model_Zaurus_SLC3000: // fallthrough
310 case Model_Zaurus_SLC1000: // fallthrough 307 case Model_Zaurus_SLC1000: // fallthrough
311 case Model_Zaurus_SLC7x0: 308 case Model_Zaurus_SLC7x0:
312 if ( isQWS( ) ) 309 if ( isQWS( ) )
313 { 310 {
314 addPreHandler(this); 311 addPreHandler(this);
315 } 312 }
316 pz_buttons = z_buttons_c700; 313 pz_buttons = z_buttons_c700;
317 buttoncount = ARRAY_SIZE(z_buttons_c700); 314 buttoncount = ARRAY_SIZE(z_buttons_c700);
318 break; 315 break;
319 default: 316 default:
320 pz_buttons = z_buttons; 317 pz_buttons = z_buttons;
321 buttoncount = ARRAY_SIZE(z_buttons); 318 buttoncount = ARRAY_SIZE(z_buttons);
322 break; 319 break;
323 } 320 }
324 321
325 for ( int i = 0; i < buttoncount; i++ ) { 322 for ( int i = 0; i < buttoncount; i++ ) {
326 struct z_button *zb = pz_buttons + i; 323 struct z_button *zb = pz_buttons + i;
327 ODeviceButton b; 324 ODeviceButton b;
328 325
329 b.setKeycode( zb->code ); 326 b.setKeycode( zb->code );
330 b.setUserText( QObject::tr( "Button", zb->utext )); 327 b.setUserText( QObject::tr( "Button", zb->utext ));
331 b.setPixmap( OResource::loadPixmap( zb->pix )); 328 b.setPixmap( OResource::loadPixmap( zb->pix ));
332 b.setFactoryPresetPressedAction( OQCopMessage( makeChannel ( zb->fpressedservice ), zb->fpressedaction )); 329 b.setFactoryPresetPressedAction( OQCopMessage( makeChannel ( zb->fpressedservice ), zb->fpressedaction ));
333 b.setFactoryPresetHeldAction( OQCopMessage( makeChannel ( zb->fheldservice ), zb->fheldaction )); 330 b.setFactoryPresetHeldAction( OQCopMessage( makeChannel ( zb->fheldservice ), zb->fheldaction ));
334 d->m_buttons->append( b ); 331 d->m_buttons->append( b );
335 } 332 }
336 333
337 reloadButtonMapping(); 334 reloadButtonMapping();
338} 335}
339 336
340 337
341 338
342typedef struct sharp_led_status { 339typedef struct sharp_led_status {
343 int which; /* select which LED status is wanted. */ 340 int which; /* select which LED status is wanted. */
344 int status; /* set new led status if you call SHARP_LED_SETSTATUS */ 341 int status; /* set new led status if you call SHARP_LED_SETSTATUS */
345} sharp_led_status; 342} sharp_led_status;
346 343
347void Zaurus::buzzer( int sound ) 344void Zaurus::buzzer( int sound )
348{ 345{
349#ifndef QT_NO_SOUND 346#ifndef QT_NO_SOUND
350 Sound *snd = 0; 347 Sound *snd = 0;
351 348
352 // All devices except SL5500 have a DSP device 349 // All devices except SL5500 have a DSP device
353 if ( d->m_model != Model_Zaurus_SL5000 350 if ( d->m_model != Model_Zaurus_SL5000
354 && d->m_model != Model_Zaurus_SL5500 ) { 351 && d->m_model != Model_Zaurus_SL5500 ) {
355 352
356 switch ( sound ){ 353 switch ( sound ){
357 case SHARP_BUZ_TOUCHSOUND: { 354 case SHARP_BUZ_TOUCHSOUND: {
358 static Sound touch_sound("touchsound"); 355 static Sound touch_sound("touchsound");
359 snd = &touch_sound; 356 snd = &touch_sound;
360 } 357 }
361 break; 358 break;
362 case SHARP_BUZ_KEYSOUND: { 359 case SHARP_BUZ_KEYSOUND: {
363 static Sound key_sound( "keysound" ); 360 static Sound key_sound( "keysound" );
364 snd = &key_sound; 361 snd = &key_sound;
365 } 362 }
366 break; 363 break;
367 case SHARP_BUZ_SCHEDULE_ALARM: 364 case SHARP_BUZ_SCHEDULE_ALARM:
368 default: { 365 default: {
369 static Sound alarm_sound("alarm"); 366 static Sound alarm_sound("alarm");
370 snd = &alarm_sound; 367 snd = &alarm_sound;
371 } 368 }
372 break; 369 break;
373 } 370 }
374 } 371 }
375 372
376 // If a soundname is defined, we expect that this device has 373 // If a soundname is defined, we expect that this device has
377 // sound capabilities.. Otherwise we expect to have the buzzer 374 // sound capabilities.. Otherwise we expect to have the buzzer
378 // device.. 375 // device..
379 if ( snd && snd->isFinished() ){ 376 if ( snd && snd->isFinished() ){
380 changeMixerForAlarm( 0, "/dev/sound/mixer", snd ); 377 changeMixerForAlarm( 0, "/dev/sound/mixer", snd );
381 snd->play(); 378 snd->play();
382 } else if( !snd ) { 379 } else if( !snd ) {
383 int fd = ::open ( "/dev/sharp_buz", O_WRONLY|O_NONBLOCK ); 380 int fd = ::open ( "/dev/sharp_buz", O_WRONLY|O_NONBLOCK );
384 381
385 if ( fd >= 0 ) { 382 if ( fd >= 0 ) {
386 ::ioctl ( fd, SHARP_BUZZER_MAKESOUND, sound ); 383 ::ioctl ( fd, SHARP_BUZZER_MAKESOUND, sound );
387 ::close ( fd ); 384 ::close ( fd );
388 } 385 }
389 386
390 } 387 }
391#endif 388#endif
392} 389}
393 390
394 391
395void Zaurus::playAlarmSound() 392void Zaurus::playAlarmSound()
396{ 393{
397 buzzer( SHARP_BUZ_SCHEDULE_ALARM ); 394 buzzer( SHARP_BUZ_SCHEDULE_ALARM );
398} 395}
399 396
400void Zaurus::playTouchSound() 397void Zaurus::playTouchSound()
401{ 398{
402 buzzer( SHARP_BUZ_TOUCHSOUND ); 399 buzzer( SHARP_BUZ_TOUCHSOUND );
403} 400}
404 401
405void Zaurus::playKeySound() 402void Zaurus::playKeySound()
406{ 403{
407 buzzer( SHARP_BUZ_KEYSOUND ); 404 buzzer( SHARP_BUZ_KEYSOUND );
408} 405}
409 406
410 407
411QValueList <OLed> Zaurus::ledList() const 408QValueList <OLed> Zaurus::ledList() const
412{ 409{
413 QValueList <OLed> vl; 410 QValueList <OLed> vl;
414 vl << Led_Mail; 411 vl << Led_Mail;
415 return vl; 412 return vl;
416} 413}
417 414
418QValueList <OLedState> Zaurus::ledStateList( OLed l ) const 415QValueList <OLedState> Zaurus::ledStateList( OLed l ) const
419{ 416{
420 QValueList <OLedState> vl; 417 QValueList <OLedState> vl;
421 418
422 if ( l == Led_Mail ) 419 if ( l == Led_Mail )
423 vl << Led_Off << Led_On << Led_BlinkSlow; 420 vl << Led_Off << Led_On << Led_BlinkSlow;
424 return vl; 421 return vl;
425} 422}
426 423
427OLedState Zaurus::ledState( OLed which ) const 424OLedState Zaurus::ledState( OLed which ) const
428{ 425{
429 if ( which == Led_Mail ) 426 if ( which == Led_Mail )
430 return m_leds [0]; 427 return m_leds [0];
431 else 428 else
432 return Led_Off; 429 return Led_Off;
433} 430}
434 431
435bool Zaurus::setLedState( OLed which, OLedState st ) 432bool Zaurus::setLedState( OLed which, OLedState st )
436{ 433{
437 // Currently not supported on non_embedix kernels 434 // Currently not supported on non_embedix kernels
438 if (!m_embedix) 435 if (!m_embedix)
439 { 436 {
440 qDebug( "Zaurus::setLedState: ODevice handling for non-embedix kernels not yet implemented" ); 437 qDebug( "Zaurus::setLedState: ODevice handling for non-embedix kernels not yet implemented" );
441 return false; 438 return false;
442 } 439 }
443 440
444 static int fd = ::open ( "/dev/sharp_led", O_RDWR|O_NONBLOCK ); 441 static int fd = ::open ( "/dev/sharp_led", O_RDWR|O_NONBLOCK );
445 442
446 if ( which == Led_Mail ) { 443 if ( which == Led_Mail ) {
447 if ( fd >= 0 ) { 444 if ( fd >= 0 ) {
448 struct sharp_led_status leds; 445 struct sharp_led_status leds;
449 ::memset ( &leds, 0, sizeof( leds )); 446 ::memset ( &leds, 0, sizeof( leds ));
450 leds. which = SHARP_LED_MAIL_EXISTS; 447 leds. which = SHARP_LED_MAIL_EXISTS;
451 bool ok = true; 448 bool ok = true;
452 449
453 switch ( st ) { 450 switch ( st ) {
454 case Led_Off : leds. status = LED_MAIL_NO_UNREAD_MAIL; break; 451 case Led_Off : leds. status = LED_MAIL_NO_UNREAD_MAIL; break;
455 case Led_On : leds. status = LED_MAIL_NEWMAIL_EXISTS; break; 452 case Led_On : leds. status = LED_MAIL_NEWMAIL_EXISTS; break;
456 case Led_BlinkSlow: leds. status = LED_MAIL_UNREAD_MAIL_EX; break; 453 case Led_BlinkSlow: leds. status = LED_MAIL_UNREAD_MAIL_EX; break;
457 default : ok = false; 454 default : ok = false;
458 } 455 }
459 456
460 if ( ok && ( ::ioctl ( fd, SHARP_LED_SETSTATUS, &leds ) >= 0 )) { 457 if ( ok && ( ::ioctl ( fd, SHARP_LED_SETSTATUS, &leds ) >= 0 )) {
461 m_leds [0] = st; 458 m_leds [0] = st;
462 return true; 459 return true;
463 } 460 }
464 } 461 }
465 } 462 }
466 return false; 463 return false;
467} 464}
468 465
469int Zaurus::displayBrightnessResolution() const 466int Zaurus::displayBrightnessResolution() const
470{ 467{
471 int res = 1; 468 int res = 1;
472 if (m_embedix) 469 if (m_embedix)
473 { 470 {
474 int fd = ::open( SHARP_FL_IOCTL_DEVICE, O_RDWR|O_NONBLOCK ); 471 int fd = ::open( SHARP_FL_IOCTL_DEVICE, O_RDWR|O_NONBLOCK );
475 if ( fd ) 472 if ( fd )
476 { 473 {
477 int value = ::ioctl( fd, SHARP_FL_IOCTL_GET_STEP, 0 ); 474 int value = ::ioctl( fd, SHARP_FL_IOCTL_GET_STEP, 0 );
478 ::close( fd ); 475 ::close( fd );
479 return value ? value : res; 476 return value ? value : res;
480 } 477 }
481 } 478 }
482 else 479 else
483 { 480 {
484 int fd = ::open( m_backlightdev + "max_brightness", O_RDONLY|O_NONBLOCK ); 481 int fd = ::open( m_backlightdev + "max_brightness", O_RDONLY|O_NONBLOCK );
485 if ( fd ) 482 if ( fd )
486 { 483 {
487 char buf[100]; 484 char buf[100];
488 if ( ::read( fd, &buf[0], sizeof buf ) ) ::sscanf( &buf[0], "%d", &res ); 485 if ( ::read( fd, &buf[0], sizeof buf ) ) ::sscanf( &buf[0], "%d", &res );
489 ::close( fd ); 486 ::close( fd );
490 } 487 }
491 } 488 }
492 return res; 489 return res;
493} 490}
494 491
495bool Zaurus::setDisplayBrightness( int bright ) 492bool Zaurus::setDisplayBrightness( int bright )
496{ 493{
497 //qDebug( "Zaurus::setDisplayBrightness( %d )", bright ); 494 //qDebug( "Zaurus::setDisplayBrightness( %d )", bright );
498 bool res = false; 495 bool res = false;
499 496
500 if ( bright > 255 ) bright = 255; 497 if ( bright > 255 ) bright = 255;
501 if ( bright < 0 ) bright = 0; 498 if ( bright < 0 ) bright = 0;
502 499
503 int numberOfSteps = displayBrightnessResolution(); 500 int numberOfSteps = displayBrightnessResolution();
504 int val = ( bright == 1 ) ? 1 : ( bright * numberOfSteps ) / 255; 501 int val = ( bright == 1 ) ? 1 : ( bright * numberOfSteps ) / 255;
505 502
506 if ( m_embedix ) 503 if ( m_embedix )
507 { 504 {
508 int fd = ::open( SHARP_FL_IOCTL_DEVICE, O_WRONLY|O_NONBLOCK ); 505 int fd = ::open( SHARP_FL_IOCTL_DEVICE, O_WRONLY|O_NONBLOCK );
509 if ( fd ) 506 if ( fd )
510 { 507 {
511 res = ( ::ioctl( fd, SHARP_FL_IOCTL_STEP_CONTRAST, val ) == 0 ); 508 res = ( ::ioctl( fd, SHARP_FL_IOCTL_STEP_CONTRAST, val ) == 0 );
512 ::close( fd ); 509 ::close( fd );
513 } 510 }
514 } 511 }
515 else 512 else
516 { 513 {
517 int fd = ::open( m_backlightdev + "brightness", O_WRONLY|O_NONBLOCK ); 514 int fd = ::open( m_backlightdev + "brightness", O_WRONLY|O_NONBLOCK );
518 if ( fd ) 515 if ( fd )
519 { 516 {
520 char buf[100]; 517 char buf[100];
521 int len = ::snprintf( &buf[0], sizeof buf, "%d", val ); 518 int len = ::snprintf( &buf[0], sizeof buf, "%d", val );
522 res = ( ::write( fd, &buf[0], len ) == 0 ); 519 res = ( ::write( fd, &buf[0], len ) == 0 );
523 ::close( fd ); 520 ::close( fd );
524 } 521 }
525 } 522 }
526 return res; 523 return res;
527} 524}
528 525
529bool Zaurus::setDisplayStatus( bool on ) 526bool Zaurus::setDisplayStatus( bool on )
530{ 527{
531 bool res = false; 528 bool res = false;
532 if ( m_embedix ) 529 if ( m_embedix )
533 { 530 {
534 int fd = ::open( SHARP_FL_IOCTL_DEVICE, O_WRONLY|O_NONBLOCK ); 531 int fd = ::open( SHARP_FL_IOCTL_DEVICE, O_WRONLY|O_NONBLOCK );
535 if ( fd ) 532 if ( fd )
536 { 533 {
537 int ioctlnum = on ? SHARP_FL_IOCTL_ON : SHARP_FL_IOCTL_OFF; 534 int ioctlnum = on ? SHARP_FL_IOCTL_ON : SHARP_FL_IOCTL_OFF;
538 res = ( ::ioctl ( fd, ioctlnum, 0 ) == 0 ); 535 res = ( ::ioctl ( fd, ioctlnum, 0 ) == 0 );
539 ::close ( fd ); 536 ::close ( fd );
540 } 537 }
541 } 538 }
542 else 539 else
543 { 540 {
544 int fd = ::open( m_backlightdev + "power", O_WRONLY|O_NONBLOCK ); 541 int fd = ::open( m_backlightdev + "power", O_WRONLY|O_NONBLOCK );
545 if ( fd ) 542 if ( fd )
546 { 543 {
547 char buf[10]; 544 char buf[10];
548 buf[0] = on ? FB_BLANK_UNBLANK : FB_BLANK_POWERDOWN; 545 buf[0] = on ? FB_BLANK_UNBLANK : FB_BLANK_POWERDOWN;
549 buf[1] = '\0'; 546 buf[1] = '\0';
550 res = ( ::write( fd, &buf[0], 2 ) == 0 ); 547 res = ( ::write( fd, &buf[0], 2 ) == 0 );
551 ::close( fd ); 548 ::close( fd );
552 } 549 }
553 } 550 }
554 return res; 551 return res;
555} 552}
556 553
557Transformation Zaurus::rotation() const 554Transformation Zaurus::rotation() const
558{ 555{
559 qDebug( "Zaurus::rotation()" ); 556 qDebug( "Zaurus::rotation()" );
560 Transformation rot; 557 Transformation rot;
561 558
562 switch ( d->m_model ) { 559 switch ( d->m_model ) {
563 case Model_Zaurus_SLC3100: // fallthrough 560 case Model_Zaurus_SLC3100: // fallthrough
564 case Model_Zaurus_SLC3000: // fallthrough 561 case Model_Zaurus_SLC3000: // fallthrough
565 case Model_Zaurus_SLC1000: 562 case Model_Zaurus_SLC1000:
566 { 563 {
567 OHingeStatus hs = readHingeSensor(); 564 OHingeStatus hs = readHingeSensor();
568 qDebug( "Zaurus::rotation() - hinge sensor = %d", (int) hs ); 565 qDebug( "Zaurus::rotation() - hinge sensor = %d", (int) hs );
569 if ( hs == CASE_PORTRAIT ) rot = Rot0; 566 if ( hs == CASE_PORTRAIT ) rot = Rot0;
570 else if ( hs == CASE_UNKNOWN ) rot = Rot270; 567 else if ( hs == CASE_UNKNOWN ) rot = Rot270;
571 else rot = Rot270; 568 else rot = Rot270;
572 } 569 }
573 break; 570 break;
574 571
575 // SLC7x0 needs a special case here, because we were able to set the W100 572 // SLC7x0 needs a special case here, because we were able to set the W100
576 // hardware default rotation on kernel 2.6 to Rot0 573 // hardware default rotation on kernel 2.6 to Rot0
577 case Model_Zaurus_SLC7x0: 574 case Model_Zaurus_SLC7x0:
578 { 575 {
579 OHingeStatus hs = readHingeSensor(); 576 OHingeStatus hs = readHingeSensor();
580 qDebug( "Zaurus::rotation() - hinge sensor = %d", (int) hs ); 577 qDebug( "Zaurus::rotation() - hinge sensor = %d", (int) hs );
581 578
582 if ( m_embedix ) 579 if ( m_embedix )
583 { 580 {
584 if ( hs == CASE_PORTRAIT ) rot = Rot0; 581 if ( hs == CASE_PORTRAIT ) rot = Rot0;
585 else if ( hs == CASE_UNKNOWN ) rot = Rot270; 582 else if ( hs == CASE_UNKNOWN ) rot = Rot270;
586 else rot = Rot270; 583 else rot = Rot270;
587 } 584 }
588 else 585 else
589 { 586 {
590 if ( hs == CASE_PORTRAIT ) rot = Rot90; 587 if ( hs == CASE_PORTRAIT ) rot = Rot90;
591 else if ( hs == CASE_UNKNOWN ) rot = Rot0; 588 else if ( hs == CASE_UNKNOWN ) rot = Rot0;
592 else rot = Rot0; 589 else rot = Rot0;
593 } 590 }
594 } 591 }
595 break; 592 break;
596 case Model_Zaurus_SL6000: 593 case Model_Zaurus_SL6000:
597 case Model_Zaurus_SLB600: 594 case Model_Zaurus_SLB600:
598 case Model_Zaurus_SLA300: 595 case Model_Zaurus_SLA300:
599 case Model_Zaurus_SL5500: 596 case Model_Zaurus_SL5500:
600 case Model_Zaurus_SL5000: 597 case Model_Zaurus_SL5000:
601 default: 598 default:
602 rot = d->m_rotation; 599 rot = d->m_rotation;
603 break; 600 break;
604 } 601 }
605 602
606 qDebug( "Zaurus::rotation() - returning '%d'", rot ); 603 qDebug( "Zaurus::rotation() - returning '%d'", rot );
607 return rot; 604 return rot;
608} 605}
609ODirection Zaurus::direction() const 606ODirection Zaurus::direction() const
610{ 607{
611 ODirection dir; 608 ODirection dir;
612 609
613 switch ( d->m_model ) { 610 switch ( d->m_model ) {
614 case Model_Zaurus_SLC3100: // fallthrough 611 case Model_Zaurus_SLC3100: // fallthrough
615 case Model_Zaurus_SLC3000: // fallthrough 612 case Model_Zaurus_SLC3000: // fallthrough
616 case Model_Zaurus_SLC1000: // fallthrough 613 case Model_Zaurus_SLC1000: // fallthrough
617 case Model_Zaurus_SLC7x0: { 614 case Model_Zaurus_SLC7x0: {
618 OHingeStatus hs = readHingeSensor(); 615 OHingeStatus hs = readHingeSensor();
619 if ( hs == CASE_PORTRAIT ) dir = CCW; 616 if ( hs == CASE_PORTRAIT ) dir = CCW;
620 else if ( hs == CASE_UNKNOWN ) dir = CCW; 617 else if ( hs == CASE_UNKNOWN ) dir = CCW;
621 else dir = CW; 618 else dir = CW;
622 } 619 }
623 break; 620 break;
624 case Model_Zaurus_SL6000: 621 case Model_Zaurus_SL6000:
625 case Model_Zaurus_SLA300: 622 case Model_Zaurus_SLA300:
626 case Model_Zaurus_SLB600: 623 case Model_Zaurus_SLB600:
627 case Model_Zaurus_SL5500: 624 case Model_Zaurus_SL5500:
628 case Model_Zaurus_SL5000: 625 case Model_Zaurus_SL5000:
629 default: dir = d->m_direction; 626 default: dir = d->m_direction;
630 break; 627 break;
631 } 628 }
632 return dir; 629 return dir;
633 630
634} 631}
635 632
636bool Zaurus::hasHingeSensor() const 633bool Zaurus::hasHingeSensor() const
637{ 634{
638 return d->m_model == Model_Zaurus_SLC7x0 || 635 return d->m_model == Model_Zaurus_SLC7x0 ||
639 d->m_model == Model_Zaurus_SLC3100 || 636 d->m_model == Model_Zaurus_SLC3100 ||
640 d->m_model == Model_Zaurus_SLC3000 || 637 d->m_model == Model_Zaurus_SLC3000 ||
641 d->m_model == Model_Zaurus_SLC1000; 638 d->m_model == Model_Zaurus_SLC1000;
642} 639}
643 640
644OHingeStatus Zaurus::readHingeSensor() const 641OHingeStatus Zaurus::readHingeSensor() const
645{ 642{
646 if (m_embedix) 643 if (m_embedix)
647 { 644 {
648 int handle = ::open("/dev/apm_bios", O_RDWR|O_NONBLOCK); 645 int handle = ::open("/dev/apm_bios", O_RDWR|O_NONBLOCK);
649 if (handle == -1) 646 if (handle == -1)
650 { 647 {
651 qWarning("Zaurus::readHingeSensor() - failed (%s)", "unknown reason" ); //FIXME: use strerror 648 qWarning("Zaurus::readHingeSensor() - failed (%s)", "unknown reason" ); //FIXME: use strerror
652 return CASE_UNKNOWN; 649 return CASE_UNKNOWN;
653 } 650 }
654 else 651 else
655 { 652 {
656 int retval = ::ioctl(handle, SHARP_IOCTL_GET_ROTATION); 653 int retval = ::ioctl(handle, SHARP_IOCTL_GET_ROTATION);
657 ::close (handle); 654 ::close (handle);
658 if ( retval == CASE_CLOSED || retval == CASE_PORTRAIT || retval == CASE_LANDSCAPE ) 655 if ( retval == CASE_CLOSED || retval == CASE_PORTRAIT || retval == CASE_LANDSCAPE )
659 { 656 {
660 qDebug( "Zaurus::readHingeSensor() - result = %d", retval ); 657 qDebug( "Zaurus::readHingeSensor() - result = %d", retval );
661 return static_cast<OHingeStatus>( retval ); 658 return static_cast<OHingeStatus>( retval );
662 } 659 }
663 else 660 else
664 { 661 {
665 qWarning("Zaurus::readHingeSensor() - couldn't compute hinge status!" ); 662 qWarning("Zaurus::readHingeSensor() - couldn't compute hinge status!" );
666 return CASE_UNKNOWN; 663 return CASE_UNKNOWN;
667 } 664 }
668 } 665 }
669 } 666 }
670 else 667 else
671 { 668 {
672 /* 669 /*
673 * The corgi keyboard is event source 0 in OZ kernel 2.6. 670 * The corgi keyboard is event source 0 in OZ kernel 2.6.
674 * Hinge status is reported via Input System Switchs 0 and 1 like that: 671 * Hinge status is reported via Input System Switchs 0 and 1 like that:
675 * 672 *
676 * ------------------------- 673 * -------------------------
677 * | SW0 | SW1 | CASE | 674 * | SW0 | SW1 | CASE |
678 * |-----|-----|-----------| 675 * |-----|-----|-----------|
679 * | 0 0 Landscape | 676 * | 0 0 Landscape |
680 * | 0 1 Portrait | 677 * | 0 1 Portrait |
681 * | 1 0 Unknown | 678 * | 1 0 Unknown |
682 * | 1 1 Closed | 679 * | 1 1 Closed |
683 * ------------------------- 680 * -------------------------
684 */ 681 */
685 OInputDevice* keyboard = OInputSystem::instance()->device( "event0" ); 682 OInputDevice* keyboard = OInputSystem::instance()->device( "event0" );
686 bool switch0 = true; 683 bool switch0 = true;
687 bool switch1 = false; 684 bool switch1 = false;
688 if ( keyboard ) 685 if ( keyboard )
689 { 686 {
690 switch0 = keyboard->isHeld( OInputDevice::Switch0 ); 687 switch0 = keyboard->isHeld( OInputDevice::Switch0 );
691 switch1 = keyboard->isHeld( OInputDevice::Switch1 ); 688 switch1 = keyboard->isHeld( OInputDevice::Switch1 );
692 } 689 }
693 if ( switch0 ) 690 if ( switch0 )
694 { 691 {
695 return switch1 ? CASE_CLOSED : CASE_UNKNOWN; 692 return switch1 ? CASE_CLOSED : CASE_UNKNOWN;
696 } 693 }
697 else 694 else
698 { 695 {
699 return switch1 ? CASE_PORTRAIT : CASE_LANDSCAPE; 696 return switch1 ? CASE_PORTRAIT : CASE_LANDSCAPE;
700 } 697 }
701 } 698 }
702} 699}
703 700
704void Zaurus::initHingeSensor() 701void Zaurus::initHingeSensor()
705{ 702{
706 if ( m_embedix ) return; 703 if ( m_embedix ) return;
707 704
708 m_hinge.setName( "/dev/input/event0" ); 705 m_hinge.setName( "/dev/input/event0" );
709 if ( !m_hinge.open( IO_ReadOnly ) ) 706 if ( !m_hinge.open( IO_ReadOnly ) )
710 { 707 {
711 qWarning( "Zaurus::init() - Couldn't open /dev/input/event0 for read (%s)", strerror( errno ) ); 708 qWarning( "Zaurus::init() - Couldn't open /dev/input/event0 for read (%s)", strerror( errno ) );
712 return; 709 return;
713 } 710 }
714 711
715 QSocketNotifier* sn = new QSocketNotifier( m_hinge.handle(), QSocketNotifier::Read, this ); 712 QSocketNotifier* sn = new QSocketNotifier( m_hinge.handle(), QSocketNotifier::Read, this );
716 QObject::connect( sn, SIGNAL(activated(int)), this, SLOT(hingeSensorTriggered()) ); 713 QObject::connect( sn, SIGNAL(activated(int)), this, SLOT(hingeSensorTriggered()) );
717 714
718 qDebug( "Zaurus::init() - Hinge Sensor Initialization successfully completed" ); 715 qDebug( "Zaurus::init() - Hinge Sensor Initialization successfully completed" );
719} 716}
720 717
721void Zaurus::hingeSensorTriggered() 718void Zaurus::hingeSensorTriggered()
722{ 719{
723 qDebug( "Zaurus::hingeSensorTriggered() - got event" ); 720 qDebug( "Zaurus::hingeSensorTriggered() - got event" );
724 struct input_event e; 721 struct input_event e;
725 if ( ::read( m_hinge.handle(), &e, sizeof e ) > 0 ) 722 if ( ::read( m_hinge.handle(), &e, sizeof e ) > 0 )
726 { 723 {
727 qDebug( "Zaurus::hingeSensorTriggered() - event has type %d, code %d, value %d", e.type, e.code, e.value ); 724 qDebug( "Zaurus::hingeSensorTriggered() - event has type %d, code %d, value %d", e.type, e.code, e.value );
728 if ( e.type != EV_SW ) return; 725 if ( e.type != EV_SW ) return;
729 if ( readHingeSensor() != CASE_UNKNOWN ) 726 if ( readHingeSensor() != CASE_UNKNOWN )
730 { 727 {
731 qDebug( "Zaurus::hingeSensorTriggered() - got valid switch event, calling rotateDefault()" ); 728 qDebug( "Zaurus::hingeSensorTriggered() - got valid switch event, calling rotateDefault()" );
732 QCopChannel::send( "QPE/Rotation", "rotateDefault()" ); 729 QCopChannel::send( "QPE/Rotation", "rotateDefault()" );
733 } 730 }
734 } 731 }
735} 732}
736 733
737void Zaurus::systemMessage( const QCString &msg, const QByteArray & ) 734void Zaurus::systemMessage( const QCString &msg, const QByteArray & )
738{ 735{
739 if ( msg == "deviceButtonMappingChanged()" ) { 736 if ( msg == "deviceButtonMappingChanged()" ) {
740 reloadButtonMapping(); 737 reloadButtonMapping();
741 } 738 }
742} 739}
743 740
744/* 741/*
745 * Take code from iPAQ device. 742 * Take code from iPAQ device.
746 * That way we switch the cursor directions depending on status of hinge sensor, eg. hardware direction. 743 * That way we switch the cursor directions depending on status of hinge sensor, eg. hardware direction.
747 * I hope that is ok - Alwin 744 * I hope that is ok - Alwin
748 */ 745 */
749bool Zaurus::filter ( int /*unicode*/, int keycode, int modifiers, bool isPress, bool autoRepeat ) 746bool Zaurus::filter ( int /*unicode*/, int keycode, int modifiers, bool isPress, bool autoRepeat )
750{ 747{
751 int newkeycode = keycode; 748 int newkeycode = keycode;
752 749
753 if ( !hasHingeSensor() ) return false; 750 if ( !hasHingeSensor() ) return false;
754 751
755 /* map cursor keys depending on the hinge status */ 752 /* map cursor keys depending on the hinge status */
756 switch ( keycode ) { 753 switch ( keycode ) {
757 // Rotate cursor keys 754 // Rotate cursor keys
758 case Key_Left : 755 case Key_Left :
759 case Key_Right: 756 case Key_Right: