diff options
Diffstat (limited to 'firmware/target/hosted')
-rw-r--r-- | firmware/target/hosted/android/powermgmt-android.c | 28 | ||||
-rw-r--r-- | firmware/target/hosted/android/system-android.c | 2 | ||||
-rw-r--r-- | firmware/target/hosted/maemo/maemo-thread.c | 30 | ||||
-rw-r--r-- | firmware/target/hosted/powermgmt.c | 56 | ||||
-rw-r--r-- | firmware/target/hosted/sdl/system-sdl.c | 2 | ||||
-rw-r--r-- | firmware/target/hosted/ypr0/powermgmt-ypr0.c | 4 |
6 files changed, 13 insertions, 109 deletions
diff --git a/firmware/target/hosted/android/powermgmt-android.c b/firmware/target/hosted/android/powermgmt-android.c index dcbd7a6214..1e70a81753 100644 --- a/firmware/target/hosted/android/powermgmt-android.c +++ b/firmware/target/hosted/android/powermgmt-android.c | |||
@@ -28,10 +28,10 @@ extern JNIEnv *env_ptr; | |||
28 | extern jclass RockboxService_class; | 28 | extern jclass RockboxService_class; |
29 | extern jobject RockboxService_instance; | 29 | extern jobject RockboxService_instance; |
30 | 30 | ||
31 | static jfieldID _battery_level; | 31 | static jfieldID __battery_level; |
32 | static jobject BatteryMonitor_instance; | 32 | static jobject BatteryMonitor_instance; |
33 | 33 | ||
34 | void powermgmt_init_target(void) | 34 | static void new_battery_monitor(void) |
35 | { | 35 | { |
36 | JNIEnv e = *env_ptr; | 36 | JNIEnv e = *env_ptr; |
37 | jclass class = e->FindClass(env_ptr, "org/rockbox/monitors/BatteryMonitor"); | 37 | jclass class = e->FindClass(env_ptr, "org/rockbox/monitors/BatteryMonitor"); |
@@ -43,29 +43,15 @@ void powermgmt_init_target(void) | |||
43 | RockboxService_instance); | 43 | RockboxService_instance); |
44 | 44 | ||
45 | /* cache the battery level field id */ | 45 | /* cache the battery level field id */ |
46 | _battery_level = (*env_ptr)->GetFieldID(env_ptr, | 46 | __battery_level = (*env_ptr)->GetFieldID(env_ptr, |
47 | class, | 47 | class, |
48 | "mBattLevel", "I"); | 48 | "mBattLevel", "I"); |
49 | } | 49 | } |
50 | 50 | ||
51 | int battery_level(void) | 51 | int _battery_level(void) |
52 | { | 52 | { |
53 | return (*env_ptr)->GetIntField(env_ptr, BatteryMonitor_instance, _battery_level); | 53 | if (!BatteryMonitor_instance) |
54 | new_battery_monitor(); | ||
55 | return (*env_ptr)->GetIntField(env_ptr, BatteryMonitor_instance, __battery_level); | ||
54 | } | 56 | } |
55 | 57 | ||
56 | int battery_time(void) | ||
57 | { /* cannot calculate yet */ | ||
58 | return 0; | ||
59 | } | ||
60 | |||
61 | /* should always be safe on android targets, the host shuts us down before */ | ||
62 | bool battery_level_safe(void) | ||
63 | { | ||
64 | return true; | ||
65 | } | ||
66 | |||
67 | /* TODO */ | ||
68 | unsigned battery_voltage(void) | ||
69 | { | ||
70 | return 0; | ||
71 | } | ||
diff --git a/firmware/target/hosted/android/system-android.c b/firmware/target/hosted/android/system-android.c index fba7ff4e2c..e48e910c0c 100644 --- a/firmware/target/hosted/android/system-android.c +++ b/firmware/target/hosted/android/system-android.c | |||
@@ -45,7 +45,7 @@ void system_reboot(void) { } | |||
45 | 45 | ||
46 | /* this is used to return from the entry point of the native library. */ | 46 | /* this is used to return from the entry point of the native library. */ |
47 | static jmp_buf poweroff_buf; | 47 | static jmp_buf poweroff_buf; |
48 | void shutdown_hw(void) | 48 | void power_off(void) |
49 | { | 49 | { |
50 | longjmp(poweroff_buf, 1); | 50 | longjmp(poweroff_buf, 1); |
51 | } | 51 | } |
diff --git a/firmware/target/hosted/maemo/maemo-thread.c b/firmware/target/hosted/maemo/maemo-thread.c index a32a563459..2f1d033baa 100644 --- a/firmware/target/hosted/maemo/maemo-thread.c +++ b/firmware/target/hosted/maemo/maemo-thread.c | |||
@@ -163,40 +163,14 @@ int maemo_thread_func (void *wait_for_osso_startup) | |||
163 | return 0; | 163 | return 0; |
164 | } | 164 | } |
165 | 165 | ||
166 | /** Rockbox battery related functions */ | ||
167 | void battery_status_update(void) | ||
168 | { | ||
169 | battery_percent = maemo_battery_level; | ||
170 | send_battery_level_event(); | ||
171 | } | ||
172 | |||
173 | /* Returns true if any power input is connected - charging-capable | ||
174 | * or not. */ | ||
175 | bool power_input_present(void) | ||
176 | { | ||
177 | return false; | ||
178 | } | ||
179 | |||
180 | unsigned battery_voltage(void) | ||
181 | { | ||
182 | return 0; | ||
183 | } | ||
184 | |||
185 | /* Returns battery level in percent */ | 166 | /* Returns battery level in percent */ |
186 | int battery_level(void) | 167 | int _battery_level(void) |
187 | { | 168 | { |
188 | battery_status_update(); | ||
189 | return maemo_battery_level; | 169 | return maemo_battery_level; |
190 | } | 170 | } |
191 | 171 | ||
192 | /* Return remaining battery time in minutes */ | 172 | /* Return remaining battery time in minutes */ |
193 | int battery_time(void) | 173 | int _battery_time(void) |
194 | { | 174 | { |
195 | battery_status_update(); | ||
196 | return maemo_remaining_time_sec / 60; | 175 | return maemo_remaining_time_sec / 60; |
197 | } | 176 | } |
198 | |||
199 | bool battery_level_safe(void) | ||
200 | { | ||
201 | return battery_level() >= 5; | ||
202 | } | ||
diff --git a/firmware/target/hosted/powermgmt.c b/firmware/target/hosted/powermgmt.c deleted file mode 100644 index bf05e5ff19..0000000000 --- a/firmware/target/hosted/powermgmt.c +++ /dev/null | |||
@@ -1,56 +0,0 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * $Id$ | ||
9 | * | ||
10 | * Copyright (C) 2011 by Thomas Jarosch | ||
11 | * | ||
12 | * This program is free software; you can redistribute it and/or | ||
13 | * modify it under the terms of the GNU General Public License | ||
14 | * as published by the Free Software Foundation; either version 2 | ||
15 | * of the License, or (at your option) any later version. | ||
16 | * | ||
17 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
18 | * KIND, either express or implied. | ||
19 | * | ||
20 | ****************************************************************************/ | ||
21 | #include "config.h" | ||
22 | #include "powermgmt.h" | ||
23 | #include "thread.h" | ||
24 | #include "kernel.h" | ||
25 | |||
26 | static char power_stack[DEFAULT_STACK_SIZE]; | ||
27 | static const char power_thread_name[] = "power"; | ||
28 | |||
29 | void powermgmt_init_target(void); | ||
30 | |||
31 | #if !(CONFIG_PLATFORM & PLATFORM_ANDROID) | ||
32 | void powermgmt_init_target(void) | ||
33 | { | ||
34 | /* Nothing to do */ | ||
35 | } | ||
36 | #endif | ||
37 | |||
38 | static void power_thread(void) | ||
39 | { | ||
40 | powermgmt_init_target(); | ||
41 | |||
42 | while (1) | ||
43 | { | ||
44 | /* Sleep two seconds */ | ||
45 | sleep(HZ*2); | ||
46 | |||
47 | handle_auto_poweroff(); | ||
48 | } | ||
49 | } /* power_thread */ | ||
50 | |||
51 | void powermgmt_init(void) | ||
52 | { | ||
53 | create_thread(power_thread, power_stack, sizeof(power_stack), 0, | ||
54 | power_thread_name IF_PRIO(, PRIORITY_SYSTEM) | ||
55 | IF_COP(, CPU)); | ||
56 | } | ||
diff --git a/firmware/target/hosted/sdl/system-sdl.c b/firmware/target/hosted/sdl/system-sdl.c index 93a8a7cb66..87b2e0ccd1 100644 --- a/firmware/target/hosted/sdl/system-sdl.c +++ b/firmware/target/hosted/sdl/system-sdl.c | |||
@@ -196,7 +196,7 @@ static int sdl_event_thread(void * param) | |||
196 | return 0; | 196 | return 0; |
197 | } | 197 | } |
198 | 198 | ||
199 | void shutdown_hw(void) | 199 | void power_off(void) |
200 | { | 200 | { |
201 | /* Shut down SDL event loop */ | 201 | /* Shut down SDL event loop */ |
202 | SDL_Event event; | 202 | SDL_Event event; |
diff --git a/firmware/target/hosted/ypr0/powermgmt-ypr0.c b/firmware/target/hosted/ypr0/powermgmt-ypr0.c index 0c162a619d..9c90f7ea02 100644 --- a/firmware/target/hosted/ypr0/powermgmt-ypr0.c +++ b/firmware/target/hosted/ypr0/powermgmt-ypr0.c | |||
@@ -70,7 +70,7 @@ unsigned int power_input_status(void) | |||
70 | 70 | ||
71 | /* Returns battery voltage from ADC [millivolts], | 71 | /* Returns battery voltage from ADC [millivolts], |
72 | * adc returns voltage in 5mV steps */ | 72 | * adc returns voltage in 5mV steps */ |
73 | unsigned int battery_adc_voltage(void) | 73 | int _battery_voltage(void) |
74 | { | 74 | { |
75 | return adc_read(3) * 5; | 75 | return adc_read(3) * 5; |
76 | } | 76 | } |
@@ -80,5 +80,5 @@ bool charging_state(void) | |||
80 | const unsigned short charged_thres = 4170; | 80 | const unsigned short charged_thres = 4170; |
81 | bool ret = (power_input_status() == POWER_INPUT_MAIN_CHARGER); | 81 | bool ret = (power_input_status() == POWER_INPUT_MAIN_CHARGER); |
82 | /* dont indicate for > ~95% */ | 82 | /* dont indicate for > ~95% */ |
83 | return ret && (battery_adc_voltage() <= charged_thres); | 83 | return ret && (_battery_voltage() <= charged_thres); |
84 | } | 84 | } |