summaryrefslogtreecommitdiff
path: root/apps/plugin.h
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2007-10-16 01:25:17 +0000
committerMichael Sevakis <jethead71@rockbox.org>2007-10-16 01:25:17 +0000
commita9b2fb5ee3114fe835f6515b6aeae7454f66d821 (patch)
treefc4e96d0c1f215565918406c8827b16b806c1345 /apps/plugin.h
parenta3fbbc9fa7e12fd3fce122bbd235dc362050e024 (diff)
Finally full multicore support for PortalPlayer 502x targets with an eye towards the possibility of other types. All SVN targets the low-lag code to speed up blocking operations. Most files are modified here simple due to a name change to actually support a real event object and a param change to create_thread. Add some use of new features but just sit on things for a bit and leave full integration for later. Work will continue on to address size on sensitive targets and simplify things if possible. Any PP target having problems with SWP can easily be changed to sw corelocks with one #define change in config.h though only PP5020 has shown an issue and seems to work without any difficulties.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15134 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugin.h')
-rw-r--r--apps/plugin.h50
1 files changed, 25 insertions, 25 deletions
diff --git a/apps/plugin.h b/apps/plugin.h
index 1a87ab6cb6..e36c99c5fd 100644
--- a/apps/plugin.h
+++ b/apps/plugin.h
@@ -112,12 +112,12 @@
#define PLUGIN_MAGIC 0x526F634B /* RocK */
/* increase this every time the api struct changes */
-#define PLUGIN_API_VERSION 82
+#define PLUGIN_API_VERSION 83
/* update this to latest version if a change to the api struct breaks
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 82
+#define PLUGIN_MIN_API_VERSION 83
/* plugin return codes */
enum plugin_status {
@@ -219,6 +219,7 @@ struct plugin_api {
/* remote lcd */
void (*lcd_remote_set_contrast)(int x);
void (*lcd_remote_clear_display)(void);
+ void (*lcd_remote_setmargins)(int x, int y);
void (*lcd_remote_puts)(int x, int y, const unsigned char *string);
void (*lcd_remote_lcd_puts_scroll)(int x, int y, const unsigned char* string);
void (*lcd_remote_lcd_stop_scroll)(void);
@@ -265,6 +266,10 @@ struct plugin_api {
int x, int y, int width, int height);
#endif
+#if defined(TOSHIBA_GIGABEAT_F) || defined(SANSA_E200)
+ void (*lcd_yuv_set_options)(unsigned options);
+#endif
+
/* list */
void (*gui_synclist_init)(struct gui_synclist * lists,
list_get_name callback_get_item_name,void * data,
@@ -288,6 +293,7 @@ struct plugin_api {
long (*button_get_w_tmo)(int ticks);
int (*button_status)(void);
void (*button_clear_queue)(void);
+ int (*button_queue_count)(void);
#ifdef HAS_BUTTON_HOLD
bool (*button_hold)(void);
#endif
@@ -334,9 +340,10 @@ struct plugin_api {
long (*default_event_handler_ex)(long event, void (*callback)(void *), void *parameter);
struct thread_entry* threads;
struct thread_entry* (*create_thread)(void (*function)(void), void* stack,
- int stack_size, const char *name
+ int stack_size, unsigned flags,
+ const char *name
IF_PRIO(, int priority)
- IF_COP(, unsigned int core, bool fallback));
+ IF_COP(, unsigned int core));
void (*remove_thread)(struct thread_entry *thread);
void (*reset_poweroff_timer)(void);
#ifndef SIMULATOR
@@ -359,7 +366,7 @@ struct plugin_api {
void (*queue_init)(struct event_queue *q, bool register_queue);
void (*queue_delete)(struct event_queue *q);
void (*queue_post)(struct event_queue *q, long id, intptr_t data);
- void (*queue_wait_w_tmo)(struct event_queue *q, struct event *ev,
+ void (*queue_wait_w_tmo)(struct event_queue *q, struct queue_event *ev,
int ticks);
void (*usb_acknowledge)(long id);
#ifdef RB_PROFILE
@@ -572,6 +579,13 @@ struct plugin_api {
#endif
struct user_settings* global_settings;
struct system_status *global_status;
+ void (*talk_disable_menus)(void);
+ void (*talk_enable_menus)(void);
+#if CONFIG_CODEC == SWCODEC
+ int (*codec_load_file)(const char* codec, struct codec_api *api);
+ const char *(*get_codec_filename)(int cod_spec);
+ bool (*get_metadata)(struct mp3entry* id3, int fd, const char* trackname);
+#endif
bool (*mp3info)(struct mp3entry *entry, const char *filename);
int (*count_mp3_frames)(int fd, int startpos, int filesize,
void (*progressfunc)(int));
@@ -609,35 +623,21 @@ struct plugin_api {
bool (*detect_flashed_ramimage)(void);
bool (*detect_flashed_romimage)(void);
#endif
- /* new stuff at the end, sort into place next time
- the API gets incompatible */
-
-#if (CONFIG_CODEC == SWCODEC)
- void (*spinlock_init)(struct mutex *m);
- void (*spinlock_lock)(struct mutex *m);
- void (*spinlock_unlock)(struct mutex *m);
- int (*codec_load_file)(const char* codec, struct codec_api *api);
- const char *(*get_codec_filename)(int cod_spec);
- bool (*get_metadata)(struct mp3entry* id3, int fd, const char* trackname);
-#endif
void (*led)(bool on);
-#if defined(TOSHIBA_GIGABEAT_F) || defined(SANSA_E200)
- void (*lcd_yuv_set_options)(unsigned options);
-#endif
-
#ifdef CACHE_FUNCTIONS_AS_CALL
void (*flush_icache)(void);
void (*invalidate_icache)(void);
#endif
- void (*talk_disable_menus)(void);
- void (*talk_enable_menus)(void);
+ /* new stuff at the end, sort into place next time
+ the API gets incompatible */
- int (*button_queue_count)(void);
-#ifdef HAVE_REMOTE_LCD
- void (*lcd_remote_setmargins)(int x, int y);
+#if (CONFIG_CODEC == SWCODEC)
+ void (*spinlock_init)(struct spinlock *l IF_COP(, unsigned int flags));
+ void (*spinlock_lock)(struct spinlock *l);
+ void (*spinlock_unlock)(struct spinlock *l);
#endif
};