Plugin API
Reorganize Plugin functions in prep for API bump Stub in sound_current add sleep_timer Change-Id: I74b3a433c86bd6cec43a7c45ae0d2db95c97bb60
This commit is contained in:
parent
55eb1c54eb
commit
6392e05476
2 changed files with 239 additions and 200 deletions
210
apps/plugin.c
210
apps/plugin.c
|
@ -84,7 +84,7 @@ char *plugin_get_current_filename(void);
|
|||
static void* plugin_get_audio_buffer(size_t *buffer_size);
|
||||
static void plugin_release_audio_buffer(void);
|
||||
static void plugin_tsr(bool (*exit_callback)(bool));
|
||||
|
||||
int sound_current(int setting); /*stub*/
|
||||
|
||||
#ifdef HAVE_PLUGIN_CHECK_OPEN_CLOSE
|
||||
/* File handle leak prophylaxis */
|
||||
|
@ -182,6 +182,8 @@ static const struct plugin_api rockbox_api = {
|
|||
language_strings,
|
||||
|
||||
/* lcd */
|
||||
splash,
|
||||
splashf,
|
||||
#ifdef HAVE_LCD_CONTRAST
|
||||
lcd_set_contrast,
|
||||
#endif
|
||||
|
@ -203,7 +205,7 @@ static const struct plugin_api rockbox_api = {
|
|||
lcd_remove_cursor,
|
||||
lcd_icon,
|
||||
lcd_double_height,
|
||||
#else
|
||||
#else /* HAVE_LCD_BITMAP */
|
||||
&lcd_static_framebuffer[0][0],
|
||||
lcd_set_viewport,
|
||||
lcd_set_framebuffer,
|
||||
|
@ -274,20 +276,6 @@ static const struct plugin_api rockbox_api = {
|
|||
gui_scrollbar_draw,
|
||||
#endif /* HAVE_LCD_BITMAP */
|
||||
|
||||
backlight_on,
|
||||
backlight_off,
|
||||
backlight_set_timeout,
|
||||
#ifdef HAVE_BACKLIGHT_BRIGHTNESS
|
||||
backlight_set_brightness,
|
||||
#endif /* HAVE_BACKLIGHT_BRIGHTNESS */
|
||||
|
||||
#if CONFIG_CHARGING
|
||||
backlight_set_timeout_plugged,
|
||||
#endif
|
||||
is_backlight_on,
|
||||
splash,
|
||||
splashf,
|
||||
|
||||
#ifdef HAVE_REMOTE_LCD
|
||||
/* remote lcd */
|
||||
lcd_remote_set_contrast,
|
||||
|
@ -311,20 +299,7 @@ static const struct plugin_api rockbox_api = {
|
|||
&lcd_remote_static_framebuffer[0][0],
|
||||
lcd_remote_update,
|
||||
lcd_remote_update_rect,
|
||||
|
||||
remote_backlight_on,
|
||||
remote_backlight_off,
|
||||
remote_backlight_set_timeout,
|
||||
#if CONFIG_CHARGING
|
||||
remote_backlight_set_timeout_plugged,
|
||||
#endif
|
||||
#endif /* HAVE_REMOTE_LCD */
|
||||
#if NB_SCREENS == 2
|
||||
{&screens[SCREEN_MAIN], &screens[SCREEN_REMOTE]},
|
||||
#else
|
||||
{&screens[SCREEN_MAIN]},
|
||||
#endif
|
||||
#if defined(HAVE_REMOTE_LCD) && (LCD_REMOTE_DEPTH > 1)
|
||||
#if (LCD_REMOTE_DEPTH > 1)
|
||||
lcd_remote_set_foreground,
|
||||
lcd_remote_get_foreground,
|
||||
lcd_remote_set_background,
|
||||
|
@ -332,6 +307,13 @@ static const struct plugin_api rockbox_api = {
|
|||
lcd_remote_bitmap_part,
|
||||
lcd_remote_bitmap,
|
||||
#endif
|
||||
#endif /* HAVE_REMOTE_LCD */
|
||||
#if NB_SCREENS == 2
|
||||
{&screens[SCREEN_MAIN], &screens[SCREEN_REMOTE]},
|
||||
#else
|
||||
{&screens[SCREEN_MAIN]},
|
||||
#endif
|
||||
|
||||
viewport_set_defaults,
|
||||
#ifdef HAVE_LCD_BITMAP
|
||||
viewportmanager_theme_enable,
|
||||
|
@ -339,6 +321,35 @@ static const struct plugin_api rockbox_api = {
|
|||
viewport_set_fullscreen,
|
||||
#endif
|
||||
|
||||
/* lcd backlight */
|
||||
/* The backlight_* functions must be present in the API regardless whether
|
||||
* HAVE_BACKLIGHT is defined or not. The reason is that the stock Ondio has
|
||||
* no backlight but can be modded to have backlight (it's prepared on the
|
||||
* PCB). This makes backlight an all-target feature API wise, and keeps API
|
||||
* compatible between stock and modded Ondio.
|
||||
* For OLED targets like the Sansa Clip, the backlight_* functions control
|
||||
* the display enable, which has essentially the same effect. */
|
||||
is_backlight_on,
|
||||
backlight_on,
|
||||
backlight_off,
|
||||
backlight_set_timeout,
|
||||
#ifdef HAVE_BACKLIGHT_BRIGHTNESS
|
||||
backlight_set_brightness,
|
||||
#endif /* HAVE_BACKLIGHT_BRIGHTNESS */
|
||||
|
||||
#if CONFIG_CHARGING
|
||||
backlight_set_timeout_plugged,
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_REMOTE_LCD
|
||||
remote_backlight_on,
|
||||
remote_backlight_off,
|
||||
remote_backlight_set_timeout,
|
||||
#if CONFIG_CHARGING
|
||||
remote_backlight_set_timeout_plugged,
|
||||
#endif
|
||||
#endif /* HAVE_REMOTE_LCD */
|
||||
|
||||
/* list */
|
||||
gui_synclist_init,
|
||||
gui_synclist_set_nb_items,
|
||||
|
@ -358,6 +369,14 @@ static const struct plugin_api rockbox_api = {
|
|||
simplelist_info_init,
|
||||
simplelist_show_list,
|
||||
|
||||
/* action handling */
|
||||
get_custom_action,
|
||||
get_action,
|
||||
#ifdef HAVE_TOUCHSCREEN
|
||||
action_get_touchscreen_press,
|
||||
#endif
|
||||
action_userabort,
|
||||
|
||||
/* button */
|
||||
button_get,
|
||||
button_get_w_tmo,
|
||||
|
@ -426,6 +445,11 @@ static const struct plugin_api rockbox_api = {
|
|||
/* browsing */
|
||||
browse_context_init,
|
||||
rockbox_browse,
|
||||
tree_get_context,
|
||||
tree_get_entries,
|
||||
tree_get_entry_at,
|
||||
set_current_file,
|
||||
set_dirfilter,
|
||||
|
||||
/* talking */
|
||||
talk_id,
|
||||
|
@ -464,8 +488,14 @@ static const struct plugin_api rockbox_api = {
|
|||
mutex_lock,
|
||||
mutex_unlock,
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_SEMAPHORE_OBJECTS
|
||||
semaphore_init,
|
||||
semaphore_wait,
|
||||
semaphore_release,
|
||||
#endif
|
||||
reset_poweroff_timer,
|
||||
set_sleeptimer_duration, /*stub*/
|
||||
get_sleep_timer, /*stub*/
|
||||
#if (CONFIG_PLATFORM & PLATFORM_NATIVE)
|
||||
system_memory_guard,
|
||||
&cpu_frequency,
|
||||
|
@ -507,10 +537,7 @@ static const struct plugin_api rockbox_api = {
|
|||
queue_send,
|
||||
queue_reply,
|
||||
#endif
|
||||
usb_acknowledge,
|
||||
#ifdef USB_ENABLE_HID
|
||||
usb_hid_send,
|
||||
#endif
|
||||
|
||||
#ifdef RB_PROFILE
|
||||
profile_thread,
|
||||
profstop,
|
||||
|
@ -578,6 +605,7 @@ static const struct plugin_api rockbox_api = {
|
|||
|
||||
/* sound */
|
||||
sound_set,
|
||||
sound_current, /*stub*/
|
||||
sound_default,
|
||||
sound_min,
|
||||
sound_max,
|
||||
|
@ -586,6 +614,10 @@ static const struct plugin_api rockbox_api = {
|
|||
#ifdef AUDIOHW_HAVE_EQ
|
||||
sound_enum_hw_eq_band_setting,
|
||||
#endif
|
||||
#if ((CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) || \
|
||||
(CONFIG_CODEC == SWCODEC)) && defined (HAVE_PITCHCONTROL)
|
||||
sound_set_pitch,
|
||||
#endif
|
||||
#if (CONFIG_PLATFORM & PLATFORM_NATIVE)
|
||||
mp3_play_data,
|
||||
mp3_play_pause,
|
||||
|
@ -650,6 +682,37 @@ static const struct plugin_api rockbox_api = {
|
|||
system_sound_play,
|
||||
keyclick_click,
|
||||
#endif /* CONFIG_CODEC == SWCODEC */
|
||||
|
||||
#if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F)
|
||||
peak_meter_scale_value,
|
||||
peak_meter_set_use_dbfs,
|
||||
peak_meter_get_use_dbfs,
|
||||
#endif
|
||||
|
||||
|
||||
/* metadata */
|
||||
get_metadata,
|
||||
mp3info,
|
||||
count_mp3_frames,
|
||||
create_xing_header,
|
||||
find_next_frame,
|
||||
#ifdef HAVE_TAGCACHE
|
||||
tagcache_search,
|
||||
tagcache_search_set_uniqbuf,
|
||||
tagcache_search_add_filter,
|
||||
tagcache_get_next,
|
||||
tagcache_retrieve,
|
||||
tagcache_search_finish,
|
||||
tagcache_get_numeric,
|
||||
#if defined(HAVE_TC_RAMCACHE) && defined(HAVE_DIRCACHE)
|
||||
tagcache_fill_tags,
|
||||
#endif
|
||||
#endif /* HAVE_TAGCACHE */
|
||||
|
||||
#ifdef HAVE_ALBUMART
|
||||
search_albumart_files,
|
||||
#endif
|
||||
|
||||
/* playback control */
|
||||
playlist_amount,
|
||||
playlist_resume,
|
||||
|
@ -677,10 +740,6 @@ static const struct plugin_api rockbox_api = {
|
|||
#if !defined(SIMULATOR) && (CONFIG_CODEC != SWCODEC)
|
||||
mpeg_get_last_header,
|
||||
#endif
|
||||
#if ((CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) || \
|
||||
(CONFIG_CODEC == SWCODEC)) && defined (HAVE_PITCHCONTROL)
|
||||
sound_set_pitch,
|
||||
#endif
|
||||
|
||||
#if !defined(SIMULATOR) && (CONFIG_CODEC != SWCODEC)
|
||||
/* MAS communication */
|
||||
|
@ -722,14 +781,6 @@ static const struct plugin_api rockbox_api = {
|
|||
set_color,
|
||||
#endif
|
||||
|
||||
/* action handling */
|
||||
get_custom_action,
|
||||
get_action,
|
||||
#ifdef HAVE_TOUCHSCREEN
|
||||
action_get_touchscreen_press,
|
||||
#endif
|
||||
action_userabort,
|
||||
|
||||
/* power */
|
||||
battery_level,
|
||||
battery_level_safe,
|
||||
|
@ -741,8 +792,12 @@ static const struct plugin_api rockbox_api = {
|
|||
charging_state,
|
||||
# endif
|
||||
#endif
|
||||
/* usb */
|
||||
usb_inserted,
|
||||
|
||||
usb_acknowledge,
|
||||
#ifdef USB_ENABLE_HID
|
||||
usb_hid_send,
|
||||
#endif
|
||||
/* misc */
|
||||
#if (CONFIG_PLATFORM & PLATFORM_NATIVE)
|
||||
__errno,
|
||||
|
@ -757,14 +812,7 @@ static const struct plugin_api rockbox_api = {
|
|||
#if CONFIG_RTC
|
||||
mktime,
|
||||
#endif
|
||||
plugin_get_buffer,
|
||||
plugin_get_audio_buffer, /* defined in plugin.c */
|
||||
plugin_release_audio_buffer, /* defined in plugin.c */
|
||||
plugin_tsr, /* defined in plugin.c */
|
||||
plugin_get_current_filename,
|
||||
#ifdef PLUGIN_USE_IRAM
|
||||
audio_hard_stop,
|
||||
#endif
|
||||
|
||||
#if defined(DEBUG) || defined(SIMULATOR)
|
||||
debugf,
|
||||
#endif
|
||||
|
@ -781,16 +829,7 @@ static const struct plugin_api rockbox_api = {
|
|||
remove_array_ptr,
|
||||
round_value_to_list32,
|
||||
#endif /* CONFIG_CODEC == SWCODEC */
|
||||
get_metadata,
|
||||
mp3info,
|
||||
count_mp3_frames,
|
||||
create_xing_header,
|
||||
find_next_frame,
|
||||
#if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F)
|
||||
peak_meter_scale_value,
|
||||
peak_meter_set_use_dbfs,
|
||||
peak_meter_get_use_dbfs,
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_LCD_BITMAP
|
||||
read_bmp_file,
|
||||
read_bmp_fd,
|
||||
|
@ -801,11 +840,6 @@ static const struct plugin_api rockbox_api = {
|
|||
screen_dump_set_hook,
|
||||
#endif
|
||||
show_logo,
|
||||
tree_get_context,
|
||||
tree_get_entries,
|
||||
tree_get_entry_at,
|
||||
set_current_file,
|
||||
set_dirfilter,
|
||||
|
||||
#ifdef HAVE_WHEEL_POSITION
|
||||
wheel_status,
|
||||
|
@ -819,27 +853,15 @@ static const struct plugin_api rockbox_api = {
|
|||
detect_flashed_romimage,
|
||||
#endif
|
||||
led,
|
||||
#ifdef HAVE_TAGCACHE
|
||||
tagcache_search,
|
||||
tagcache_search_set_uniqbuf,
|
||||
tagcache_search_add_filter,
|
||||
tagcache_get_next,
|
||||
tagcache_retrieve,
|
||||
tagcache_search_finish,
|
||||
tagcache_get_numeric,
|
||||
#if defined(HAVE_TC_RAMCACHE) && defined(HAVE_DIRCACHE)
|
||||
tagcache_fill_tags,
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_ALBUMART
|
||||
search_albumart_files,
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_SEMAPHORE_OBJECTS
|
||||
semaphore_init,
|
||||
semaphore_wait,
|
||||
semaphore_release,
|
||||
/*plugin*/
|
||||
plugin_get_buffer,
|
||||
plugin_get_audio_buffer, /* defined in plugin.c */
|
||||
plugin_release_audio_buffer, /* defined in plugin.c */
|
||||
plugin_tsr, /* defined in plugin.c */
|
||||
plugin_get_current_filename,
|
||||
#ifdef PLUGIN_USE_IRAM
|
||||
audio_hard_stop,
|
||||
#endif
|
||||
|
||||
/* new stuff at the end, sort into place next time
|
||||
|
@ -1060,3 +1082,9 @@ char *plugin_get_current_filename(void)
|
|||
{
|
||||
return current_plugin;
|
||||
}
|
||||
|
||||
int sound_current(int setting) /*stub*/
|
||||
{
|
||||
(void) setting;
|
||||
return 0;
|
||||
}
|
||||
|
|
229
apps/plugin.h
229
apps/plugin.h
|
@ -189,13 +189,14 @@ enum plugin_status {
|
|||
version
|
||||
*/
|
||||
struct plugin_api {
|
||||
/* let's put these at the top */
|
||||
const char *rbversion;
|
||||
struct user_settings* global_settings;
|
||||
struct system_status *global_status;
|
||||
unsigned char **language_strings;
|
||||
|
||||
/* lcd */
|
||||
void (*splash)(int ticks, const char *str);
|
||||
void (*splashf)(int ticks, const char *fmt, ...) ATTRIBUTE_PRINTF(2, 3);
|
||||
#ifdef HAVE_LCD_CONTRAST
|
||||
void (*lcd_set_contrast)(int x);
|
||||
#endif
|
||||
|
@ -307,27 +308,6 @@ struct plugin_api {
|
|||
int min_shown, int max_shown,
|
||||
unsigned flags);
|
||||
#endif /* HAVE_LCD_BITMAP */
|
||||
/* backlight */
|
||||
/* The backlight_* functions must be present in the API regardless whether
|
||||
* HAVE_BACKLIGHT is defined or not. The reason is that the stock Ondio has
|
||||
* no backlight but can be modded to have backlight (it's prepared on the
|
||||
* PCB). This makes backlight an all-target feature API wise, and keeps API
|
||||
* compatible between stock and modded Ondio.
|
||||
* For OLED targets like the Sansa Clip, the backlight_* functions control
|
||||
* the display enable, which has essentially the same effect. */
|
||||
void (*backlight_on)(void);
|
||||
void (*backlight_off)(void);
|
||||
void (*backlight_set_timeout)(int index);
|
||||
#ifdef HAVE_BACKLIGHT_BRIGHTNESS
|
||||
void (*backlight_set_brightness)(int val);
|
||||
#endif /* HAVE_BACKLIGHT_BRIGHTNESS */
|
||||
|
||||
#if CONFIG_CHARGING
|
||||
void (*backlight_set_timeout_plugged)(int index);
|
||||
#endif
|
||||
bool (*is_backlight_on)(bool ignore_always_off);
|
||||
void (*splash)(int ticks, const char *str);
|
||||
void (*splashf)(int ticks, const char *fmt, ...) ATTRIBUTE_PRINTF(2, 3);
|
||||
|
||||
#ifdef HAVE_REMOTE_LCD
|
||||
/* remote lcd */
|
||||
|
@ -355,16 +335,7 @@ struct plugin_api {
|
|||
fb_remote_data* lcd_remote_framebuffer;
|
||||
void (*lcd_remote_update)(void);
|
||||
void (*lcd_remote_update_rect)(int x, int y, int width, int height);
|
||||
|
||||
void (*remote_backlight_on)(void);
|
||||
void (*remote_backlight_off)(void);
|
||||
void (*remote_backlight_set_timeout)(int index);
|
||||
#if CONFIG_CHARGING
|
||||
void (*remote_backlight_set_timeout_plugged)(int index);
|
||||
#endif
|
||||
#endif /* HAVE_REMOTE_LCD */
|
||||
struct screen* screens[NB_SCREENS];
|
||||
#if defined(HAVE_REMOTE_LCD) && (LCD_REMOTE_DEPTH > 1)
|
||||
#if (LCD_REMOTE_DEPTH > 1)
|
||||
void (*lcd_remote_set_foreground)(unsigned foreground);
|
||||
unsigned (*lcd_remote_get_foreground)(void);
|
||||
void (*lcd_remote_set_background)(unsigned background);
|
||||
|
@ -375,6 +346,9 @@ struct plugin_api {
|
|||
void (*lcd_remote_bitmap)(const fb_remote_data *src, int x, int y,
|
||||
int width, int height);
|
||||
#endif
|
||||
#endif /* HAVE_REMOTE_LCD */
|
||||
struct screen* screens[NB_SCREENS];
|
||||
|
||||
void (*viewport_set_defaults)(struct viewport *vp,
|
||||
const enum screen_type screen);
|
||||
#ifdef HAVE_LCD_BITMAP
|
||||
|
@ -384,6 +358,36 @@ struct plugin_api {
|
|||
void (*viewport_set_fullscreen)(struct viewport *vp,
|
||||
const enum screen_type screen);
|
||||
#endif
|
||||
|
||||
/* lcd backlight */
|
||||
/* The backlight_* functions must be present in the API regardless whether
|
||||
* HAVE_BACKLIGHT is defined or not. The reason is that the stock Ondio has
|
||||
* no backlight but can be modded to have backlight (it's prepared on the
|
||||
* PCB). This makes backlight an all-target feature API wise, and keeps API
|
||||
* compatible between stock and modded Ondio.
|
||||
* For OLED targets like the Sansa Clip, the backlight_* functions control
|
||||
* the display enable, which has essentially the same effect. */
|
||||
bool (*is_backlight_on)(bool ignore_always_off);
|
||||
void (*backlight_on)(void);
|
||||
void (*backlight_off)(void);
|
||||
void (*backlight_set_timeout)(int index);
|
||||
#ifdef HAVE_BACKLIGHT_BRIGHTNESS
|
||||
void (*backlight_set_brightness)(int val);
|
||||
#endif /* HAVE_BACKLIGHT_BRIGHTNESS */
|
||||
|
||||
#if CONFIG_CHARGING
|
||||
void (*backlight_set_timeout_plugged)(int index);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_REMOTE_LCD
|
||||
void (*remote_backlight_on)(void);
|
||||
void (*remote_backlight_off)(void);
|
||||
void (*remote_backlight_set_timeout)(int index);
|
||||
#if CONFIG_CHARGING
|
||||
void (*remote_backlight_set_timeout_plugged)(int index);
|
||||
#endif
|
||||
#endif /* HAVE_REMOTE_LCD */
|
||||
|
||||
/* list */
|
||||
void (*gui_synclist_init)(struct gui_synclist * lists,
|
||||
list_get_name callback_get_item_name, void * data,
|
||||
|
@ -413,6 +417,15 @@ struct plugin_api {
|
|||
int count, void* data);
|
||||
bool (*simplelist_show_list)(struct simplelist_info *info);
|
||||
|
||||
/* action handling */
|
||||
int (*get_custom_action)(int context,int timeout,
|
||||
const struct button_mapping* (*get_context_map)(int));
|
||||
int (*get_action)(int context, int timeout);
|
||||
#ifdef HAVE_TOUCHSCREEN
|
||||
int (*action_get_touchscreen_press)(short *x, short *y);
|
||||
#endif
|
||||
bool (*action_userabort)(int timeout);
|
||||
|
||||
/* button */
|
||||
long (*button_get)(bool block);
|
||||
long (*button_get_w_tmo)(int ticks);
|
||||
|
@ -486,6 +499,12 @@ struct plugin_api {
|
|||
char *title, enum themable_icons icon,
|
||||
const char *root, const char *selected);
|
||||
int (*rockbox_browse)(struct browse_context *browse);
|
||||
struct tree_context* (*tree_get_context)(void);
|
||||
struct entry* (*tree_get_entries)(struct tree_context* t);
|
||||
struct entry* (*tree_get_entry_at)(struct tree_context* t, int index);
|
||||
|
||||
void (*set_current_file)(const char* path);
|
||||
void (*set_dirfilter)(int l_dirfilter);
|
||||
|
||||
/* talking */
|
||||
int (*talk_id)(int32_t id, bool enqueue);
|
||||
|
@ -532,8 +551,14 @@ struct plugin_api {
|
|||
void (*mutex_lock)(struct mutex *m);
|
||||
void (*mutex_unlock)(struct mutex *m);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_SEMAPHORE_OBJECTS
|
||||
void (*semaphore_init)(struct semaphore *s, int max, int start);
|
||||
int (*semaphore_wait)(struct semaphore *s, int timeout);
|
||||
void (*semaphore_release)(struct semaphore *s);
|
||||
#endif
|
||||
void (*reset_poweroff_timer)(void);
|
||||
void (*set_sleeptimer_duration)(int minutes);
|
||||
int (*get_sleep_timer)(void);
|
||||
#if (CONFIG_PLATFORM & PLATFORM_NATIVE)
|
||||
int (*system_memory_guard)(int newmode);
|
||||
long *cpu_frequency;
|
||||
|
@ -582,10 +607,6 @@ struct plugin_api {
|
|||
void (*queue_reply)(struct event_queue *q, intptr_t retval);
|
||||
#endif /* CONFIG_CODEC == SWCODEC */
|
||||
|
||||
void (*usb_acknowledge)(long id);
|
||||
#ifdef USB_ENABLE_HID
|
||||
void (*usb_hid_send)(usage_page_t usage_page, int id);
|
||||
#endif
|
||||
#ifdef RB_PROFILE
|
||||
void (*profile_thread)(void);
|
||||
void (*profstop)(void);
|
||||
|
@ -658,6 +679,7 @@ struct plugin_api {
|
|||
|
||||
/* sound */
|
||||
void (*sound_set)(int setting, int value);
|
||||
int (*sound_current)(int setting); /*stub*/
|
||||
int (*sound_default)(int setting);
|
||||
int (*sound_min)(int setting);
|
||||
int (*sound_max)(int setting);
|
||||
|
@ -667,6 +689,10 @@ struct plugin_api {
|
|||
int (*sound_enum_hw_eq_band_setting)(unsigned int band,
|
||||
unsigned int band_setting);
|
||||
#endif /* AUDIOHW_HAVE_EQ */
|
||||
#if ((CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) || \
|
||||
(CONFIG_CODEC == SWCODEC)) && defined (HAVE_PITCHCONTROL)
|
||||
void (*sound_set_pitch)(int32_t pitch);
|
||||
#endif
|
||||
#if (CONFIG_PLATFORM & PLATFORM_NATIVE)
|
||||
void (*mp3_play_data)(const void* start, size_t size,
|
||||
mp3_play_callback_t get_more);
|
||||
|
@ -743,7 +769,48 @@ struct plugin_api {
|
|||
void (*pcmbuf_fade)(bool fade, bool in);
|
||||
void (*system_sound_play)(enum system_sound sound);
|
||||
void (*keyclick_click)(bool rawbutton, int action);
|
||||
#endif /* CONFIG_CODEC == SWCODC */
|
||||
#endif /* CONFIG_CODEC == SWCODEC */
|
||||
|
||||
#if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F)
|
||||
unsigned short (*peak_meter_scale_value)(unsigned short val,
|
||||
int meterwidth);
|
||||
void (*peak_meter_set_use_dbfs)(bool use);
|
||||
bool (*peak_meter_get_use_dbfs)(void);
|
||||
#endif
|
||||
|
||||
/* metadata */
|
||||
bool (*get_metadata)(struct mp3entry* id3, int fd, const char* trackname);
|
||||
bool (*mp3info)(struct mp3entry *entry, const char *filename);
|
||||
int (*count_mp3_frames)(int fd, int startpos, int filesize,
|
||||
void (*progressfunc)(int),
|
||||
unsigned char* buf, size_t buflen);
|
||||
int (*create_xing_header)(int fd, long startpos, long filesize,
|
||||
unsigned char *buf, unsigned long num_frames,
|
||||
unsigned long rec_time, unsigned long header_template,
|
||||
void (*progressfunc)(int), bool generate_toc,
|
||||
unsigned char* tempbuf, size_t tempbuf_len);
|
||||
unsigned long (*find_next_frame)(int fd, long *offset,
|
||||
long max_offset, unsigned long reference_header);
|
||||
#ifdef HAVE_TAGCACHE
|
||||
bool (*tagcache_search)(struct tagcache_search *tcs, int tag);
|
||||
void (*tagcache_search_set_uniqbuf)(struct tagcache_search *tcs,
|
||||
void *buffer, long length);
|
||||
bool (*tagcache_search_add_filter)(struct tagcache_search *tcs,
|
||||
int tag, int seek);
|
||||
bool (*tagcache_get_next)(struct tagcache_search *tcs);
|
||||
bool (*tagcache_retrieve)(struct tagcache_search *tcs, int idxid,
|
||||
int tag, char *buf, long size);
|
||||
void (*tagcache_search_finish)(struct tagcache_search *tcs);
|
||||
long (*tagcache_get_numeric)(const struct tagcache_search *tcs, int tag);
|
||||
#if defined(HAVE_TC_RAMCACHE) && defined(HAVE_DIRCACHE)
|
||||
bool (*tagcache_fill_tags)(struct mp3entry *id3, const char *filename);
|
||||
#endif
|
||||
#endif /* HAVE_TAGCACHE */
|
||||
|
||||
#ifdef HAVE_ALBUMART
|
||||
bool (*search_albumart_files)(const struct mp3entry *id3, const char *size_string,
|
||||
char *buf, int buflen);
|
||||
#endif
|
||||
|
||||
/* playback control */
|
||||
int (*playlist_amount)(void);
|
||||
|
@ -777,10 +844,6 @@ struct plugin_api {
|
|||
#if !defined(SIMULATOR) && (CONFIG_CODEC != SWCODEC)
|
||||
unsigned long (*mpeg_get_last_header)(void);
|
||||
#endif
|
||||
#if ((CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) || \
|
||||
(CONFIG_CODEC == SWCODEC)) && defined (HAVE_PITCHCONTROL)
|
||||
void (*sound_set_pitch)(int32_t pitch);
|
||||
#endif
|
||||
|
||||
/* MAS communication */
|
||||
#if !defined(SIMULATOR) && (CONFIG_CODEC != SWCODEC)
|
||||
|
@ -795,7 +858,7 @@ struct plugin_api {
|
|||
void (*i2c_end)(void);
|
||||
int (*i2c_write)(int address, const unsigned char* buf, int count );
|
||||
#endif
|
||||
#endif
|
||||
#endif /* !SIMULATOR && CONFIG_CODEC != SWCODEC */
|
||||
|
||||
/* menu */
|
||||
struct menu_table *(*root_menu_get_options)(int *nb_options);
|
||||
|
@ -805,7 +868,7 @@ struct plugin_api {
|
|||
char* (*root_menu_write_to_cfg)(void* setting, char*buf, int buf_len);
|
||||
void (*root_menu_load_from_cfg)(void* setting, char *value);
|
||||
|
||||
/* scroll bar */
|
||||
/* statusbars */
|
||||
struct gui_syncstatusbar *statusbars;
|
||||
void (*gui_syncstatusbar_draw)(struct gui_syncstatusbar * bars, bool force_redraw);
|
||||
|
||||
|
@ -838,14 +901,6 @@ struct plugin_api {
|
|||
bool (*set_color)(struct screen *display, char *title,
|
||||
unsigned *color, unsigned banned_color);
|
||||
#endif
|
||||
/* action handling */
|
||||
int (*get_custom_action)(int context,int timeout,
|
||||
const struct button_mapping* (*get_context_map)(int));
|
||||
int (*get_action)(int context, int timeout);
|
||||
#ifdef HAVE_TOUCHSCREEN
|
||||
int (*action_get_touchscreen_press)(short *x, short *y);
|
||||
#endif
|
||||
bool (*action_userabort)(int timeout);
|
||||
|
||||
/* power */
|
||||
int (*battery_level)(void);
|
||||
|
@ -860,7 +915,10 @@ struct plugin_api {
|
|||
#endif
|
||||
/* usb */
|
||||
bool (*usb_inserted)(void);
|
||||
|
||||
void (*usb_acknowledge)(long id);
|
||||
#ifdef USB_ENABLE_HID
|
||||
void (*usb_hid_send)(usage_page_t usage_page, int id);
|
||||
#endif
|
||||
/* misc */
|
||||
#if (CONFIG_PLATFORM & PLATFORM_NATIVE)
|
||||
int * (*__errno)(void);
|
||||
|
@ -876,14 +934,7 @@ struct plugin_api {
|
|||
#if CONFIG_RTC
|
||||
time_t (*mktime)(struct tm *t);
|
||||
#endif
|
||||
void* (*plugin_get_buffer)(size_t *buffer_size);
|
||||
void* (*plugin_get_audio_buffer)(size_t *buffer_size);
|
||||
void (*plugin_release_audio_buffer)(void);
|
||||
void (*plugin_tsr)(bool (*exit_callback)(bool reenter));
|
||||
char* (*plugin_get_current_filename)(void);
|
||||
#ifdef PLUGIN_USE_IRAM
|
||||
void (*audio_hard_stop)(void);
|
||||
#endif
|
||||
|
||||
#if defined(DEBUG) || defined(SIMULATOR)
|
||||
void (*debugf)(const char *fmt, ...) ATTRIBUTE_PRINTF(1, 2);
|
||||
#endif
|
||||
|
@ -904,25 +955,7 @@ struct plugin_api {
|
|||
int count,
|
||||
bool signd);
|
||||
#endif /* CONFIG_CODEC == SWCODEC */
|
||||
bool (*get_metadata)(struct mp3entry* id3, int fd, const char* trackname);
|
||||
bool (*mp3info)(struct mp3entry *entry, const char *filename);
|
||||
int (*count_mp3_frames)(int fd, int startpos, int filesize,
|
||||
void (*progressfunc)(int),
|
||||
unsigned char* buf, size_t buflen);
|
||||
int (*create_xing_header)(int fd, long startpos, long filesize,
|
||||
unsigned char *buf, unsigned long num_frames,
|
||||
unsigned long rec_time, unsigned long header_template,
|
||||
void (*progressfunc)(int), bool generate_toc,
|
||||
unsigned char* tempbuf, size_t tempbuf_len);
|
||||
unsigned long (*find_next_frame)(int fd, long *offset,
|
||||
long max_offset, unsigned long reference_header);
|
||||
|
||||
#if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F)
|
||||
unsigned short (*peak_meter_scale_value)(unsigned short val,
|
||||
int meterwidth);
|
||||
void (*peak_meter_set_use_dbfs)(bool use);
|
||||
bool (*peak_meter_get_use_dbfs)(void);
|
||||
#endif
|
||||
#ifdef HAVE_LCD_BITMAP
|
||||
int (*read_bmp_file)(const char* filename, struct bitmap *bm, int maxsize,
|
||||
int format, const struct custom_format *cformat);
|
||||
|
@ -937,12 +970,6 @@ struct plugin_api {
|
|||
void (*screen_dump_set_hook)(void (*hook)(int fh));
|
||||
#endif
|
||||
int (*show_logo)(void);
|
||||
struct tree_context* (*tree_get_context)(void);
|
||||
struct entry* (*tree_get_entries)(struct tree_context* t);
|
||||
struct entry* (*tree_get_entry_at)(struct tree_context* t, int index);
|
||||
|
||||
void (*set_current_file)(const char* path);
|
||||
void (*set_dirfilter)(int l_dirfilter);
|
||||
|
||||
#ifdef HAVE_WHEEL_POSITION
|
||||
int (*wheel_status)(void);
|
||||
|
@ -958,32 +985,16 @@ struct plugin_api {
|
|||
|
||||
void (*led)(bool on);
|
||||
|
||||
#ifdef HAVE_TAGCACHE
|
||||
bool (*tagcache_search)(struct tagcache_search *tcs, int tag);
|
||||
void (*tagcache_search_set_uniqbuf)(struct tagcache_search *tcs,
|
||||
void *buffer, long length);
|
||||
bool (*tagcache_search_add_filter)(struct tagcache_search *tcs,
|
||||
int tag, int seek);
|
||||
bool (*tagcache_get_next)(struct tagcache_search *tcs);
|
||||
bool (*tagcache_retrieve)(struct tagcache_search *tcs, int idxid,
|
||||
int tag, char *buf, long size);
|
||||
void (*tagcache_search_finish)(struct tagcache_search *tcs);
|
||||
long (*tagcache_get_numeric)(const struct tagcache_search *tcs, int tag);
|
||||
#if defined(HAVE_TC_RAMCACHE) && defined(HAVE_DIRCACHE)
|
||||
bool (*tagcache_fill_tags)(struct mp3entry *id3, const char *filename);
|
||||
#endif
|
||||
/*plugin*/
|
||||
void* (*plugin_get_buffer)(size_t *buffer_size);
|
||||
void* (*plugin_get_audio_buffer)(size_t *buffer_size);
|
||||
void (*plugin_release_audio_buffer)(void);
|
||||
void (*plugin_tsr)(bool (*exit_callback)(bool reenter));
|
||||
char* (*plugin_get_current_filename)(void);
|
||||
#ifdef PLUGIN_USE_IRAM
|
||||
void (*audio_hard_stop)(void);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_ALBUMART
|
||||
bool (*search_albumart_files)(const struct mp3entry *id3, const char *size_string,
|
||||
char *buf, int buflen);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_SEMAPHORE_OBJECTS
|
||||
void (*semaphore_init)(struct semaphore *s, int max, int start);
|
||||
int (*semaphore_wait)(struct semaphore *s, int timeout);
|
||||
void (*semaphore_release)(struct semaphore *s);
|
||||
#endif
|
||||
|
||||
/* new stuff at the end, sort into place next time
|
||||
the API gets incompatible */
|
||||
|
|
Loading…
Reference in a new issue