summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/desktop.cpp20
-rw-r--r--core/launcher/screensaver.cpp14
2 files changed, 17 insertions, 17 deletions
diff --git a/core/launcher/desktop.cpp b/core/launcher/desktop.cpp
index bc43475..f2e00d8 100644
--- a/core/launcher/desktop.cpp
+++ b/core/launcher/desktop.cpp
@@ -129,204 +129,204 @@ public:
129 void hideEvent( QHideEvent * ); 129 void hideEvent( QHideEvent * );
130private: 130private:
131 int currentPriority; 131 int currentPriority;
132 int alertCount; 132 int alertCount;
133}; 133};
134 134
135void DesktopPowerAlerter::alert( const QString &text, int priority ) 135void DesktopPowerAlerter::alert( const QString &text, int priority )
136{ 136{
137 alertCount++; 137 alertCount++;
138 if ( alertCount < priority ) 138 if ( alertCount < priority )
139 return ; 139 return ;
140 if ( priority > currentPriority ) 140 if ( priority > currentPriority )
141 return ; 141 return ;
142 currentPriority = priority; 142 currentPriority = priority;
143 setText( text ); 143 setText( text );
144 show(); 144 show();
145} 145}
146 146
147 147
148void DesktopPowerAlerter::hideEvent( QHideEvent *e ) 148void DesktopPowerAlerter::hideEvent( QHideEvent *e )
149{ 149{
150 QMessageBox::hideEvent( e ); 150 QMessageBox::hideEvent( e );
151 alertCount = 0; 151 alertCount = 0;
152 currentPriority = INT_MAX; 152 currentPriority = INT_MAX;
153} 153}
154 154
155 155
156void DesktopApplication::switchLCD ( bool on ) 156void DesktopApplication::switchLCD ( bool on )
157{ 157{
158 if ( qApp ) { 158 if ( qApp ) {
159 DesktopApplication *dapp = (DesktopApplication *) qApp; 159 DesktopApplication *dapp = (DesktopApplication *) qApp;
160 160
161 if ( dapp-> m_screensaver ) { 161 if ( dapp-> m_screensaver ) {
162 if ( on ) { 162 if ( on ) {
163 dapp-> m_screensaver-> setDisplayState ( true ); 163 dapp-> m_screensaver-> setDisplayState ( true );
164 dapp-> m_screensaver-> setBacklight ( -3 ); 164 dapp-> m_screensaver-> setBacklight ( -3 );
165 } 165 }
166 else { 166 else {
167 dapp-> m_screensaver-> setDisplayState ( false ); 167 dapp-> m_screensaver-> setDisplayState ( false );
168 } 168 }
169 } 169 }
170 } 170 }
171} 171}
172 172
173 173
174DesktopApplication::DesktopApplication( int& argc, char **argv, Type appType ) 174DesktopApplication::DesktopApplication( int& argc, char **argv, Type appType )
175 : QPEApplication( argc, argv, appType ) 175 : QPEApplication( argc, argv, appType )
176{ 176{
177 177
178 Config cfg( "apm" ); 178 Config cfg( "apm" );
179 cfg.setGroup( "Warnings" ); 179 cfg.setGroup( "Warnings" );
180 //cfg.readNumEntry( "checkinterval", 10000 ) 180 //cfg.readNumEntry( "checkinterval", 10000 )
181 m_powerVeryLow = cfg.readNumEntry( "powerverylow", 10 ); 181 m_powerVeryLow = cfg.readNumEntry( "powerverylow", 10 );
182 m_powerCritical = cfg.readNumEntry( "powercritical", 5 ); 182 m_powerCritical = cfg.readNumEntry( "powercritical", 5 );
183 183
184 m_ps = new PowerStatus; 184 m_ps = new PowerStatus;
185 m_ps_last = new PowerStatus; 185 m_ps_last = new PowerStatus;
186 pa = new DesktopPowerAlerter( 0 ); 186 pa = new DesktopPowerAlerter( 0 );
187 187
188 m_timer = new QTimer( this ); 188 m_timer = new QTimer( this );
189 connect( m_timer, SIGNAL( timeout() ), this, SLOT( apmTimeout() ) ); 189 connect( m_timer, SIGNAL( timeout() ), this, SLOT( apmTimeout() ) );
190 m_timer->start( 5000 ); 190 m_timer->start( 5000 );
191 191
192 channel = new QCopChannel( "QPE/Desktop", this ); 192 channel = new QCopChannel( "QPE/Desktop", this );
193 connect( channel, SIGNAL( received( const QCString&, const QByteArray& ) ), 193 connect( channel, SIGNAL( received( const QCString&, const QByteArray& ) ),
194 this, SLOT( desktopMessage( const QCString&, const QByteArray& ) ) ); 194 this, SLOT( desktopMessage( const QCString&, const QByteArray& ) ) );
195 195
196 channel = new QCopChannel( "QPE/System", this ); 196 channel = new QCopChannel( "QPE/System", this );
197 connect( channel, SIGNAL( received( const QCString&, const QByteArray& ) ), 197 connect( channel, SIGNAL( received( const QCString&, const QByteArray& ) ),
198 this, SLOT( systemMessage( const QCString&, const QByteArray& ) ) ); 198 this, SLOT( systemMessage( const QCString&, const QByteArray& ) ) );
199 199
200 m_screensaver = new OpieScreenSaver ( ); 200 m_screensaver = new OpieScreenSaver ( );
201 m_screensaver-> setInterval ( -1 ); 201 m_screensaver-> setInterval ( -1 );
202 QWSServer::setScreenSaver( m_screensaver ); 202 QWSServer::setScreenSaver( m_screensaver );
203 203
204 apmTimeout ( ); 204 apmTimeout ( );
205} 205}
206 206
207 207
208DesktopApplication::~DesktopApplication() 208DesktopApplication::~DesktopApplication()
209{ 209{
210 delete m_ps; 210 delete m_ps;
211 delete m_ps_last; 211 delete m_ps_last;
212 delete pa; 212 delete pa;
213} 213}
214 214
215void DesktopApplication::apmTimeout() 215void DesktopApplication::apmTimeout()
216{ 216{
217 qpedesktop->checkMemory(); // in case no events are being generated 217 qpedesktop->checkMemory(); // in case no events are being generated
218 218
219 *m_ps_last = *m_ps; 219 *m_ps_last = *m_ps;
220 *m_ps = PowerStatusManager::readStatus(); 220 *m_ps = PowerStatusManager::readStatus();
221 221
222 if ( m_ps-> acStatus ( ) != m_ps_last-> acStatus ( )) 222 if ( m_ps-> acStatus ( ) != m_ps_last-> acStatus ( ))
223 m_screensaver-> powerStatusChanged ( *m_ps ); 223 m_screensaver-> powerStatusChanged ( *m_ps );
224 224
225 int bat = m_ps-> batteryPercentRemaining ( ); 225 if ( m_ps-> acStatus ( ) != PowerStatus::Online ) {
226 226 int bat = m_ps-> batteryPercentRemaining ( );
227 if ( m_ps_last-> batteryPercentRemaining ( ) != bat ) { 227
228 if ( bat <= m_powerCritical ) 228 if ( bat < m_ps_last-> batteryPercentRemaining ( )) {
229 pa->alert( tr( "Battery level is critical!\nKeep power off until power restored!" ), 1 ); 229 if ( bat <= m_powerCritical )
230 else if ( bat <= m_powerVeryLow ) 230 pa->alert( tr( "Battery level is critical!\nKeep power off until power restored!" ), 1 );
231 pa->alert( tr( "Battery is running very low." ), 2 ); 231 else if ( bat <= m_powerVeryLow )
232 232 pa->alert( tr( "Battery is running very low." ), 2 );
233 233 }
234 if ( m_ps-> backupBatteryStatus ( ) == PowerStatus::VeryLow ) 234 if ( m_ps-> backupBatteryStatus ( ) == PowerStatus::VeryLow )
235 pa->alert( tr( "The Back-up battery is very low.\nPlease charge the back-up battery." ), 2 ); 235 pa->alert( tr( "The Back-up battery is very low.\nPlease charge the back-up battery." ), 2 );
236 } 236 }
237} 237}
238 238
239void DesktopApplication::desktopMessage( const QCString &msg, const QByteArray &data ) 239void DesktopApplication::desktopMessage( const QCString &msg, const QByteArray &data )
240{ 240{
241 QDataStream stream( data, IO_ReadOnly ); 241 QDataStream stream( data, IO_ReadOnly );
242 if ( msg == "keyRegister(int key, QString channel, QString message)" ) { 242 if ( msg == "keyRegister(int key, QString channel, QString message)" ) {
243 int k; 243 int k;
244 QString c, m; 244 QString c, m;
245 stream >> k; 245 stream >> k;
246 stream >> c; 246 stream >> c;
247 stream >> m; 247 stream >> m;
248 248
249 qWarning( "KeyRegisterReceived: %i, %s, %s", k, ( const char* ) c, ( const char * ) m ); 249 qWarning( "KeyRegisterReceived: %i, %s, %s", k, ( const char* ) c, ( const char * ) m );
250 keyRegisterList.append( QCopKeyRegister( k, c, m ) ); 250 keyRegisterList.append( QCopKeyRegister( k, c, m ) );
251 } 251 }
252} 252}
253 253
254 254
255void DesktopApplication::systemMessage( const QCString & msg, const QByteArray & data ) 255void DesktopApplication::systemMessage( const QCString & msg, const QByteArray & data )
256{ 256{
257 QDataStream stream ( data, IO_ReadOnly ); 257 QDataStream stream ( data, IO_ReadOnly );
258 258
259 if ( msg == "setScreenSaverInterval(int)" ) { 259 if ( msg == "setScreenSaverInterval(int)" ) {
260 int time; 260 int time;
261 stream >> time; 261 stream >> time;
262 m_screensaver-> setInterval( time ); 262 m_screensaver-> setInterval( time );
263 } 263 }
264 else if ( msg == "setScreenSaverIntervals(int,int,int)" ) { 264 else if ( msg == "setScreenSaverIntervals(int,int,int)" ) {
265 int t1, t2, t3; 265 int t1, t2, t3;
266 stream >> t1 >> t2 >> t3; 266 stream >> t1 >> t2 >> t3;
267 m_screensaver-> setIntervals( t1, t2, t3 ); 267 m_screensaver-> setIntervals( t1, t2, t3 );
268 } 268 }
269 else if ( msg == "setBacklight(int)" ) { 269 else if ( msg == "setBacklight(int)" ) {
270 int bright; 270 int bright;
271 stream >> bright; 271 stream >> bright;
272 m_screensaver-> setBacklight( bright ); 272 m_screensaver-> setBacklight( bright );
273 } 273 }
274 else if ( msg == "setScreenSaverMode(int)" ) { 274 else if ( msg == "setScreenSaverMode(int)" ) {
275 int mode; 275 int mode;
276 stream >> mode; 276 stream >> mode;
277 m_screensaver-> setMode ( mode ); 277 m_screensaver-> setMode ( mode );
278 } 278 }
279 else if ( msg == "reloadPowerWarnSettings()" ) { 279 else if ( msg == "reloadPowerWarnSettings()" ) {
280 reloadPowerWarnSettings(); 280 reloadPowerWarnSettings();
281 } 281 }
282 else if ( msg == "setDisplayState(int)" ) { 282 else if ( msg == "setDisplayState(int)" ) {
283 int state; 283 int state;
284 stream >> state; 284 stream >> state;
285 m_screensaver-> setDisplayState ( state != 0 ); 285 m_screensaver-> setDisplayState ( state != 0 );
286 } 286 }
287 else if ( msg == "suspend()" ) { 287 else if ( msg == "suspend()" ) {
288 emit power(); 288 emit power();
289 } 289 }
290} 290}
291 291
292void DesktopApplication::reloadPowerWarnSettings() { 292void DesktopApplication::reloadPowerWarnSettings() {
293 Config cfg( "apm" ); 293 Config cfg( "apm" );
294 cfg.setGroup( "Warnings" ); 294 cfg.setGroup( "Warnings" );
295 295
296 // m_timer->changeInterval( cfg.readNumEntry( "checkinterval", 10000 ) ); 296 // m_timer->changeInterval( cfg.readNumEntry( "checkinterval", 10000 ) );
297 m_powerVeryLow = cfg.readNumEntry( "powerverylow", 10 ); 297 m_powerVeryLow = cfg.readNumEntry( "powerverylow", 10 );
298 m_powerCritical = cfg.readNumEntry( "powervcritical", 5 ); 298 m_powerCritical = cfg.readNumEntry( "powervcritical", 5 );
299} 299}
300 300
301 301
302enum MemState { Unknown, VeryLow, Low, Normal } memstate = Unknown; 302enum MemState { Unknown, VeryLow, Low, Normal } memstate = Unknown;
303 303
304#ifdef Q_WS_QWS 304#ifdef Q_WS_QWS
305bool DesktopApplication::qwsEventFilter( QWSEvent *e ) 305bool DesktopApplication::qwsEventFilter( QWSEvent *e )
306{ 306{
307 qpedesktop->checkMemory(); 307 qpedesktop->checkMemory();
308 308
309 if ( e->type == QWSEvent::Key ) { 309 if ( e->type == QWSEvent::Key ) {
310 QWSKeyEvent * ke = ( QWSKeyEvent * ) e; 310 QWSKeyEvent * ke = ( QWSKeyEvent * ) e;
311 if ( !loggedin && ke->simpleData.keycode != Key_F34 ) 311 if ( !loggedin && ke->simpleData.keycode != Key_F34 )
312 return TRUE; 312 return TRUE;
313 bool press = ke->simpleData.is_press; 313 bool press = ke->simpleData.is_press;
314 bool autoRepeat = ke->simpleData.is_auto_repeat; 314 bool autoRepeat = ke->simpleData.is_auto_repeat;
315 315
316 /* 316 /*
317 app that registers key/message to be sent back to the app, when it doesn't have focus, 317 app that registers key/message to be sent back to the app, when it doesn't have focus,
318 when user presses key, unless keyboard has been requested from app. 318 when user presses key, unless keyboard has been requested from app.
319 will not send multiple repeats if user holds key 319 will not send multiple repeats if user holds key
320 i.e. one shot 320 i.e. one shot
321 */ 321 */
322 if ( !keyRegisterList.isEmpty() && ke->simpleData.keycode !=0 && press) { 322 if ( !keyRegisterList.isEmpty() && ke->simpleData.keycode !=0 && press) {
323// qDebug("<<<<<<<<<<<<<keycode %d", ke->simpleData.keycode); 323// qDebug("<<<<<<<<<<<<<keycode %d", ke->simpleData.keycode);
324 KeyRegisterList::Iterator it; 324 KeyRegisterList::Iterator it;
325 for ( it = keyRegisterList.begin(); it != keyRegisterList.end(); ++it ) { 325 for ( it = keyRegisterList.begin(); it != keyRegisterList.end(); ++it ) {
326 if ( ( *it ).getKeyCode() == ke->simpleData.keycode && !autoRepeat && !keyboardGrabbed() ) { 326 if ( ( *it ).getKeyCode() == ke->simpleData.keycode && !autoRepeat && !keyboardGrabbed() ) {
327 if ( press ) 327 if ( press )
328 qDebug( "press" ); 328 qDebug( "press" );
329 else 329 else
330 qDebug( "release" ); 330 qDebug( "release" );
331 QCopEnvelope( ( *it ).getChannel().utf8(), ( *it ).getMessage().utf8() ); 331 QCopEnvelope( ( *it ).getChannel().utf8(), ( *it ).getMessage().utf8() );
332 } 332 }
diff --git a/core/launcher/screensaver.cpp b/core/launcher/screensaver.cpp
index 741591e..45da9ed 100644
--- a/core/launcher/screensaver.cpp
+++ b/core/launcher/screensaver.cpp
@@ -22,249 +22,249 @@ OpieScreenSaver::OpieScreenSaver ( )
22 m_onlylcdoff = false; 22 m_onlylcdoff = false;
23 23
24 m_enable_dim_ac = false; 24 m_enable_dim_ac = false;
25 m_enable_lightoff_ac = false; 25 m_enable_lightoff_ac = false;
26 m_enable_suspend_ac = false; 26 m_enable_suspend_ac = false;
27 m_onlylcdoff_ac = false; 27 m_onlylcdoff_ac = false;
28 28
29 m_use_light_sensor = false; 29 m_use_light_sensor = false;
30 m_backlight_sensor = -1; 30 m_backlight_sensor = -1;
31 ::memset ( m_sensordata, 0xff, LS_Count * sizeof( m_sensordata [0] )); 31 ::memset ( m_sensordata, 0xff, LS_Count * sizeof( m_sensordata [0] ));
32 32
33 m_lcd_status = true; 33 m_lcd_status = true;
34 34
35 m_backlight_normal = -1; 35 m_backlight_normal = -1;
36 m_backlight_current = -1; 36 m_backlight_current = -1;
37 m_backlight_forcedoff = false; 37 m_backlight_forcedoff = false;
38 38
39 m_on_ac = false; 39 m_on_ac = false;
40 40
41 m_level = -1; 41 m_level = -1;
42 42
43 // Make sure the LCD is in fact on, (if opie was killed while the LCD is off it would still be off) 43 // Make sure the LCD is in fact on, (if opie was killed while the LCD is off it would still be off)
44 ODevice::inst ( )-> setDisplayStatus ( true ); 44 ODevice::inst ( )-> setDisplayStatus ( true );
45 setBacklight ( -1 ); 45 setBacklight ( -1 );
46} 46}
47 47
48 48
49void OpieScreenSaver::restore() 49void OpieScreenSaver::restore()
50{ 50{
51 m_level = -1; 51 m_level = -1;
52 52
53 if ( !m_lcd_status ) { // We must have turned it off 53 if ( !m_lcd_status ) { // We must have turned it off
54 ODevice::inst ( ) -> setDisplayStatus ( true ); 54 ODevice::inst ( ) -> setDisplayStatus ( true );
55 m_lcd_status = true; 55 m_lcd_status = true;
56 } 56 }
57 57
58 setBacklightInternal ( -1 ); 58 setBacklightInternal ( -1 );
59} 59}
60 60
61 61
62bool OpieScreenSaver::save( int level ) 62bool OpieScreenSaver::save( int level )
63{ 63{
64 m_level = level; 64 m_level = level;
65 65
66 switch ( level ) { 66 switch ( level ) {
67 case 0: 67 case 0:
68 if (( m_on_ac && m_enable_dim_ac ) || 68 if (( m_on_ac && m_enable_dim_ac ) ||
69 ( !m_on_ac && m_enable_dim )) { 69 ( !m_on_ac && m_enable_dim )) {
70 if (( m_disable_suspend > 0 ) && ( m_backlight_current > 1 ) && !m_use_light_sensor ) 70 if (( m_disable_suspend > 0 ) && ( m_backlight_current > 1 ) && !m_use_light_sensor )
71 setBacklightInternal ( 1 ); // lowest non-off 71 setBacklightInternal ( 1 ); // lowest non-off
72 } 72 }
73 return true; 73 return true;
74 break; 74 break;
75 75
76 case 1: 76 case 1:
77 if (( m_on_ac && m_enable_lightoff_ac ) || 77 if (( m_on_ac && m_enable_lightoff_ac ) ||
78 ( !m_on_ac && m_enable_lightoff )) { 78 ( !m_on_ac && m_enable_lightoff )) {
79 if ( m_disable_suspend > 1 ) 79 if ( m_disable_suspend > 1 )
80 setBacklightInternal ( 0 ); // off 80 setBacklightInternal ( 0 ); // off
81 } 81 }
82 return true; 82 return true;
83 break; 83 break;
84 84
85 case 2: 85 case 2:
86 if (( m_on_ac && !m_enable_suspend_ac ) || 86 if (( m_on_ac && !m_enable_suspend_ac ) ||
87 ( !m_on_ac && !m_enable_suspend )) { 87 ( !m_on_ac && !m_enable_suspend )) {
88 return true; 88 return true;
89 } 89 }
90 90
91 if (( m_on_ac && m_onlylcdoff_ac ) || 91 if (( m_on_ac && m_onlylcdoff_ac ) ||
92 ( !m_on_ac && m_onlylcdoff )) { 92 ( !m_on_ac && m_onlylcdoff )) {
93 ODevice::inst ( ) -> setDisplayStatus ( false ); 93 ODevice::inst ( ) -> setDisplayStatus ( false );
94 m_lcd_status = false; 94 m_lcd_status = false;
95 return true; 95 return true;
96 } 96 }
97 97
98 // We're going to suspend the whole machine 98 // We're going to suspend the whole machine
99 99
100 if (( m_disable_suspend > 2 ) && !Network::networkOnline ( )) { 100 if (( m_disable_suspend > 2 ) && !Network::networkOnline ( )) {
101 QWSServer::sendKeyEvent( 0xffff, Qt::Key_F34, FALSE, TRUE, FALSE ); 101 QWSServer::sendKeyEvent( 0xffff, Qt::Key_F34, FALSE, TRUE, FALSE );
102 return true; 102 return true;
103 } 103 }
104 104
105 break; 105 break;
106 } 106 }
107 return false; 107 return false;
108} 108}
109 109
110 110
111void OpieScreenSaver::setIntervals ( int i1, int i2, int i3 ) 111void OpieScreenSaver::setIntervals ( int i1, int i2, int i3 )
112{ 112{
113 Config config ( "apm" ); 113 Config config ( "apm" );
114 config. setGroup ( m_on_ac ? "AC" : "Battery" ); 114 config. setGroup ( m_on_ac ? "AC" : "Battery" );
115 115
116 int v[ 4 ]; 116 int v[ 4 ];
117 if ( i1 < 0 ) 117 if ( i1 < 0 )
118 i1 = config. readNumEntry ( "Dim", 30 ); 118 i1 = config. readNumEntry ( "Dim", m_on_ac ? 60 : 30 );
119 if ( i2 < 0 ) 119 if ( i2 < 0 )
120 i2 = config. readNumEntry ( "LightOff", 20 ); 120 i2 = config. readNumEntry ( "LightOff", m_on_ac ? 120 : 20 );
121 if ( i3 < 0 ) 121 if ( i3 < 0 )
122 i3 = config. readNumEntry ( "Suspend", 60 ); 122 i3 = config. readNumEntry ( "Suspend", m_on_ac ? 0 : 60 );
123 123
124 if ( m_on_ac ) { 124 if ( m_on_ac ) {
125 m_enable_dim_ac = ( i1 > 0 ); 125 m_enable_dim_ac = ( i1 > 0 );
126 m_enable_lightoff_ac = ( i2 > 0 ); 126 m_enable_lightoff_ac = ( i2 > 0 );
127 m_enable_suspend_ac = ( i3 > 0 ); 127 m_enable_suspend_ac = ( i3 > 0 );
128 m_onlylcdoff_ac = config.readNumEntry ( "LcdOffOnly", 0 ); 128 m_onlylcdoff_ac = config.readBoolEntry ( "LcdOffOnly", false );
129 } 129 }
130 else { 130 else {
131 m_enable_dim = ( i1 > 0 ); 131 m_enable_dim = ( i1 > 0 );
132 m_enable_lightoff = ( i2 > 0 ); 132 m_enable_lightoff = ( i2 > 0 );
133 m_enable_suspend = ( i3 > 0 ); 133 m_enable_suspend = ( i3 > 0 );
134 m_onlylcdoff = config.readNumEntry ( "LcdOffOnly", 0 ); 134 m_onlylcdoff = config.readBoolEntry ( "LcdOffOnly", false );
135 } 135 }
136 136
137 qDebug("screen saver intervals: %d %d %d", i1, i2, i3); 137 qDebug("screen saver intervals: %d %d %d", i1, i2, i3);
138 138
139 v [ 0 ] = QMAX( 1000 * i1, 100 ); 139 v [ 0 ] = QMAX( 1000 * i1, 100 );
140 v [ 1 ] = QMAX( 1000 * i2, 100 ); 140 v [ 1 ] = QMAX( 1000 * i2, 100 );
141 v [ 2 ] = QMAX( 1000 * i3, 100 ); 141 v [ 2 ] = QMAX( 1000 * i3, 100 );
142 v [ 3 ] = 0; 142 v [ 3 ] = 0;
143 143
144 if ( !i1 && !i2 && !i3 ) 144 if ( !i1 && !i2 && !i3 )
145 QWSServer::setScreenSaverInterval( 0 ); 145 QWSServer::setScreenSaverInterval( 0 );
146 else 146 else
147 QWSServer::setScreenSaverIntervals( v ); 147 QWSServer::setScreenSaverIntervals( v );
148} 148}
149 149
150 150
151void OpieScreenSaver::setInterval ( int interval ) 151void OpieScreenSaver::setInterval ( int interval )
152{ 152{
153 setIntervals ( -1, -1, interval ); 153 setIntervals ( -1, -1, interval );
154} 154}
155 155
156 156
157void OpieScreenSaver::setMode ( int mode ) 157void OpieScreenSaver::setMode ( int mode )
158{ 158{
159 if ( mode > m_disable_suspend ) 159 if ( mode > m_disable_suspend )
160 setInterval ( -1 ); 160 setInterval ( -1 );
161 m_disable_suspend = mode; 161 m_disable_suspend = mode;
162} 162}
163 163
164 164
165void OpieScreenSaver::setBacklight ( int bright ) 165void OpieScreenSaver::setBacklight ( int bright )
166{ 166{
167 // Read from config 167 // Read from config
168 Config config ( "apm" ); 168 Config config ( "apm" );
169 config. setGroup ( m_on_ac ? "AC" : "Battery" ); 169 config. setGroup ( m_on_ac ? "AC" : "Battery" );
170 m_backlight_normal = config. readNumEntry ( "Brightness", 255 ); 170 m_backlight_normal = config. readNumEntry ( "Brightness", m_on_ac ? 255 : 127 );
171 171
172 m_use_light_sensor = config. readBoolEntry ( "LightSensor", false ); 172 m_use_light_sensor = config. readBoolEntry ( "LightSensor", false );
173 173
174 qDebug ( "setBacklight: %d (ls: %d)", m_backlight_normal, m_use_light_sensor ? 1 : 0 ); 174 //qDebug ( "setBacklight: %d (ls: %d)", m_backlight_normal, m_use_light_sensor ? 1 : 0 );
175 175
176 killTimers ( ); 176 killTimers ( );
177 if ( m_use_light_sensor ) { 177 if ( m_use_light_sensor ) {
178 QStringList sl = config. readListEntry ( "LightSensorData", ';' ); 178 QStringList sl = config. readListEntry ( "LightSensorData", ';' );
179 179
180 m_sensordata [LS_SensorMin] = 40; 180 m_sensordata [LS_SensorMin] = 40;
181 m_sensordata [LS_SensorMax] = 215; 181 m_sensordata [LS_SensorMax] = 215;
182 m_sensordata [LS_LightMin] = 1; 182 m_sensordata [LS_LightMin] = 1;
183 m_sensordata [LS_LightMax] = 255; 183 m_sensordata [LS_LightMax] = 255;
184 m_sensordata [LS_Steps] = 12; 184 m_sensordata [LS_Steps] = 12;
185 m_sensordata [LS_Interval] = 2000; 185 m_sensordata [LS_Interval] = 2000;
186 186
187 for ( uint i = 0; i < LS_Count; i++ ) { 187 for ( uint i = 0; i < LS_Count; i++ ) {
188 if ( i < sl. count ( )) 188 if ( i < sl. count ( ))
189 m_sensordata [i] = sl [i]. toInt ( ); 189 m_sensordata [i] = sl [i]. toInt ( );
190 } 190 }
191 191
192 timerEvent ( 0 ); 192 timerEvent ( 0 );
193 startTimer ( m_sensordata [LS_Interval] ); 193 startTimer ( m_sensordata [LS_Interval] );
194 } 194 }
195 195
196 setBacklightInternal ( bright ); 196 setBacklightInternal ( bright );
197} 197}
198 198
199 199
200void OpieScreenSaver::setBacklightInternal ( int bright ) 200void OpieScreenSaver::setBacklightInternal ( int bright )
201{ 201{
202 if ( bright == -3 ) { 202 if ( bright == -3 ) {
203 // Forced on 203 // Forced on
204 m_backlight_forcedoff = false; 204 m_backlight_forcedoff = false;
205 bright = -1; 205 bright = -1;
206 } 206 }
207 if ( m_backlight_forcedoff && bright != -2 ) 207 if ( m_backlight_forcedoff && bright != -2 )
208 return ; 208 return ;
209 if ( bright == -2 ) { 209 if ( bright == -2 ) {
210 // Toggle between off and on 210 // Toggle between off and on
211 bright = m_backlight_current ? 0 : -1; 211 bright = m_backlight_current ? 0 : -1;
212 m_backlight_forcedoff = !bright; 212 m_backlight_forcedoff = !bright;
213 } 213 }
214 if ( bright == -1 ) 214 if ( bright == -1 )
215 bright = m_use_light_sensor ? m_backlight_sensor : m_backlight_normal; 215 bright = m_use_light_sensor ? m_backlight_sensor : m_backlight_normal;
216 216
217 if ( bright != m_backlight_current ) { 217 if ( bright != m_backlight_current ) {
218 ODevice::inst ( )-> setDisplayBrightness ( bright ); 218 ODevice::inst ( )-> setDisplayBrightness ( bright );
219 m_backlight_current = bright; 219 m_backlight_current = bright;
220 } 220 }
221} 221}
222 222
223 223
224void OpieScreenSaver::timerEvent ( QTimerEvent * ) 224void OpieScreenSaver::timerEvent ( QTimerEvent * )
225{ 225{
226 int s = ODevice::inst ( )-> readLightSensor ( ); 226 int s = ODevice::inst ( )-> readLightSensor ( );
227 227
228 if ( s < m_sensordata [LS_SensorMin] ) 228 if ( s < m_sensordata [LS_SensorMin] )
229 m_backlight_sensor = m_sensordata [LS_LightMax]; 229 m_backlight_sensor = m_sensordata [LS_LightMax];
230 else if ( s >= m_sensordata [LS_SensorMax] ) 230 else if ( s >= m_sensordata [LS_SensorMax] )
231 m_backlight_sensor = m_sensordata [LS_LightMin]; 231 m_backlight_sensor = m_sensordata [LS_LightMin];
232 else { 232 else {
233 int dx = m_sensordata [LS_SensorMax] - m_sensordata [LS_SensorMin]; 233 int dx = m_sensordata [LS_SensorMax] - m_sensordata [LS_SensorMin];
234 int dy = m_sensordata [LS_LightMax] - m_sensordata [LS_LightMin]; 234 int dy = m_sensordata [LS_LightMax] - m_sensordata [LS_LightMin];
235 235
236 int stepno = ( s - m_sensordata [LS_SensorMin] ) * m_sensordata [LS_Steps] / dx; 236 int stepno = ( s - m_sensordata [LS_SensorMin] ) * m_sensordata [LS_Steps] / dx;
237 237
238 m_backlight_sensor = m_sensordata [LS_LightMax] - dy * stepno / ( m_sensordata [LS_Steps] - 1 ); 238 m_backlight_sensor = m_sensordata [LS_LightMax] - dy * stepno / ( m_sensordata [LS_Steps] - 1 );
239 } 239 }
240 if ( !m_backlight_sensor ) 240 if ( !m_backlight_sensor )
241 m_backlight_sensor = 1; 241 m_backlight_sensor = 1;
242 242
243 // qDebug ( "f(%d) = %d [%d - %d] -> [%d - %d] / %d", s, m_backlight_sensor, m_sensordata [LS_SensorMin], m_sensordata [LS_SensorMax], m_sensordata [LS_LightMin], m_sensordata [LS_LightMax], m_sensordata [LS_Steps] ); 243 // qDebug ( "f(%d) = %d [%d - %d] -> [%d - %d] / %d", s, m_backlight_sensor, m_sensordata [LS_SensorMin], m_sensordata [LS_SensorMax], m_sensordata [LS_LightMin], m_sensordata [LS_LightMax], m_sensordata [LS_Steps] );
244 244
245 if ( m_level <= 0 ) 245 if ( m_level <= 0 )
246 setBacklightInternal ( -1 ); 246 setBacklightInternal ( -1 );
247} 247}
248 248
249 249
250void OpieScreenSaver::setDisplayState ( bool on ) 250void OpieScreenSaver::setDisplayState ( bool on )
251{ 251{
252 if ( m_lcd_status != on ) { 252 if ( m_lcd_status != on ) {
253 ODevice::inst ( ) -> setDisplayStatus ( on ); 253 ODevice::inst ( ) -> setDisplayStatus ( on );
254 m_lcd_status = on; 254 m_lcd_status = on;
255 } 255 }
256} 256}
257 257
258 258
259void OpieScreenSaver::powerStatusChanged ( PowerStatus ps ) 259void OpieScreenSaver::powerStatusChanged ( PowerStatus ps )
260{ 260{
261 bool newonac = ( ps. acStatus ( ) == PowerStatus::Online ); 261 bool newonac = ( ps. acStatus ( ) == PowerStatus::Online );
262 262
263 if ( newonac != m_on_ac ) { 263 if ( newonac != m_on_ac ) {
264 m_on_ac = newonac; 264 m_on_ac = newonac;
265 setInterval ( -1 ); 265 setInterval ( -1 );
266 setBacklight ( -1 ); 266 setBacklight ( -1 );
267 restore ( ); 267 restore ( );
268 } 268 }
269} 269}
270 270