author | zecke <zecke> | 2004-09-19 23:47:29 (UTC) |
---|---|---|
committer | zecke <zecke> | 2004-09-19 23:47:29 (UTC) |
commit | fa9e4fa0c51c30be12caf8b5c92d722b40509814 (patch) (unidiff) | |
tree | f762de653efcf9e1c646ec002b08b5542fd5e38e | |
parent | 83272b7645c639669dddd676f17f64ad78ef9c63 (diff) | |
download | opie-fa9e4fa0c51c30be12caf8b5c92d722b40509814.zip opie-fa9e4fa0c51c30be12caf8b5c92d722b40509814.tar.gz opie-fa9e4fa0c51c30be12caf8b5c92d722b40509814.tar.bz2 |
-Check m_model to allow suspending. ODevice doesn't suspend on UnknownModel
-Comments
-map 0-255 brightness to 0-100 for Assabat Frontlight Control
-Change return value for display on and off
-rw-r--r-- | libopie2/opiecore/device/odevice_beagle.cpp | 59 |
1 files changed, 52 insertions, 7 deletions
diff --git a/libopie2/opiecore/device/odevice_beagle.cpp b/libopie2/opiecore/device/odevice_beagle.cpp index 9cf640a..ac12ca6 100644 --- a/libopie2/opiecore/device/odevice_beagle.cpp +++ b/libopie2/opiecore/device/odevice_beagle.cpp | |||
@@ -37,9 +37,11 @@ | |||
37 | #include <fcntl.h> | 37 | #include <fcntl.h> |
38 | #include <unistd.h> | 38 | #include <unistd.h> |
39 | 39 | ||
40 | 40 | ||
41 | 41 | /* | |
42 | * Intel Assabat FrontLight Control | ||
43 | */ | ||
42 | #define _SA1100_FL_IOCTL_ON 1 | 44 | #define _SA1100_FL_IOCTL_ON 1 |
43 | #define _SA1100_FL_IOCTL_OFF 2 | 45 | #define _SA1100_FL_IOCTL_OFF 2 |
44 | #define _SA1100_FL_IOCTL_INTENSITY3 | 46 | #define _SA1100_FL_IOCTL_INTENSITY3 |
45 | #define _SA1100_FL_IOCTL_BACKLIGHT 4 | 47 | #define _SA1100_FL_IOCTL_BACKLIGHT 4 |
@@ -49,8 +51,11 @@ | |||
49 | // added by Sean Hsieh | 51 | // added by Sean Hsieh |
50 | #define _SA1100_FL_IOCTL_PWR_TOGGLE 8 | 52 | #define _SA1100_FL_IOCTL_PWR_TOGGLE 8 |
51 | #define _SA1100_FL_IOCTL_AUTOLIGHT 10 | 53 | #define _SA1100_FL_IOCTL_AUTOLIGHT 10 |
52 | 54 | ||
55 | /* | ||
56 | * The device | ||
57 | */ | ||
53 | #define FL_MAJOR 60 | 58 | #define FL_MAJOR 60 |
54 | #define FL_NAME "sa1100-fl" | 59 | #define FL_NAME "sa1100-fl" |
55 | #define FL_FILE "/dev/sa1100-fl" | 60 | #define FL_FILE "/dev/sa1100-fl" |
56 | 61 | ||
@@ -68,10 +73,20 @@ struct b_button { | |||
68 | char *fheldservice; | 73 | char *fheldservice; |
69 | char *fheldaction; | 74 | char *fheldaction; |
70 | }; | 75 | }; |
71 | 76 | ||
77 | |||
78 | /* | ||
79 | * The MVista Beagle kernel maps the action | ||
80 | * buttons to the Qt keymap | ||
81 | */ | ||
72 | struct b_button beagle_buttons [] = { | 82 | struct b_button beagle_buttons [] = { |
73 | { Model_Beagle_PA100, | 83 | { Model_Beagle_PA100, |
84 | Qt::Key_F8, QT_TRANSLATE_NOOP("Button", "Record Button"), | ||
85 | "devicebuttons/beagle_record", | ||
86 | "QPE/VMemo", "toggleRecord()", | ||
87 | "sound", "raise()" }, | ||
88 | { Model_Beagle_PA100, | ||
74 | Qt::Key_F9, QT_TRANSLATE_NOOP("Button", "Calendar Button"), | 89 | Qt::Key_F9, QT_TRANSLATE_NOOP("Button", "Calendar Button"), |
75 | "devicebuttons/beagle_calendar", | 90 | "devicebuttons/beagle_calendar", |
76 | "datebook", "nextView()", | 91 | "datebook", "nextView()", |
77 | "today", "raise()" }, | 92 | "today", "raise()" }, |
@@ -92,24 +107,35 @@ struct b_button beagle_buttons [] = { | |||
92 | "buttonsettings", "raise()" }, | 107 | "buttonsettings", "raise()" }, |
93 | }; | 108 | }; |
94 | 109 | ||
95 | 110 | ||
96 | Beagle::Beagle() | 111 | Beagle::Beagle() {} |
97 | { | 112 | |
98 | qWarning( "Created Beagle" ); | ||
99 | } | ||
100 | Beagle::~Beagle() {} | 113 | Beagle::~Beagle() {} |
101 | 114 | ||
115 | /* | ||
116 | * Simply set the Tradesquare.NL data | ||
117 | */ | ||
102 | void Beagle::init( const QString&) { | 118 | void Beagle::init( const QString&) { |
103 | /* | 119 | /* |
104 | * No other assabat model yet | 120 | * No other assabat model yet |
105 | */ | 121 | */ |
106 | d->m_vendorstr = "Tradesquare.NL"; | 122 | d->m_vendorstr = "Tradesquare.NL"; |
107 | d->m_vendor = Vendor_MasterIA; | 123 | d->m_vendor = Vendor_MasterIA; |
108 | d->m_modelstr = "Tuxpda 1"; | 124 | d->m_modelstr = "Tuxpda 1"; |
109 | d->m_rotation = Rot0; | 125 | d->m_rotation = Rot0; |
126 | d->m_model = Model_Beagle_PA100; | ||
110 | } | 127 | } |
111 | 128 | ||
129 | |||
130 | /* | ||
131 | * Initialize the Buttons. We only do it | ||
132 | * if not yet initialized. | ||
133 | * We go through our hardware button array | ||
134 | * and set the 'Factory' Pressed and Held Action | ||
135 | * reloadButtonMapping will then apply the user | ||
136 | * configuration to the buttons | ||
137 | */ | ||
112 | void Beagle::initButtons() { | 138 | void Beagle::initButtons() { |
113 | if ( d->m_buttons ) | 139 | if ( d->m_buttons ) |
114 | return; | 140 | return; |
115 | 141 | ||
@@ -128,28 +154,47 @@ void Beagle::initButtons() { | |||
128 | 154 | ||
129 | reloadButtonMapping(); | 155 | reloadButtonMapping(); |
130 | } | 156 | } |
131 | 157 | ||
158 | /* | ||
159 | * Turn the display on. We do it by ioctl on FL_FILE | ||
160 | */ | ||
132 | bool Beagle::setDisplayStatus( bool on ) { | 161 | bool Beagle::setDisplayStatus( bool on ) { |
133 | int fd = ::open(FL_FILE, O_WRONLY); | 162 | int fd = ::open(FL_FILE, O_WRONLY); |
134 | 163 | ||
135 | if ( fd < 0 ) | 164 | if ( fd < 0 ) |
136 | return false; | 165 | return false; |
137 | 166 | ||
138 | return ( ::ioctl(fd, on ? _SA1100_FL_IOCTL_ON : _SA1100_FL_IOCTL_OFF, 0 ) == -1 ); | 167 | return ( ::ioctl(fd, on ? _SA1100_FL_IOCTL_ON : _SA1100_FL_IOCTL_OFF, 0 ) == 0 ); |
139 | } | 168 | } |
140 | 169 | ||
170 | /* | ||
171 | * 0-100 are legal steps of the frontlight. | ||
172 | */ | ||
141 | int Beagle::displayBrightnessResolution()const { | 173 | int Beagle::displayBrightnessResolution()const { |
142 | return 100; | 174 | return 100; |
143 | } | 175 | } |
144 | 176 | ||
177 | /* | ||
178 | * Opie uses the values 0-255 for the frontlight | ||
179 | * intensity and we need to map it to the range | ||
180 | * of 0-100. | ||
181 | * But first we do some sanity of the range of brightness | ||
182 | * | ||
183 | */ | ||
145 | bool Beagle::setDisplayBrightness( int brightness ) { | 184 | bool Beagle::setDisplayBrightness( int brightness ) { |
185 | if ( brightness > 255 ) | ||
186 | brightness = 255; | ||
187 | else if ( brightness < 0 ) | ||
188 | brightness = 0; | ||
189 | brightness = (100*brightness)/255; | ||
190 | |||
146 | int fd = ::open(FL_FILE, O_WRONLY); | 191 | int fd = ::open(FL_FILE, O_WRONLY); |
147 | 192 | ||
148 | if ( fd < 0 ) | 193 | if ( fd < 0 ) |
149 | return false; | 194 | return false; |
150 | 195 | ||
151 | return ( ::ioctl(fd, _SA1100_FL_IOCTL_INTENSITY, brightness%101 ) == 0 ); | 196 | return ( ::ioctl(fd, _SA1100_FL_IOCTL_INTENSITY, brightness ) == 0 ); |
152 | } | 197 | } |
153 | 198 | ||
154 | } | 199 | } |
155 | } | 200 | } |