diff options
author | Linus Nielsen Feltzing <linus@haxx.se> | 2005-04-06 11:12:22 +0000 |
---|---|---|
committer | Linus Nielsen Feltzing <linus@haxx.se> | 2005-04-06 11:12:22 +0000 |
commit | 3d2178148bbabac312ea01ad4d9cc6d86bcff75c (patch) | |
tree | bd222448c25549d124d81ecb468f7ad3ef89bb70 /firmware/powermgmt.c | |
parent | 3b853c692e65b603c71655537288fc811b25214f (diff) | |
download | rockbox-3d2178148bbabac312ea01ad4d9cc6d86bcff75c.tar.gz rockbox-3d2178148bbabac312ea01ad4d9cc6d86bcff75c.zip |
Moved the car adapter mode handling to apps/, now every thread gets SYS_CHARGER_CONNECTED and SYS_CHARGER_DISCONNECTED events
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6255 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/powermgmt.c')
-rw-r--r-- | firmware/powermgmt.c | 56 |
1 files changed, 2 insertions, 54 deletions
diff --git a/firmware/powermgmt.c b/firmware/powermgmt.c index 9cfacad9b0..5a1639ca1c 100644 --- a/firmware/powermgmt.c +++ b/firmware/powermgmt.c | |||
@@ -89,11 +89,6 @@ void set_battery_capacity(int capacity) | |||
89 | (void)capacity; | 89 | (void)capacity; |
90 | } | 90 | } |
91 | 91 | ||
92 | void set_car_adapter_mode(bool setting) | ||
93 | { | ||
94 | (void)setting; | ||
95 | } | ||
96 | |||
97 | void reset_poweroff_timer(void) | 92 | void reset_poweroff_timer(void) |
98 | { | 93 | { |
99 | } | 94 | } |
@@ -150,9 +145,6 @@ static enum { | |||
150 | CHARGER_PLUGGED, /* transient state */ | 145 | CHARGER_PLUGGED, /* transient state */ |
151 | CHARGER | 146 | CHARGER |
152 | } charger_input_state; | 147 | } charger_input_state; |
153 | |||
154 | static bool waiting_to_resume_play = false; | ||
155 | static long play_resume_time; | ||
156 | #endif | 148 | #endif |
157 | 149 | ||
158 | #ifdef HAVE_CHARGE_CTRL | 150 | #ifdef HAVE_CHARGE_CTRL |
@@ -192,8 +184,6 @@ static int battery_type = 0; | |||
192 | /* Power history: power_history[0] is the newest sample */ | 184 | /* Power history: power_history[0] is the newest sample */ |
193 | unsigned short power_history[POWER_HISTORY_LEN]; | 185 | unsigned short power_history[POWER_HISTORY_LEN]; |
194 | 186 | ||
195 | static bool car_adapter_mode_enabled = false; | ||
196 | |||
197 | static char power_stack[DEFAULT_STACK_SIZE + DEBUG_STACK]; | 187 | static char power_stack[DEFAULT_STACK_SIZE + DEBUG_STACK]; |
198 | static const char power_thread_name[] = "power"; | 188 | static const char power_thread_name[] = "power"; |
199 | 189 | ||
@@ -401,47 +391,6 @@ static void handle_auto_poweroff(void) | |||
401 | } | 391 | } |
402 | } | 392 | } |
403 | 393 | ||
404 | void set_car_adapter_mode(bool setting) | ||
405 | { | ||
406 | car_adapter_mode_enabled = setting; | ||
407 | } | ||
408 | |||
409 | #ifdef HAVE_CHARGING | ||
410 | static void car_adapter_mode_processing(void) | ||
411 | { | ||
412 | if (car_adapter_mode_enabled) { | ||
413 | |||
414 | if (waiting_to_resume_play) { | ||
415 | if (TIME_AFTER(current_tick, play_resume_time)) { | ||
416 | if (audio_status() & AUDIO_STATUS_PAUSE) { | ||
417 | audio_resume(); | ||
418 | } | ||
419 | waiting_to_resume_play = false; | ||
420 | } | ||
421 | } else { | ||
422 | if (charger_input_state == CHARGER_UNPLUGGED) { | ||
423 | /* | ||
424 | * Just got unplugged, pause if playing | ||
425 | */ | ||
426 | if ((audio_status() & AUDIO_STATUS_PLAY) && | ||
427 | !(audio_status() & AUDIO_STATUS_PAUSE)) { | ||
428 | audio_pause(); | ||
429 | } | ||
430 | } else if(charger_input_state == CHARGER_PLUGGED) { | ||
431 | /* | ||
432 | * Just got plugged in, delay & resume if we were playing | ||
433 | */ | ||
434 | if (audio_status() & AUDIO_STATUS_PAUSE) { | ||
435 | /* delay resume a bit while the engine is cranking */ | ||
436 | play_resume_time = current_tick + HZ*5; | ||
437 | waiting_to_resume_play = true; | ||
438 | } | ||
439 | } | ||
440 | } | ||
441 | } | ||
442 | } | ||
443 | #endif | ||
444 | |||
445 | /* | 394 | /* |
446 | * Estimate how much current we are drawing just to run. | 395 | * Estimate how much current we are drawing just to run. |
447 | */ | 396 | */ |
@@ -507,6 +456,7 @@ static void power_thread_sleep(int ticks) | |||
507 | charger_input_state = CHARGER_PLUGGED; | 456 | charger_input_state = CHARGER_PLUGGED; |
508 | return; | 457 | return; |
509 | case CHARGER_PLUGGED: | 458 | case CHARGER_PLUGGED: |
459 | queue_broadcast(SYS_CHARGER_CONNECTED, NULL); | ||
510 | charger_input_state = CHARGER; | 460 | charger_input_state = CHARGER; |
511 | break; | 461 | break; |
512 | case CHARGER: | 462 | case CHARGER: |
@@ -517,6 +467,7 @@ static void power_thread_sleep(int ticks) | |||
517 | case NO_CHARGER: | 467 | case NO_CHARGER: |
518 | break; | 468 | break; |
519 | case CHARGER_UNPLUGGED: | 469 | case CHARGER_UNPLUGGED: |
470 | queue_broadcast(SYS_CHARGER_DISCONNECTED, NULL); | ||
520 | charger_input_state = NO_CHARGER; | 471 | charger_input_state = NO_CHARGER; |
521 | break; | 472 | break; |
522 | case CHARGER_PLUGGED: | 473 | case CHARGER_PLUGGED: |
@@ -531,9 +482,6 @@ static void power_thread_sleep(int ticks) | |||
531 | sleep(small_ticks); | 482 | sleep(small_ticks); |
532 | ticks -= small_ticks; | 483 | ticks -= small_ticks; |
533 | 484 | ||
534 | #ifdef HAVE_CHARGING | ||
535 | car_adapter_mode_processing(); | ||
536 | #endif | ||
537 | #ifdef HAVE_ALARM_MOD | 485 | #ifdef HAVE_ALARM_MOD |
538 | power_thread_rtc_process(); | 486 | power_thread_rtc_process(); |
539 | #endif | 487 | #endif |