From f8381d9c39a3a8c1ca8351552bbfbbf55246063a Mon Sep 17 00:00:00 2001 From: Thomas Martitz Date: Thu, 2 Sep 2010 00:24:40 +0000 Subject: Android: don't compile stubs.c and kill off libuisimulator entirely. Seperate make rules in a almost empty android.make. Also add forgotten powermgmt-android.c git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27977 a1c6a512-1295-4272-9138-f99709370657 --- firmware/export/storage.h | 23 +++++- firmware/target/hosted/android/powermgmt-android.c | 86 ++++++++++++++++++++++ 2 files changed, 107 insertions(+), 2 deletions(-) create mode 100644 firmware/target/hosted/android/powermgmt-android.c (limited to 'firmware') 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 char *revision; }; -#if (CONFIG_PLATFORM & PLATFORM_NATIVE) && !defined(CONFIG_STORAGE_MULTI) +#if (CONFIG_STORAGE == 0) +/* stubs for the plugin api */ +static inline void stub_storage_sleep(void) {} +static inline void stub_storage_spin(void) {} +static inline void stub_storage_spindown(int timeout) { (void)timeout; } +#endif + +#if defined(CONFIG_STORAGE) && !defined(CONFIG_STORAGE_MULTI) /* storage_spindown, storage_sleep and storage_spin are passed as * pointers, which doesn't work with argument-macros. */ #define storage_num_drives() NUM_DRIVES - #if (CONFIG_STORAGE & STORAGE_ATA) + #if (CONFIG_STORAGE == 0) /* application */ + #define STORANGE_FUNCTION(NAME) (stub_## NAME) + #define storage_spindown stub_storage_spindown + #define storage_sleep stub_storage_sleep + #define storage_spin stub_storage_spin + + #define storage_enable(on) + #define storage_sleepnow() + #define storage_disk_is_active() + #define storage_soft_reset() + #define storage_init() + #define storage_close() + #elif (CONFIG_STORAGE & STORAGE_ATA) #define STORAGE_FUNCTION(NAME) (ata_## NAME) #define storage_spindown ata_spindown #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 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2010 by Thomas Martitz + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ + + +#include +#include +#include "config.h" + +extern JNIEnv *env_ptr; +extern jclass RockboxService_class; +extern jobject RockboxService_instance; + +static jfieldID _battery_level; + +void powermgmt_init_target(void) +{ + jmethodID initBatteryMonitor = (*env_ptr)->GetMethodID(env_ptr, + RockboxService_class, + "initBatteryMonitor", + "()V"); + /* start the monitor */ + (*env_ptr)->CallVoidMethod(env_ptr, + RockboxService_instance, + initBatteryMonitor); + + /* cache the battery level field id */ + _battery_level = (*env_ptr)->GetFieldID(env_ptr, + RockboxService_class, + "battery_level", + "I"); +} + +int battery_level(void) +{ + return (*env_ptr)->GetIntField(env_ptr, RockboxService_instance, _battery_level); +} + +int battery_time(void) +{ /* cannot calculate yet */ + return 0; +} + +/* could be useful to stop the service after some time of inactivity */ +void reset_poweroff_timer(void) {} +void set_poweroff_timeout(int timeout) { (void)timeout; }; + +/* should always be safe on android targets, the host shuts us down before */ +bool battery_level_safe(void) +{ + return true; +} + +/* TODO */ +unsigned battery_voltage(void) +{ + return 0; +} + +static int sleeptime; +void set_sleep_timer(int seconds) +{ + sleeptime = seconds; +} + +int get_sleep_timer(void) +{ + return sleeptime; +} -- cgit v1.2.3