Patch #5056 by Jonathan Gordon, with rework and additions by me: Updated Viewer plugin. Replaces annoying mode-toggle key-combos with a settings menu, including a new 'Scroll by Line' option. I've also added a 'hands-free' auto-scroll feature and added lcd_setmargins to the plugin API, since we need it here.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9844 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Zakk Roberts 2006-05-01 05:45:18 +00:00
parent 0d6b5557a1
commit 07fcf77cb0
3 changed files with 354 additions and 394 deletions

View file

@ -182,7 +182,7 @@ static const struct plugin_api rockbox_api = {
button_get_w_tmo,
button_status,
button_clear_queue,
#ifdef HAS_BUTTON_HOLD
#ifdef HAS_BUTTON_HOLD
button_hold,
#endif
@ -202,7 +202,7 @@ static const struct plugin_api rockbox_api = {
settings_parseline,
#ifndef SIMULATOR
ata_sleep,
ata_disk_is_active,
ata_disk_is_active,
#endif
/* dir */
@ -290,7 +290,7 @@ static const struct plugin_api rockbox_api = {
bitswap,
#endif
#if CONFIG_CODEC == SWCODEC
pcm_play_data,
pcm_play_data,
pcm_play_stop,
pcm_set_frequency,
pcm_is_playing,
@ -357,7 +357,7 @@ static const struct plugin_api rockbox_api = {
battery_level_safe,
battery_time,
#ifndef SIMULATOR
battery_voltage,
battery_voltage,
#endif
#ifdef HAVE_CHARGING
charger_inserted,
@ -434,6 +434,10 @@ static const struct plugin_api rockbox_api = {
gui_synclist_scroll_left,
#endif
gui_synclist_do_button,
#ifdef HAVE_LCD_BITMAP
lcd_setmargins,
#endif
};
int plugin_load(const char* plugin, void* parameter)
@ -553,7 +557,7 @@ int plugin_load(const char* plugin, void* parameter)
#ifdef HAVE_LCD_BITMAP
#if LCD_DEPTH > 1
#ifdef HAVE_LCD_COLOR
lcd_set_drawinfo(DRMODE_SOLID, global_settings.fg_color,
lcd_set_drawinfo(DRMODE_SOLID, global_settings.fg_color,
global_settings.bg_color);
#else
lcd_set_drawinfo(DRMODE_SOLID, LCD_DEFAULT_FG, LCD_DEFAULT_BG);
@ -607,7 +611,7 @@ void* plugin_get_buffer(int* buffer_size)
{
if (plugin_size >= PLUGIN_BUFFER_SIZE)
return NULL;
*buffer_size = PLUGIN_BUFFER_SIZE-plugin_size;
buffer_pos = plugin_size;
}
@ -620,7 +624,7 @@ void* plugin_get_buffer(int* buffer_size)
return &pluginbuf[buffer_pos];
}
/* Returns a pointer to the mp3 buffer.
/* Returns a pointer to the mp3 buffer.
Playback gets stopped, to avoid conflicts. */
void* plugin_get_audio_buffer(int* buffer_size)
{
@ -631,7 +635,7 @@ void* plugin_get_audio_buffer(int* buffer_size)
}
/* The plugin wants to stay resident after leaving its main function, e.g.
runs from timer or own thread. The callback is registered to later
runs from timer or own thread. The callback is registered to later
instruct it to free its resources before a new plugin gets loaded. */
void plugin_tsr(void (*exit_callback)(void))
{

View file

@ -106,7 +106,7 @@
#define PLUGIN_API_VERSION 18
/* update this to latest version if a change to the api struct breaks
backwards compatibility (and please take the opportunity to sort in any
backwards compatibility (and please take the opportunity to sort in any
new function which are "waiting" at the end of the function table) */
#define PLUGIN_MIN_API_VERSION 14
@ -233,7 +233,7 @@ struct plugin_api {
long (*button_get_w_tmo)(int ticks);
int (*button_status)(void);
void (*button_clear_queue)(void);
#ifdef HAS_BUTTON_HOLD
#ifdef HAS_BUTTON_HOLD
bool (*button_hold)(void);
#endif
@ -255,7 +255,7 @@ struct plugin_api {
void (*ata_sleep)(void);
bool (*ata_disk_is_active)(void);
#endif
/* dir */
DIR* (*PREFIX(opendir))(const char* name);
int (*PREFIX(closedir))(DIR* dir);
@ -376,7 +376,7 @@ struct plugin_api {
#endif
#if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) || \
(CONFIG_CODEC == SWCODEC)
void (*sound_set_pitch)(int pitch);
void (*sound_set_pitch)(int pitch);
#endif
/* MAS communication */
@ -408,8 +408,8 @@ struct plugin_api {
void (*menu_insert)(int menu, int position, char *desc, bool (*function) (void));
void (*menu_set_cursor)(int menu, int position);
bool (*set_option)(const char* string, void* variable,
enum optiontype type, const struct opt_items* options,
bool (*set_option)(const char* string, void* variable,
enum optiontype type, const struct opt_items* options,
int numoptions, void (*function)(int));
@ -473,7 +473,7 @@ struct plugin_api {
struct tree_context* (*tree_get_context)(void);
/* new stuff at the end, sort into place next time
the API gets incompatible */
the API gets incompatible */
bool (*set_sound)(const unsigned char * string,
int* variable, int setting);
#if ((CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F)) && !defined(SIMULATOR)
@ -510,6 +510,10 @@ struct plugin_api {
void (*gui_synclist_scroll_left)(struct gui_synclist * lists);
#endif
unsigned (*gui_synclist_do_button)(struct gui_synclist * lists, unsigned button);
#ifdef HAVE_LCD_BITMAP
void (*lcd_setmargins)(int x, int y);
#endif
};
/* plugin header */

File diff suppressed because it is too large Load diff