diff options
-rw-r--r-- | android/android.make | 16 | ||||
-rw-r--r-- | firmware/export/storage.h | 23 | ||||
-rw-r--r-- | firmware/target/hosted/android/powermgmt-android.c | 86 | ||||
-rw-r--r-- | tools/root.make | 6 | ||||
-rw-r--r-- | uisimulator/common/SOURCES | 6 |
5 files changed, 130 insertions, 7 deletions
diff --git a/android/android.make b/android/android.make new file mode 100644 index 0000000000..e87ba39793 --- /dev/null +++ b/android/android.make | |||
@@ -0,0 +1,16 @@ | |||
1 | # __________ __ ___. | ||
2 | # Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
3 | # Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
4 | # Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
5 | # Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
6 | # \/ \/ \/ \/ \/ | ||
7 | # $Id$ | ||
8 | # | ||
9 | |||
10 | # pretty empty here: android port has no additional .c files to compile, | ||
11 | # but a different rule for the final librockbox.so | ||
12 | |||
13 | .SECONDEXPANSION: # $$(OBJ) is not populated until after this | ||
14 | |||
15 | $(BUILDDIR)/$(BINARY): $$(OBJ) $(VOICESPEEXLIB) $(FIRMLIB) $(SKINLIB) | ||
16 | $(call PRINTS,LD $(BINARY))$(CC) -o $@ $^ $(LDOPTS) $(GLOBAL_LDOPTS) | ||
diff --git a/firmware/export/storage.h b/firmware/export/storage.h index e59a5e5bf6..9ff493e564 100644 --- a/firmware/export/storage.h +++ b/firmware/export/storage.h | |||
@@ -51,12 +51,31 @@ struct storage_info | |||
51 | char *revision; | 51 | char *revision; |
52 | }; | 52 | }; |
53 | 53 | ||
54 | #if (CONFIG_PLATFORM & PLATFORM_NATIVE) && !defined(CONFIG_STORAGE_MULTI) | 54 | #if (CONFIG_STORAGE == 0) |
55 | /* stubs for the plugin api */ | ||
56 | static inline void stub_storage_sleep(void) {} | ||
57 | static inline void stub_storage_spin(void) {} | ||
58 | static inline void stub_storage_spindown(int timeout) { (void)timeout; } | ||
59 | #endif | ||
60 | |||
61 | #if defined(CONFIG_STORAGE) && !defined(CONFIG_STORAGE_MULTI) | ||
55 | /* storage_spindown, storage_sleep and storage_spin are passed as | 62 | /* storage_spindown, storage_sleep and storage_spin are passed as |
56 | * pointers, which doesn't work with argument-macros. | 63 | * pointers, which doesn't work with argument-macros. |
57 | */ | 64 | */ |
58 | #define storage_num_drives() NUM_DRIVES | 65 | #define storage_num_drives() NUM_DRIVES |
59 | #if (CONFIG_STORAGE & STORAGE_ATA) | 66 | #if (CONFIG_STORAGE == 0) /* application */ |
67 | #define STORANGE_FUNCTION(NAME) (stub_## NAME) | ||
68 | #define storage_spindown stub_storage_spindown | ||
69 | #define storage_sleep stub_storage_sleep | ||
70 | #define storage_spin stub_storage_spin | ||
71 | |||
72 | #define storage_enable(on) | ||
73 | #define storage_sleepnow() | ||
74 | #define storage_disk_is_active() | ||
75 | #define storage_soft_reset() | ||
76 | #define storage_init() | ||
77 | #define storage_close() | ||
78 | #elif (CONFIG_STORAGE & STORAGE_ATA) | ||
60 | #define STORAGE_FUNCTION(NAME) (ata_## NAME) | 79 | #define STORAGE_FUNCTION(NAME) (ata_## NAME) |
61 | #define storage_spindown ata_spindown | 80 | #define storage_spindown ata_spindown |
62 | #define storage_sleep ata_sleep | 81 | #define storage_sleep ata_sleep |
diff --git a/firmware/target/hosted/android/powermgmt-android.c b/firmware/target/hosted/android/powermgmt-android.c new file mode 100644 index 0000000000..6dc7c8c814 --- /dev/null +++ b/firmware/target/hosted/android/powermgmt-android.c | |||
@@ -0,0 +1,86 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * $Id$ | ||
9 | * | ||
10 | * Copyright (C) 2010 by Thomas Martitz | ||
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 | |||
22 | |||
23 | #include <jni.h> | ||
24 | #include <stdbool.h> | ||
25 | #include "config.h" | ||
26 | |||
27 | extern JNIEnv *env_ptr; | ||
28 | extern jclass RockboxService_class; | ||
29 | extern jobject RockboxService_instance; | ||
30 | |||
31 | static jfieldID _battery_level; | ||
32 | |||
33 | void powermgmt_init_target(void) | ||
34 | { | ||
35 | jmethodID initBatteryMonitor = (*env_ptr)->GetMethodID(env_ptr, | ||
36 | RockboxService_class, | ||
37 | "initBatteryMonitor", | ||
38 | "()V"); | ||
39 | /* start the monitor */ | ||
40 | (*env_ptr)->CallVoidMethod(env_ptr, | ||
41 | RockboxService_instance, | ||
42 | initBatteryMonitor); | ||
43 | |||
44 | /* cache the battery level field id */ | ||
45 | _battery_level = (*env_ptr)->GetFieldID(env_ptr, | ||
46 | RockboxService_class, | ||
47 | "battery_level", | ||
48 | "I"); | ||
49 | } | ||
50 | |||
51 | int battery_level(void) | ||
52 | { | ||
53 | return (*env_ptr)->GetIntField(env_ptr, RockboxService_instance, _battery_level); | ||
54 | } | ||
55 | |||
56 | int battery_time(void) | ||
57 | { /* cannot calculate yet */ | ||
58 | return 0; | ||
59 | } | ||
60 | |||
61 | /* could be useful to stop the service after some time of inactivity */ | ||
62 | void reset_poweroff_timer(void) {} | ||
63 | void set_poweroff_timeout(int timeout) { (void)timeout; }; | ||
64 | |||
65 | /* should always be safe on android targets, the host shuts us down before */ | ||
66 | bool battery_level_safe(void) | ||
67 | { | ||
68 | return true; | ||
69 | } | ||
70 | |||
71 | /* TODO */ | ||
72 | unsigned battery_voltage(void) | ||
73 | { | ||
74 | return 0; | ||
75 | } | ||
76 | |||
77 | static int sleeptime; | ||
78 | void set_sleep_timer(int seconds) | ||
79 | { | ||
80 | sleeptime = seconds; | ||
81 | } | ||
82 | |||
83 | int get_sleep_timer(void) | ||
84 | { | ||
85 | return sleeptime; | ||
86 | } | ||
diff --git a/tools/root.make b/tools/root.make index eda27b77c0..3d19e6287e 100644 --- a/tools/root.make +++ b/tools/root.make | |||
@@ -97,9 +97,13 @@ else | |||
97 | include $(APPSDIR)/plugins/plugins.make | 97 | include $(APPSDIR)/plugins/plugins.make |
98 | endif | 98 | endif |
99 | 99 | ||
100 | ifdef APP_TYPE | 100 | ifneq (,$(findstring sdl,$(APP_TYPE))) |
101 | include $(ROOTDIR)/uisimulator/uisimulator.make | 101 | include $(ROOTDIR)/uisimulator/uisimulator.make |
102 | endif | 102 | endif |
103 | |||
104 | ifneq (,$(findstring android, $(APP_TYPE))) | ||
105 | include $(ROOTDIR)/android/android.make | ||
106 | endif | ||
103 | 107 | ||
104 | endif # bootloader | 108 | endif # bootloader |
105 | 109 | ||
diff --git a/uisimulator/common/SOURCES b/uisimulator/common/SOURCES index 5f068c5bdc..4f9fb05a6a 100644 --- a/uisimulator/common/SOURCES +++ b/uisimulator/common/SOURCES | |||
@@ -1,4 +1,4 @@ | |||
1 | #ifndef APPLICATION | 1 | #ifdef SIMULATOR |
2 | lcd-common.c | 2 | lcd-common.c |
3 | #ifdef HAVE_LCD_CHARCELLS | 3 | #ifdef HAVE_LCD_CHARCELLS |
4 | font-player.c | 4 | font-player.c |
@@ -9,10 +9,8 @@ fmradio.c | |||
9 | backlight-sim.c | 9 | backlight-sim.c |
10 | #endif | 10 | #endif |
11 | 11 | ||
12 | #if (CONFIG_PLATFORM & PLATFORM_SDL) | ||
13 | io.c | 12 | io.c |
14 | sim_tasks.c | 13 | sim_tasks.c |
15 | powermgmt-sim.c | 14 | powermgmt-sim.c |
16 | #endif | ||
17 | /* this is still needed for application since it has some stubs */ | ||
18 | stubs.c | 15 | stubs.c |
16 | /* this is still needed for application since it has some stubs */ | ||