New "battery benchmark" plugin by Alexander Spyridakis, modified a bit by me

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8451 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Hristo Kovachev 2006-01-25 18:29:56 +00:00
parent 4781f1461f
commit 495c63f867
5 changed files with 32 additions and 3 deletions

View File

@ -28,6 +28,7 @@
#include "dir.h"
#include "file.h"
#include "kernel.h"
#include "usb.h"
#include "sprintf.h"
#include "logf.h"
#include "screens.h"
@ -369,7 +370,16 @@ static const struct plugin_api rockbox_api = {
profile_func_enter,
profile_func_exit,
#endif
battery_time,
#ifndef SIMULATOR
ata_disk_is_active,
battery_voltage,
#endif
queue_init,
queue_delete,
queue_post,
queue_wait_w_tmo,
usb_acknowledge,
};
int plugin_load(const char* plugin, void* parameter)

View File

@ -37,6 +37,7 @@
#include "dir.h"
#include "kernel.h"
#include "button.h"
#include "usb.h"
#include "font.h"
#include "system.h"
#include "lcd.h"
@ -96,7 +97,7 @@
#define PLUGIN_MAGIC 0x526F634B /* RocK */
/* increase this every time the api struct changes */
#define PLUGIN_API_VERSION 2
#define PLUGIN_API_VERSION 3
/* update this to latest version if a change to the api struct breaks
backwards compatibility (and please take the opportunity to sort in any
@ -427,13 +428,23 @@ struct plugin_api {
/* new stuff at the end, sort into place next time
the API gets incompatible */
#ifdef RB_PROFILE
void (*profile_thread)(void);
void (*profstop)(void);
void (*profile_func_enter)(void *this_fn, void *call_site);
void (*profile_func_exit)(void *this_fn, void *call_site);
#endif
int (*battery_time)(void);
#ifndef SIMULATOR
bool (*ata_disk_is_active)(void);
unsigned int (*battery_voltage)(void);
#endif
void (*queue_init)(struct event_queue *q);
void (*queue_delete)(struct event_queue *q);
void (*queue_post)(struct event_queue *q, long id, void *data);
void (*queue_wait_w_tmo)(struct event_queue *q, struct event *ev, int ticks);
void (*usb_acknowledge)(long id);
};
/* plugin header */

View File

@ -1,4 +1,5 @@
/* plugins common to all models */
battery_bench.c
battery_test.c
chessclock.c
credits.c

View File

@ -144,6 +144,8 @@ void powermgmt_init(void);
int battery_level(void);
int battery_time(void); /* minutes */
unsigned int battery_voltage(void); /* filtered batt. voltage in centivolts */
/* Tells if the battery level is safe for disk writes */
bool battery_level_safe(void);

View File

@ -218,6 +218,11 @@ static long last_event_tick;
static void battery_status_update(void);
static int runcurrent(void);
unsigned int battery_voltage(void)
{
return battery_centivolts;
}
void reset_poweroff_timer(void)
{
last_event_tick = current_tick;