forked from len0rd/rockbox
New plugin loader. Solves the crashes introduced with the .bss changes while keeping the small binary size. The model & api version check is now part of the plugin loader. Codecs are not yet adapted, but the old method still works for them. Simulator plugins are not (yet) version-checked. API version numbering restarted, as this is an all-new system. Uses the target ID from configure, so don't change that too often.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8349 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
c7c9069ed4
commit
a36b1d4083
70 changed files with 270 additions and 310 deletions
|
@ -34,7 +34,7 @@ ifdef APPEXTRA
|
||||||
INCLUDES += $(patsubst %,-I%,$(subst :, ,$(APPEXTRA)))
|
INCLUDES += $(patsubst %,-I%,$(subst :, ,$(APPEXTRA)))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
CFLAGS = $(GCCOPTS) $(INCLUDES) $(TARGET) $(DEFINES) \
|
CFLAGS = $(GCCOPTS) $(INCLUDES) $(TARGET) $(DEFINES) -DTARGET_ID=$(TARGET_ID) \
|
||||||
-DAPPSVERSION=\"$(VERSION)\" $(EXTRA_DEFINES) -DMEM=${MEMORYSIZE}
|
-DAPPSVERSION=\"$(VERSION)\" $(EXTRA_DEFINES) -DMEM=${MEMORYSIZE}
|
||||||
|
|
||||||
OBJS := $(OBJDIR)/lang.o $(SRC:%.c=$(OBJDIR)/%.o)
|
OBJS := $(OBJDIR)/lang.o $(SRC:%.c=$(OBJDIR)/%.o)
|
||||||
|
|
137
apps/plugin.c
137
apps/plugin.c
|
@ -78,12 +78,7 @@ static bool plugin_loaded = false;
|
||||||
static int plugin_size = 0;
|
static int plugin_size = 0;
|
||||||
static void (*pfn_tsr_exit)(void) = NULL; /* TSR exit callback */
|
static void (*pfn_tsr_exit)(void) = NULL; /* TSR exit callback */
|
||||||
|
|
||||||
static int plugin_test(int api_version, int model, int memsize);
|
|
||||||
|
|
||||||
static const struct plugin_api rockbox_api = {
|
static const struct plugin_api rockbox_api = {
|
||||||
PLUGIN_API_VERSION,
|
|
||||||
|
|
||||||
plugin_test,
|
|
||||||
|
|
||||||
/* lcd */
|
/* lcd */
|
||||||
lcd_set_contrast,
|
lcd_set_contrast,
|
||||||
|
@ -135,6 +130,7 @@ static const struct plugin_api rockbox_api = {
|
||||||
checkbox,
|
checkbox,
|
||||||
font_get,
|
font_get,
|
||||||
font_getstringsize,
|
font_getstringsize,
|
||||||
|
font_get_width,
|
||||||
#endif
|
#endif
|
||||||
backlight_on,
|
backlight_on,
|
||||||
backlight_off,
|
backlight_off,
|
||||||
|
@ -243,9 +239,18 @@ static const struct plugin_api rockbox_api = {
|
||||||
strcat,
|
strcat,
|
||||||
memcmp,
|
memcmp,
|
||||||
strcasestr,
|
strcasestr,
|
||||||
|
/* unicode stuff */
|
||||||
|
utf8decode,
|
||||||
|
iso_decode,
|
||||||
|
utf16LEdecode,
|
||||||
|
utf16BEdecode,
|
||||||
|
utf8encode,
|
||||||
|
utf8length,
|
||||||
|
|
||||||
/* sound */
|
/* sound */
|
||||||
sound_set,
|
sound_set,
|
||||||
|
sound_min,
|
||||||
|
sound_max,
|
||||||
#ifndef SIMULATOR
|
#ifndef SIMULATOR
|
||||||
mp3_play_data,
|
mp3_play_data,
|
||||||
mp3_play_pause,
|
mp3_play_pause,
|
||||||
|
@ -307,6 +312,21 @@ static const struct plugin_api rockbox_api = {
|
||||||
&rundb_fd,
|
&rundb_fd,
|
||||||
&rundb_initialized,
|
&rundb_initialized,
|
||||||
|
|
||||||
|
/* menu */
|
||||||
|
menu_init,
|
||||||
|
menu_exit,
|
||||||
|
menu_show,
|
||||||
|
menu_run,
|
||||||
|
menu_cursor,
|
||||||
|
menu_description,
|
||||||
|
menu_delete,
|
||||||
|
menu_count,
|
||||||
|
menu_moveup,
|
||||||
|
menu_movedown,
|
||||||
|
menu_draw,
|
||||||
|
menu_insert,
|
||||||
|
menu_set_cursor,
|
||||||
|
|
||||||
/* misc */
|
/* misc */
|
||||||
srand,
|
srand,
|
||||||
rand,
|
rand,
|
||||||
|
@ -337,39 +357,13 @@ static const struct plugin_api rockbox_api = {
|
||||||
#endif
|
#endif
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
read_bmp_file,
|
read_bmp_file,
|
||||||
|
screen_dump_set_hook,
|
||||||
#endif
|
#endif
|
||||||
show_logo,
|
show_logo,
|
||||||
|
|
||||||
/* new stuff at the end, sort into place next time
|
/* new stuff at the end, sort into place next time
|
||||||
the API gets incompatible */
|
the API gets incompatible */
|
||||||
|
|
||||||
menu_init,
|
|
||||||
menu_exit,
|
|
||||||
menu_show,
|
|
||||||
menu_run,
|
|
||||||
menu_cursor,
|
|
||||||
menu_description,
|
|
||||||
menu_delete,
|
|
||||||
menu_count,
|
|
||||||
menu_moveup,
|
|
||||||
menu_movedown,
|
|
||||||
menu_draw,
|
|
||||||
menu_insert,
|
|
||||||
menu_set_cursor,
|
|
||||||
|
|
||||||
#ifdef HAVE_LCD_BITMAP
|
|
||||||
screen_dump_set_hook,
|
|
||||||
font_get_width,
|
|
||||||
#endif
|
|
||||||
utf8decode,
|
|
||||||
iso_decode,
|
|
||||||
utf16LEdecode,
|
|
||||||
utf16BEdecode,
|
|
||||||
utf8encode,
|
|
||||||
utf8length,
|
|
||||||
|
|
||||||
sound_min,
|
|
||||||
sound_max,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
int plugin_load(const char* plugin, void* parameter)
|
int plugin_load(const char* plugin, void* parameter)
|
||||||
|
@ -377,7 +371,8 @@ int plugin_load(const char* plugin, void* parameter)
|
||||||
enum plugin_status (*plugin_start)(struct plugin_api* api, void* param);
|
enum plugin_status (*plugin_start)(struct plugin_api* api, void* param);
|
||||||
int rc;
|
int rc;
|
||||||
#ifndef SIMULATOR
|
#ifndef SIMULATOR
|
||||||
char buf[64];
|
struct plugin_header header;
|
||||||
|
ssize_t readsize;
|
||||||
#endif
|
#endif
|
||||||
int fd;
|
int fd;
|
||||||
|
|
||||||
|
@ -408,28 +403,50 @@ int plugin_load(const char* plugin, void* parameter)
|
||||||
#else
|
#else
|
||||||
fd = open(plugin, O_RDONLY);
|
fd = open(plugin, O_RDONLY);
|
||||||
if (fd < 0) {
|
if (fd < 0) {
|
||||||
snprintf(buf, sizeof buf, str(LANG_PLUGIN_CANT_OPEN), plugin);
|
gui_syncsplash(HZ*2, true, str(LANG_PLUGIN_CANT_OPEN), plugin);
|
||||||
gui_syncsplash(HZ*2, true, buf);
|
|
||||||
return fd;
|
return fd;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* zero out plugin buffer to ensure a properly zeroed bss area */
|
readsize = read(fd, &header, sizeof(header));
|
||||||
memset(pluginbuf, 0, PLUGIN_BUFFER_SIZE);
|
|
||||||
|
|
||||||
plugin_start = (void*)&pluginbuf;
|
|
||||||
plugin_size = read(fd, plugin_start, PLUGIN_BUFFER_SIZE);
|
|
||||||
close(fd);
|
close(fd);
|
||||||
if (plugin_size < 0) {
|
/* Close for now. Less code than doing it in all error checks.
|
||||||
|
* Would need to seek back anyway. */
|
||||||
|
|
||||||
|
if (readsize != sizeof(header)) {
|
||||||
|
gui_syncsplash(HZ*2, true, str(LANG_READ_FAILED), plugin);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
if (header.magic != PLUGIN_MAGIC
|
||||||
|
|| header.target_id != TARGET_ID
|
||||||
|
|| header.load_addr != pluginbuf
|
||||||
|
|| header.end_addr > pluginbuf + PLUGIN_BUFFER_SIZE) {
|
||||||
|
gui_syncsplash(HZ*2, true, str(LANG_PLUGIN_WRONG_MODEL));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
if (header.api_version > PLUGIN_API_VERSION
|
||||||
|
|| header.api_version < PLUGIN_MIN_API_VERSION) {
|
||||||
|
gui_syncsplash(HZ*2, true, str(LANG_PLUGIN_WRONG_VERSION));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* zero out plugin buffer to ensure a properly zeroed bss area */
|
||||||
|
memset(pluginbuf, 0, header.end_addr - pluginbuf);
|
||||||
|
|
||||||
|
fd = open(plugin, O_RDONLY);
|
||||||
|
if (fd < 0) {
|
||||||
|
gui_syncsplash(HZ*2, true, str(LANG_PLUGIN_CANT_OPEN), plugin);
|
||||||
|
return fd;
|
||||||
|
}
|
||||||
|
readsize = read(fd, pluginbuf, PLUGIN_BUFFER_SIZE);
|
||||||
|
close(fd);
|
||||||
|
|
||||||
|
if (readsize < 0) {
|
||||||
/* read error */
|
/* read error */
|
||||||
snprintf(buf, sizeof buf, str(LANG_READ_FAILED), plugin);
|
gui_syncsplash(HZ*2, true, str(LANG_READ_FAILED), plugin);
|
||||||
gui_syncsplash(HZ*2, true, buf);
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
if (plugin_size == 0) {
|
|
||||||
/* loaded a 0-byte plugin, implying it's not for this model */
|
|
||||||
gui_syncsplash(HZ*2, true, str(LANG_PLUGIN_WRONG_MODEL));
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
plugin_start = header.entry_point;
|
||||||
|
plugin_size = header.end_addr - header.load_addr;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
plugin_loaded = true;
|
plugin_loaded = true;
|
||||||
|
@ -458,14 +475,6 @@ int plugin_load(const char* plugin, void* parameter)
|
||||||
case PLUGIN_USB_CONNECTED:
|
case PLUGIN_USB_CONNECTED:
|
||||||
return PLUGIN_USB_CONNECTED;
|
return PLUGIN_USB_CONNECTED;
|
||||||
|
|
||||||
case PLUGIN_WRONG_API_VERSION:
|
|
||||||
gui_syncsplash(HZ*2, true, str(LANG_PLUGIN_WRONG_VERSION));
|
|
||||||
break;
|
|
||||||
|
|
||||||
case PLUGIN_WRONG_MODEL:
|
|
||||||
gui_syncsplash(HZ*2, true, str(LANG_PLUGIN_WRONG_MODEL));
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
gui_syncsplash(HZ*2, true, str(LANG_PLUGIN_ERROR));
|
gui_syncsplash(HZ*2, true, str(LANG_PLUGIN_ERROR));
|
||||||
break;
|
break;
|
||||||
|
@ -521,19 +530,3 @@ void plugin_tsr(void (*exit_callback)(void))
|
||||||
{
|
{
|
||||||
pfn_tsr_exit = exit_callback; /* remember the callback for later */
|
pfn_tsr_exit = exit_callback; /* remember the callback for later */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int plugin_test(int api_version, int model, int memsize)
|
|
||||||
{
|
|
||||||
if (api_version < PLUGIN_MIN_API_VERSION ||
|
|
||||||
api_version > PLUGIN_API_VERSION)
|
|
||||||
return PLUGIN_WRONG_API_VERSION;
|
|
||||||
|
|
||||||
if (model != MODEL)
|
|
||||||
return PLUGIN_WRONG_MODEL;
|
|
||||||
|
|
||||||
if (memsize != MEM)
|
|
||||||
return PLUGIN_WRONG_MODEL;
|
|
||||||
|
|
||||||
return PLUGIN_OK;
|
|
||||||
}
|
|
||||||
|
|
115
apps/plugin.h
115
apps/plugin.h
|
@ -90,44 +90,23 @@
|
||||||
#define PREFIX(_x_) _x_
|
#define PREFIX(_x_) _x_
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define PLUGIN_MAGIC 0x526F634B /* RocK */
|
||||||
|
|
||||||
/* increase this every time the api struct changes */
|
/* increase this every time the api struct changes */
|
||||||
#define PLUGIN_API_VERSION 54
|
#define PLUGIN_API_VERSION 1
|
||||||
|
|
||||||
/* update this to latest version if a change to the api struct breaks
|
/* 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) */
|
new function which are "waiting" at the end of the function table) */
|
||||||
#define PLUGIN_MIN_API_VERSION 51
|
#define PLUGIN_MIN_API_VERSION 1
|
||||||
|
|
||||||
/* plugin return codes */
|
/* plugin return codes */
|
||||||
enum plugin_status {
|
enum plugin_status {
|
||||||
PLUGIN_OK = 0,
|
PLUGIN_OK = 0,
|
||||||
PLUGIN_USB_CONNECTED,
|
PLUGIN_USB_CONNECTED,
|
||||||
|
PLUGIN_ERROR = -1,
|
||||||
PLUGIN_WRONG_API_VERSION = -1,
|
|
||||||
PLUGIN_WRONG_MODEL = -2,
|
|
||||||
PLUGIN_ERROR = -3,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* different (incompatible) plugin models */
|
|
||||||
enum model {
|
|
||||||
PLAYER,
|
|
||||||
RECORDER
|
|
||||||
};
|
|
||||||
|
|
||||||
#ifdef HAVE_LCD_CHARCELLS
|
|
||||||
#define MODEL PLAYER
|
|
||||||
#else
|
|
||||||
#define MODEL RECORDER
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* compatibility test macro */
|
|
||||||
#define TEST_PLUGIN_API(_api_) \
|
|
||||||
do { \
|
|
||||||
int _rc_ = _api_->plugin_test(PLUGIN_API_VERSION, MODEL, MEM); \
|
|
||||||
if (_rc_<0) \
|
|
||||||
return _rc_; \
|
|
||||||
} while(0)
|
|
||||||
|
|
||||||
/* NOTE: To support backwards compatibility, only add new functions at
|
/* NOTE: To support backwards compatibility, only add new functions at
|
||||||
the end of the structure. Every time you add a new function,
|
the end of the structure. Every time you add a new function,
|
||||||
remember to increase PLUGIN_API_VERSION. If you make changes to the
|
remember to increase PLUGIN_API_VERSION. If you make changes to the
|
||||||
|
@ -135,10 +114,6 @@ do { \
|
||||||
version
|
version
|
||||||
*/
|
*/
|
||||||
struct plugin_api {
|
struct plugin_api {
|
||||||
/* these two fields must always be first, to ensure
|
|
||||||
TEST_PLUGIN_API will always work */
|
|
||||||
int version;
|
|
||||||
int (*plugin_test)(int api_version, int model, int memsize);
|
|
||||||
|
|
||||||
/* lcd */
|
/* lcd */
|
||||||
void (*lcd_set_contrast)(int x);
|
void (*lcd_set_contrast)(int x);
|
||||||
|
@ -198,6 +173,7 @@ struct plugin_api {
|
||||||
struct font* (*font_get)(int font);
|
struct font* (*font_get)(int font);
|
||||||
int (*font_getstringsize)(const unsigned char *str, int *w, int *h,
|
int (*font_getstringsize)(const unsigned char *str, int *w, int *h,
|
||||||
int fontnumber);
|
int fontnumber);
|
||||||
|
int (*font_get_width)(struct font* pf, unsigned short char_code);
|
||||||
#endif
|
#endif
|
||||||
void (*backlight_on)(void);
|
void (*backlight_on)(void);
|
||||||
void (*backlight_off)(void);
|
void (*backlight_off)(void);
|
||||||
|
@ -314,9 +290,18 @@ struct plugin_api {
|
||||||
char *(*strcat)(char *s1, const char *s2);
|
char *(*strcat)(char *s1, const char *s2);
|
||||||
int (*memcmp)(const void *s1, const void *s2, size_t n);
|
int (*memcmp)(const void *s1, const void *s2, size_t n);
|
||||||
char *(*strcasestr) (const char* phaystack, const char* pneedle);
|
char *(*strcasestr) (const char* phaystack, const char* pneedle);
|
||||||
|
/* unicode stuff */
|
||||||
|
const unsigned char* (*utf8decode)(const unsigned char *utf8, unsigned short *ucs);
|
||||||
|
unsigned char* (*iso_decode)(const unsigned char *iso, unsigned char *utf8, int cp, int count);
|
||||||
|
unsigned char* (*utf16LEdecode)(const unsigned char *utf16, unsigned char *utf8, unsigned int count);
|
||||||
|
unsigned char* (*utf16BEdecode)(const unsigned char *utf16, unsigned char *utf8, unsigned int count);
|
||||||
|
unsigned char* (*utf8encode)(unsigned long ucs, unsigned char *utf8);
|
||||||
|
unsigned long (*utf8length)(const unsigned char *utf8);
|
||||||
|
|
||||||
/* sound */
|
/* sound */
|
||||||
void (*sound_set)(int setting, int value);
|
void (*sound_set)(int setting, int value);
|
||||||
|
int (*sound_min)(int setting);
|
||||||
|
int (*sound_max)(int setting);
|
||||||
#ifndef SIMULATOR
|
#ifndef SIMULATOR
|
||||||
void (*mp3_play_data)(const unsigned char* start, int size, void (*get_more)(unsigned char** start, int* size));
|
void (*mp3_play_data)(const unsigned char* start, int size, void (*get_more)(unsigned char** start, int* size));
|
||||||
void (*mp3_play_pause)(bool play);
|
void (*mp3_play_pause)(bool play);
|
||||||
|
@ -378,6 +363,23 @@ struct plugin_api {
|
||||||
int *rundb_fd;
|
int *rundb_fd;
|
||||||
int *rundb_initialized;
|
int *rundb_initialized;
|
||||||
|
|
||||||
|
/* menu */
|
||||||
|
int (*menu_init)(const struct menu_item* mitems, int count,
|
||||||
|
int (*callback)(int, int),
|
||||||
|
const char *button1, const char *button2, const char *button3);
|
||||||
|
void (*menu_exit)(int menu);
|
||||||
|
int (*menu_show)(int m);
|
||||||
|
bool (*menu_run)(int menu);
|
||||||
|
int (*menu_cursor)(int menu);
|
||||||
|
char* (*menu_description)(int menu, int position);
|
||||||
|
void (*menu_delete)(int menu, int position);
|
||||||
|
int (*menu_count)(int menu);
|
||||||
|
bool (*menu_moveup)(int menu);
|
||||||
|
bool (*menu_movedown)(int menu);
|
||||||
|
void (*menu_draw)(int menu);
|
||||||
|
void (*menu_insert)(int menu, int position, char *desc, bool (*function) (void));
|
||||||
|
void (*menu_set_cursor)(int menu, int position);
|
||||||
|
|
||||||
/* misc */
|
/* misc */
|
||||||
void (*srand)(unsigned int seed);
|
void (*srand)(unsigned int seed);
|
||||||
int (*rand)(void);
|
int (*rand)(void);
|
||||||
|
@ -416,43 +418,38 @@ struct plugin_api {
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
int (*read_bmp_file)(char* filename, int *get_width, int *get_height,
|
int (*read_bmp_file)(char* filename, int *get_width, int *get_height,
|
||||||
char *bitmap, int maxsize);
|
char *bitmap, int maxsize);
|
||||||
|
void (*screen_dump_set_hook)(void (*hook)(int fh));
|
||||||
#endif
|
#endif
|
||||||
int (*show_logo)(void);
|
int (*show_logo)(void);
|
||||||
|
|
||||||
/* new stuff at the end, sort into place next time
|
/* new stuff at the end, sort into place next time
|
||||||
the API gets incompatible */
|
the API gets incompatible */
|
||||||
|
|
||||||
int (*menu_init)(const struct menu_item* mitems, int count,
|
|
||||||
int (*callback)(int, int),
|
|
||||||
const char *button1, const char *button2, const char *button3);
|
|
||||||
void (*menu_exit)(int menu);
|
|
||||||
int (*menu_show)(int m);
|
|
||||||
bool (*menu_run)(int menu);
|
|
||||||
int (*menu_cursor)(int menu);
|
|
||||||
char* (*menu_description)(int menu, int position);
|
|
||||||
void (*menu_delete)(int menu, int position);
|
|
||||||
int (*menu_count)(int menu);
|
|
||||||
bool (*menu_moveup)(int menu);
|
|
||||||
bool (*menu_movedown)(int menu);
|
|
||||||
void (*menu_draw)(int menu);
|
|
||||||
void (*menu_insert)(int menu, int position, char *desc, bool (*function) (void));
|
|
||||||
void (*menu_set_cursor)(int menu, int position);
|
|
||||||
|
|
||||||
#ifdef HAVE_LCD_BITMAP
|
|
||||||
void (*screen_dump_set_hook)(void (*hook)(int fh));
|
|
||||||
int (*font_get_width)(struct font* pf, unsigned short char_code);
|
|
||||||
#endif
|
|
||||||
const unsigned char* (*utf8decode)(const unsigned char *utf8, unsigned short *ucs);
|
|
||||||
unsigned char* (*iso_decode)(const unsigned char *iso, unsigned char *utf8, int cp, int count);
|
|
||||||
unsigned char* (*utf16LEdecode)(const unsigned char *utf16, unsigned char *utf8, unsigned int count);
|
|
||||||
unsigned char* (*utf16BEdecode)(const unsigned char *utf16, unsigned char *utf8, unsigned int count);
|
|
||||||
unsigned char* (*utf8encode)(unsigned long ucs, unsigned char *utf8);
|
|
||||||
unsigned long (*utf8length)(const unsigned char *utf8);
|
|
||||||
|
|
||||||
int (*sound_min)(int setting);
|
|
||||||
int (*sound_max)(int setting);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#ifndef SIMULATOR
|
||||||
|
/* plugin header */
|
||||||
|
struct plugin_header {
|
||||||
|
unsigned long magic;
|
||||||
|
unsigned short target_id;
|
||||||
|
unsigned short api_version;
|
||||||
|
unsigned char *load_addr;
|
||||||
|
unsigned char *end_addr;
|
||||||
|
enum plugin_status(*entry_point)(struct plugin_api*, void*);
|
||||||
|
};
|
||||||
|
#ifdef PLUGIN
|
||||||
|
extern unsigned char plugin_start_addr[];
|
||||||
|
extern unsigned char plugin_end_addr[];
|
||||||
|
#define PLUGIN_HEADER \
|
||||||
|
const struct plugin_header __header \
|
||||||
|
__attribute__ ((section (".header")))= { \
|
||||||
|
PLUGIN_MAGIC, TARGET_ID, PLUGIN_API_VERSION, \
|
||||||
|
plugin_start_addr, plugin_end_addr, plugin_start };
|
||||||
|
#endif
|
||||||
|
#else /* SIMULATOR */
|
||||||
|
#define PLUGIN_HEADER
|
||||||
|
#endif
|
||||||
|
|
||||||
int plugin_load(const char* plugin, void* parameter);
|
int plugin_load(const char* plugin, void* parameter);
|
||||||
void* plugin_get_buffer(int *buffer_size);
|
void* plugin_get_buffer(int *buffer_size);
|
||||||
void* plugin_get_audio_buffer(int *buffer_size);
|
void* plugin_get_audio_buffer(int *buffer_size);
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
INCLUDES = -I$(FIRMDIR)/include -I$(FIRMDIR)/export -I$(FIRMDIR)/common \
|
INCLUDES = -I$(FIRMDIR)/include -I$(FIRMDIR)/export -I$(FIRMDIR)/common \
|
||||||
-I$(FIRMDIR)/drivers -I$(APPSDIR) -Ilib -I$(BUILDDIR)
|
-I$(FIRMDIR)/drivers -I$(APPSDIR) -Ilib -I$(BUILDDIR)
|
||||||
CFLAGS = $(GCCOPTS) $(INCLUDES) $(TARGET) $(EXTRA_DEFINES) \
|
CFLAGS = $(GCCOPTS) $(INCLUDES) $(TARGET) $(EXTRA_DEFINES) \
|
||||||
-DMEM=${MEMORYSIZE} -DPLUGIN
|
-DTARGET_ID=$(TARGET_ID) -DMEM=${MEMORYSIZE} -DPLUGIN
|
||||||
|
|
||||||
ifdef APPEXTRA
|
ifdef APPEXTRA
|
||||||
INCLUDES += $(patsubst %,-I$(APPSDIR)/%,$(subst :, ,$(APPEXTRA)))
|
INCLUDES += $(patsubst %,-I$(APPSDIR)/%,$(subst :, ,$(APPEXTRA)))
|
||||||
|
|
|
@ -34,6 +34,8 @@
|
||||||
/* Only build for (correct) target */
|
/* Only build for (correct) target */
|
||||||
#if !defined(SIMULATOR) && CONFIG_CPU==SH7034 && !defined(HAVE_MMC)
|
#if !defined(SIMULATOR) && CONFIG_CPU==SH7034 && !defined(HAVE_MMC)
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
#ifdef HAVE_LCD_CHARCELLS /* player model */
|
#ifdef HAVE_LCD_CHARCELLS /* player model */
|
||||||
#define LINES 2
|
#define LINES 2
|
||||||
#define COLUMNS 11
|
#define COLUMNS 11
|
||||||
|
@ -1192,10 +1194,6 @@ int main(void* parameter)
|
||||||
|
|
||||||
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
{
|
{
|
||||||
/* this macro should be called as the first thing you do in the plugin.
|
|
||||||
it test that the api version and model the plugin was compiled for
|
|
||||||
matches the machine it is running on */
|
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
rb = api; /* copy to global api pointer */
|
rb = api; /* copy to global api pointer */
|
||||||
|
|
||||||
/* now go ahead and have fun! */
|
/* now go ahead and have fun! */
|
||||||
|
|
|
@ -29,6 +29,8 @@
|
||||||
to watch.
|
to watch.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
/* variable button definitions */
|
/* variable button definitions */
|
||||||
#if CONFIG_KEYPAD == RECORDER_PAD
|
#if CONFIG_KEYPAD == RECORDER_PAD
|
||||||
#define BATTERY_TEST_QUIT BUTTON_OFF
|
#define BATTERY_TEST_QUIT BUTTON_OFF
|
||||||
|
@ -136,7 +138,6 @@ enum plugin_status loop(void)
|
||||||
|
|
||||||
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
{
|
{
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
(void)parameter;
|
(void)parameter;
|
||||||
rb = api;
|
rb = api;
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,8 @@
|
||||||
|
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
#define SS_TITLE "Bouncer"
|
#define SS_TITLE "Bouncer"
|
||||||
#define SS_TITLE_FONT 2
|
#define SS_TITLE_FONT 2
|
||||||
|
|
||||||
|
@ -443,7 +445,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
char *off = "[Off] to stop";
|
char *off = "[Off] to stop";
|
||||||
int len;
|
int len;
|
||||||
|
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
(void)(parameter);
|
(void)(parameter);
|
||||||
rb = api;
|
rb = api;
|
||||||
|
|
||||||
|
|
|
@ -76,6 +76,8 @@ F3: equal to "="
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
#include "math.h"
|
#include "math.h"
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
#define REC_HEIGHT 10 /* blank height = 9 */
|
#define REC_HEIGHT 10 /* blank height = 9 */
|
||||||
#define REC_WIDTH 22 /* blank width = 21 */
|
#define REC_WIDTH 22 /* blank width = 21 */
|
||||||
|
|
||||||
|
@ -1324,7 +1326,6 @@ Main();
|
||||||
----------------------------------------------------------------------- */
|
----------------------------------------------------------------------- */
|
||||||
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
{
|
{
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
(void)parameter;
|
(void)parameter;
|
||||||
rb = api;
|
rb = api;
|
||||||
|
|
||||||
|
|
|
@ -23,6 +23,8 @@
|
||||||
|
|
||||||
#include <timefuncs.h>
|
#include <timefuncs.h>
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
static struct plugin_api* rb;
|
static struct plugin_api* rb;
|
||||||
|
|
||||||
static bool leap_year;
|
static bool leap_year;
|
||||||
|
@ -664,7 +666,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
bool exit = false;
|
bool exit = false;
|
||||||
int button;
|
int button;
|
||||||
|
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
(void)(parameter);
|
(void)(parameter);
|
||||||
|
|
||||||
rb = api;
|
rb = api;
|
||||||
|
|
|
@ -18,6 +18,8 @@
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
#include "plugin.h"
|
#include "plugin.h"
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
/* variable button definitions */
|
/* variable button definitions */
|
||||||
#if CONFIG_KEYPAD == RECORDER_PAD
|
#if CONFIG_KEYPAD == RECORDER_PAD
|
||||||
#define CHC_QUIT BUTTON_OFF
|
#define CHC_QUIT BUTTON_OFF
|
||||||
|
@ -136,8 +138,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
bool done;
|
bool done;
|
||||||
int nr;
|
int nr;
|
||||||
|
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
|
|
||||||
(void)parameter;
|
(void)parameter;
|
||||||
rb=api;
|
rb=api;
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,8 @@
|
||||||
/* Only build for (correct) target */
|
/* Only build for (correct) target */
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
static struct plugin_api* rb; /* here is a global api struct pointer */
|
static struct plugin_api* rb; /* here is a global api struct pointer */
|
||||||
|
|
||||||
#define EXTERN static
|
#define EXTERN static
|
||||||
|
@ -1276,10 +1278,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
{
|
{
|
||||||
char* filename;
|
char* filename;
|
||||||
|
|
||||||
/* this macro should be called as the first thing you do in the plugin.
|
|
||||||
it test that the api version and model the plugin was compiled for
|
|
||||||
matches the machine it is running on */
|
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
rb = api; /* copy to global api pointer */
|
rb = api; /* copy to global api pointer */
|
||||||
|
|
||||||
if (parameter == NULL)
|
if (parameter == NULL)
|
||||||
|
|
|
@ -80,6 +80,8 @@ Original release, featuring analog / digital modes and a few options.
|
||||||
|
|
||||||
#if defined(HAVE_LCD_BITMAP) && defined(CONFIG_RTC)
|
#if defined(HAVE_LCD_BITMAP) && defined(CONFIG_RTC)
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
#define CLOCK_VERSION "2.60"
|
#define CLOCK_VERSION "2.60"
|
||||||
|
|
||||||
#define MODE_ANALOG 1
|
#define MODE_ANALOG 1
|
||||||
|
@ -2875,7 +2877,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
|
|
||||||
struct tm* current_time;
|
struct tm* current_time;
|
||||||
|
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
(void)parameter;
|
(void)parameter;
|
||||||
rb = api;
|
rb = api;
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,8 @@
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
#include "plugin.h"
|
#include "plugin.h"
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
void roll_credits(void);
|
void roll_credits(void);
|
||||||
const char* const credits[] = {
|
const char* const credits[] = {
|
||||||
#include "credits.raw" /* generated list of names from docs/CREDITS */
|
#include "credits.raw" /* generated list of names from docs/CREDITS */
|
||||||
|
@ -30,7 +32,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
int j = 0;
|
int j = 0;
|
||||||
int btn;
|
int btn;
|
||||||
|
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
(void)parameter;
|
(void)parameter;
|
||||||
rb = api;
|
rb = api;
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,8 @@
|
||||||
#include "playergfx.h"
|
#include "playergfx.h"
|
||||||
#include "xlcd.h"
|
#include "xlcd.h"
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
/* Loops that the values are displayed */
|
/* Loops that the values are displayed */
|
||||||
#define DISP_TIME 30
|
#define DISP_TIME 30
|
||||||
|
|
||||||
|
@ -446,7 +448,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
bool redraw = true;
|
bool redraw = true;
|
||||||
bool exit = false;
|
bool exit = false;
|
||||||
|
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
(void)(parameter);
|
(void)(parameter);
|
||||||
rb = api;
|
rb = api;
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
INCLUDES = -I$(APPSDIR) -I.. -I. -I$(FIRMDIR)/include -I$(FIRMDIR)/export \
|
INCLUDES = -I$(APPSDIR) -I.. -I. -I$(FIRMDIR)/include -I$(FIRMDIR)/export \
|
||||||
-I$(FIRMDIR)/common -I$(FIRMDIR)/drivers -I$(OUTDIR) -I$(BUILDDIR)
|
-I$(FIRMDIR)/common -I$(FIRMDIR)/drivers -I$(OUTDIR) -I$(BUILDDIR)
|
||||||
CFLAGS = $(GCCOPTS) -O3 $(INCLUDES) $(TARGET) $(EXTRA_DEFINES) \
|
CFLAGS = $(GCCOPTS) -O3 $(INCLUDES) $(TARGET) $(EXTRA_DEFINES) \
|
||||||
-DMEM=${MEMORYSIZE} -DPLUGIN
|
-DTARGET_ID=$(TARGET_ID) -DMEM=${MEMORYSIZE} -DPLUGIN
|
||||||
|
|
||||||
ifdef APPEXTRA
|
ifdef APPEXTRA
|
||||||
INCLUDES += $(patsubst %,-I$(APPSDIR)/%,$(subst :, ,$(APPEXTRA)))
|
INCLUDES += $(patsubst %,-I$(APPSDIR)/%,$(subst :, ,$(APPEXTRA)))
|
||||||
|
|
|
@ -18,6 +18,8 @@
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
#include "databox.h"
|
#include "databox.h"
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
/* variable button definitions */
|
/* variable button definitions */
|
||||||
#if (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
|
#if (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
|
||||||
(CONFIG_KEYPAD == IRIVER_H300_PAD)
|
(CONFIG_KEYPAD == IRIVER_H300_PAD)
|
||||||
|
@ -233,11 +235,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
{
|
{
|
||||||
int button,done=0,abort=0;
|
int button,done=0,abort=0;
|
||||||
char filename[100],buf[100];
|
char filename[100],buf[100];
|
||||||
/* this macro should be called as the first thing you do in the plugin.
|
|
||||||
it test that the api version and model the plugin was compiled for
|
|
||||||
matches the machine it is running on */
|
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
|
|
||||||
/* if you don't use the parameter, you can do like
|
/* if you don't use the parameter, you can do like
|
||||||
this to avoid the compiler warning about it */
|
this to avoid the compiler warning about it */
|
||||||
(void)parameter;
|
(void)parameter;
|
||||||
|
|
|
@ -23,6 +23,8 @@
|
||||||
|
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
/* Key assignement */
|
/* Key assignement */
|
||||||
#if (CONFIG_KEYPAD == IPOD_4G_PAD)
|
#if (CONFIG_KEYPAD == IPOD_4G_PAD)
|
||||||
#define DEMYSTIFY_QUIT BUTTON_MENU
|
#define DEMYSTIFY_QUIT BUTTON_MENU
|
||||||
|
@ -337,13 +339,6 @@ int plugin_main(void)
|
||||||
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
/*
|
|
||||||
* this macro should be called as the first thing you do in the plugin.
|
|
||||||
* it test that the api version and model the plugin was compiled for
|
|
||||||
* matches the machine it is running on
|
|
||||||
*/
|
|
||||||
|
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
|
|
||||||
rb = api; /* copy to global api pointer */
|
rb = api; /* copy to global api pointer */
|
||||||
(void)parameter;
|
(void)parameter;
|
||||||
|
|
|
@ -19,6 +19,8 @@
|
||||||
|
|
||||||
#include "plugin.h"
|
#include "plugin.h"
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
/* as in hello world :) */
|
/* as in hello world :) */
|
||||||
static struct plugin_api* rb;
|
static struct plugin_api* rb;
|
||||||
/* screen info */
|
/* screen info */
|
||||||
|
@ -127,7 +129,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
int lines, len, outputted, next;
|
int lines, len, outputted, next;
|
||||||
|
|
||||||
/* plugin stuff */
|
/* plugin stuff */
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
(void)parameter;
|
(void)parameter;
|
||||||
rb = api;
|
rb = api;
|
||||||
|
|
||||||
|
|
|
@ -43,6 +43,8 @@ To do:
|
||||||
- The Irish currency needs 6 digits after the . to have sufficient precision on big number
|
- The Irish currency needs 6 digits after the . to have sufficient precision on big number
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
/* Name and path of the config file*/
|
/* Name and path of the config file*/
|
||||||
static const char cfg_filename[] = "euroconverter.cfg";
|
static const char cfg_filename[] = "euroconverter.cfg";
|
||||||
#define CFGFILE_VERSION 0 /* Current config file version */
|
#define CFGFILE_VERSION 0 /* Current config file version */
|
||||||
|
@ -405,11 +407,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
longlong_t e,h,old_e,old_h;
|
longlong_t e,h,old_e,old_h;
|
||||||
int button;
|
int button;
|
||||||
|
|
||||||
/* this macro should be called as the first thing you do in the plugin.
|
|
||||||
it test that the api version and model the plugin was compiled for
|
|
||||||
matches the machine it is running on */
|
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
|
|
||||||
/* if you don't use the parameter, you can do like
|
/* if you don't use the parameter, you can do like
|
||||||
this to avoid the compiler warning about it */
|
this to avoid the compiler warning about it */
|
||||||
(void)parameter;
|
(void)parameter;
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
#include "plugin.h"
|
#include "plugin.h"
|
||||||
#define FAVORITES_FILE "/favorites.m3u"
|
#define FAVORITES_FILE "/favorites.m3u"
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
static struct plugin_api* rb;
|
static struct plugin_api* rb;
|
||||||
|
|
||||||
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
|
@ -9,11 +11,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
char track_path[MAX_PATH+1];
|
char track_path[MAX_PATH+1];
|
||||||
int fd, result, len;
|
int fd, result, len;
|
||||||
|
|
||||||
/* this macro should be called as the first thing you do in the plugin.
|
|
||||||
it test that the api version and model the plugin was compiled for
|
|
||||||
matches the machine it is running on */
|
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
|
|
||||||
rb = api;
|
rb = api;
|
||||||
|
|
||||||
/* If we were passed a parameter, use that as the file name,
|
/* If we were passed a parameter, use that as the file name,
|
||||||
|
|
|
@ -25,6 +25,8 @@
|
||||||
#ifdef HAVE_LCD_BITMAP /* and also not for the Player */
|
#ifdef HAVE_LCD_BITMAP /* and also not for the Player */
|
||||||
#include "gray.h"
|
#include "gray.h"
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
/******************************* Globals ***********************************/
|
/******************************* Globals ***********************************/
|
||||||
|
|
||||||
static struct plugin_api* rb; /* global api struct pointer */
|
static struct plugin_api* rb; /* global api struct pointer */
|
||||||
|
@ -278,13 +280,6 @@ int main(void)
|
||||||
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
/*
|
|
||||||
* this macro should be called as the first thing you do in the plugin.
|
|
||||||
* it test that the api version and model the plugin was compiled for
|
|
||||||
* matches the machine it is running on
|
|
||||||
*/
|
|
||||||
|
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
|
|
||||||
rb = api; // copy to global api pointer
|
rb = api; // copy to global api pointer
|
||||||
(void)parameter;
|
(void)parameter;
|
||||||
|
|
|
@ -79,6 +79,8 @@
|
||||||
|
|
||||||
#ifdef PLATFORM_ID
|
#ifdef PLATFORM_ID
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
#if CONFIG_KEYPAD == ONDIO_PAD /* limited keypad */
|
#if CONFIG_KEYPAD == ONDIO_PAD /* limited keypad */
|
||||||
#define KEY1 BUTTON_LEFT
|
#define KEY1 BUTTON_LEFT
|
||||||
#define KEY2 BUTTON_UP
|
#define KEY2 BUTTON_UP
|
||||||
|
@ -1062,11 +1064,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
{
|
{
|
||||||
int oldmode;
|
int oldmode;
|
||||||
|
|
||||||
/* this macro should be called as the first thing you do in the plugin.
|
|
||||||
it test that the api version and model the plugin was compiled for
|
|
||||||
matches the machine it is running on */
|
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
|
|
||||||
rb = api; /* copy to global api pointer */
|
rb = api; /* copy to global api pointer */
|
||||||
|
|
||||||
/* now go ahead and have fun! */
|
/* now go ahead and have fun! */
|
||||||
|
|
|
@ -19,6 +19,8 @@
|
||||||
#include "plugin.h"
|
#include "plugin.h"
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
/* variable button definitions */
|
/* variable button definitions */
|
||||||
#if CONFIG_KEYPAD == RECORDER_PAD
|
#if CONFIG_KEYPAD == RECORDER_PAD
|
||||||
#define FLIPIT_UP BUTTON_UP
|
#define FLIPIT_UP BUTTON_UP
|
||||||
|
@ -294,7 +296,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
{
|
{
|
||||||
int w, h, i;
|
int w, h, i;
|
||||||
|
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
(void)parameter;
|
(void)parameter;
|
||||||
rb = api;
|
rb = api;
|
||||||
|
|
||||||
|
|
|
@ -25,6 +25,8 @@
|
||||||
#if defined(HAVE_LCD_BITMAP) && (LCD_DEPTH < 4)
|
#if defined(HAVE_LCD_BITMAP) && (LCD_DEPTH < 4)
|
||||||
#include "gray.h"
|
#include "gray.h"
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
/* variable button definitions */
|
/* variable button definitions */
|
||||||
#if CONFIG_KEYPAD == RECORDER_PAD
|
#if CONFIG_KEYPAD == RECORDER_PAD
|
||||||
#define GRAYSCALE_SHIFT BUTTON_ON
|
#define GRAYSCALE_SHIFT BUTTON_ON
|
||||||
|
@ -302,11 +304,6 @@ int main(void)
|
||||||
|
|
||||||
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
{
|
{
|
||||||
/* this macro should be called as the first thing you do in the plugin.
|
|
||||||
it test that the api version and model the plugin was compiled for
|
|
||||||
matches the machine it is running on */
|
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
|
|
||||||
rb = api; // copy to global api pointer
|
rb = api; // copy to global api pointer
|
||||||
(void)parameter;
|
(void)parameter;
|
||||||
|
|
||||||
|
|
|
@ -20,6 +20,10 @@
|
||||||
|
|
||||||
/* welcome to the example rockbox plugin */
|
/* welcome to the example rockbox plugin */
|
||||||
|
|
||||||
|
/* This macros must always be included. Should be placed at the top by
|
||||||
|
convention, although the actual position doesn't matter */
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
/* here is a global api struct pointer. while not strictly necessary,
|
/* here is a global api struct pointer. while not strictly necessary,
|
||||||
it's nice not to have to pass the api pointer in all function calls
|
it's nice not to have to pass the api pointer in all function calls
|
||||||
in the plugin */
|
in the plugin */
|
||||||
|
@ -28,11 +32,6 @@ static struct plugin_api* rb;
|
||||||
/* this is the plugin entry point */
|
/* this is the plugin entry point */
|
||||||
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
{
|
{
|
||||||
/* this macro should be called as the first thing you do in the plugin.
|
|
||||||
it test that the api version and model the plugin was compiled for
|
|
||||||
matches the machine it is running on */
|
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
|
|
||||||
/* if you don't use the parameter, you can do like
|
/* if you don't use the parameter, you can do like
|
||||||
this to avoid the compiler warning about it */
|
this to avoid the compiler warning about it */
|
||||||
(void)parameter;
|
(void)parameter;
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
#include "plugin.h"
|
#include "plugin.h"
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
static struct plugin_api* rb;
|
static struct plugin_api* rb;
|
||||||
|
|
||||||
|
@ -133,7 +134,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
{
|
{
|
||||||
char *buf;
|
char *buf;
|
||||||
int rc;
|
int rc;
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
|
|
||||||
filename = (char *)parameter;
|
filename = (char *)parameter;
|
||||||
|
|
||||||
|
|
|
@ -29,6 +29,8 @@ History:
|
||||||
|
|
||||||
#ifdef HAVE_LCD_CHARCELLS
|
#ifdef HAVE_LCD_CHARCELLS
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
/* Jackpot game for the player */
|
/* Jackpot game for the player */
|
||||||
|
|
||||||
static unsigned char pattern[]={
|
static unsigned char pattern[]={
|
||||||
|
@ -89,11 +91,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
bool exit=false;
|
bool exit=false;
|
||||||
bool go;
|
bool go;
|
||||||
|
|
||||||
/* this macro should be called as the first thing you do in the plugin.
|
|
||||||
it test that the api version and model the plugin was compiled for
|
|
||||||
matches the machine it is running on */
|
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
|
|
||||||
/* if you don't use the parameter, you can do like
|
/* if you don't use the parameter, you can do like
|
||||||
this to avoid the compiler warning about it */
|
this to avoid the compiler warning about it */
|
||||||
(void)parameter;
|
(void)parameter;
|
||||||
|
|
|
@ -20,11 +20,11 @@
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#include "plugin.h"
|
#include "plugin.h"
|
||||||
#include "button.h"
|
|
||||||
#include "lcd.h"
|
|
||||||
|
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
/* save files */
|
/* save files */
|
||||||
#define SCORE_FILE PLUGIN_DIR "/bejeweled.score"
|
#define SCORE_FILE PLUGIN_DIR "/bejeweled.score"
|
||||||
#define SAVE_FILE PLUGIN_DIR "/bejeweled.save"
|
#define SAVE_FILE PLUGIN_DIR "/bejeweled.save"
|
||||||
|
@ -2466,7 +2466,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) {
|
||||||
char str[19];
|
char str[19];
|
||||||
|
|
||||||
/* plugin init */
|
/* plugin init */
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
(void)parameter;
|
(void)parameter;
|
||||||
rb = api;
|
rb = api;
|
||||||
/* end of plugin init */
|
/* end of plugin init */
|
||||||
|
|
|
@ -29,6 +29,8 @@
|
||||||
#if defined(HAVE_LCD_BITMAP) && (LCD_DEPTH < 4)
|
#if defined(HAVE_LCD_BITMAP) && (LCD_DEPTH < 4)
|
||||||
#include "gray.h"
|
#include "gray.h"
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
/* variable button definitions */
|
/* variable button definitions */
|
||||||
#if CONFIG_KEYPAD == RECORDER_PAD
|
#if CONFIG_KEYPAD == RECORDER_PAD
|
||||||
#define JPEG_ZOOM_IN BUTTON_PLAY
|
#define JPEG_ZOOM_IN BUTTON_PLAY
|
||||||
|
@ -1959,11 +1961,6 @@ int main(char* filename)
|
||||||
|
|
||||||
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
{
|
{
|
||||||
/* this macro should be called as the first thing you do in the plugin.
|
|
||||||
it test that the api version and model the plugin was compiled for
|
|
||||||
matches the machine it is running on */
|
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
|
|
||||||
rb = api; /* copy to global api pointer */
|
rb = api; /* copy to global api pointer */
|
||||||
|
|
||||||
return main((char*)parameter);
|
return main((char*)parameter);
|
||||||
|
|
|
@ -19,6 +19,8 @@
|
||||||
#include "plugin.h"
|
#include "plugin.h"
|
||||||
#include "playergfx.h"
|
#include "playergfx.h"
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
#define DISPLAY_WIDTH LCD_WIDTH
|
#define DISPLAY_WIDTH LCD_WIDTH
|
||||||
#define DISPLAY_HEIGHT LCD_HEIGHT
|
#define DISPLAY_HEIGHT LCD_HEIGHT
|
||||||
|
@ -226,7 +228,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) {
|
||||||
int old_cpos = -1;
|
int old_cpos = -1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
(void)parameter;
|
(void)parameter;
|
||||||
|
|
||||||
#ifdef HAVE_LCD_CHARCELLS
|
#ifdef HAVE_LCD_CHARCELLS
|
||||||
|
|
|
@ -24,6 +24,8 @@
|
||||||
#if defined(HAVE_LCD_BITMAP) && (LCD_DEPTH < 4)
|
#if defined(HAVE_LCD_BITMAP) && (LCD_DEPTH < 4)
|
||||||
#include "gray.h"
|
#include "gray.h"
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
/* variable button definitions */
|
/* variable button definitions */
|
||||||
#if CONFIG_KEYPAD == RECORDER_PAD
|
#if CONFIG_KEYPAD == RECORDER_PAD
|
||||||
#define MANDELBROT_QUIT BUTTON_OFF
|
#define MANDELBROT_QUIT BUTTON_OFF
|
||||||
|
@ -371,7 +373,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
int grayscales;
|
int grayscales;
|
||||||
int redraw = REDRAW_FULL;
|
int redraw = REDRAW_FULL;
|
||||||
|
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
rb = api;
|
rb = api;
|
||||||
(void)parameter;
|
(void)parameter;
|
||||||
|
|
||||||
|
|
|
@ -20,6 +20,8 @@
|
||||||
|
|
||||||
#if !defined(SIMULATOR)
|
#if !defined(SIMULATOR)
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
/* variable button definitions */
|
/* variable button definitions */
|
||||||
#if CONFIG_KEYPAD == RECORDER_PAD
|
#if CONFIG_KEYPAD == RECORDER_PAD
|
||||||
#define METRONOME_QUIT BUTTON_OFF
|
#define METRONOME_QUIT BUTTON_OFF
|
||||||
|
@ -907,7 +909,6 @@ void tap(void)
|
||||||
enum plugin_status plugin_start(struct plugin_api* api, void* parameter){
|
enum plugin_status plugin_start(struct plugin_api* api, void* parameter){
|
||||||
int button;
|
int button;
|
||||||
|
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
(void)parameter;
|
(void)parameter;
|
||||||
rb = api;
|
rb = api;
|
||||||
|
|
||||||
|
|
|
@ -41,6 +41,8 @@
|
||||||
|
|
||||||
//#include "../codecs/lib/xxx2wav.h"
|
//#include "../codecs/lib/xxx2wav.h"
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
int numberOfSamples IDATA_ATTR;
|
int numberOfSamples IDATA_ATTR;
|
||||||
long bpm;
|
long bpm;
|
||||||
|
|
||||||
|
@ -67,9 +69,6 @@ struct plugin_api * rb;
|
||||||
|
|
||||||
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
{
|
{
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
rb = api;
|
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
(void)parameter;
|
(void)parameter;
|
||||||
rb = api;
|
rb = api;
|
||||||
|
|
||||||
|
|
|
@ -28,11 +28,11 @@ use F3 to see how many mines are left (supposing all your flags are correct)
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
#include "plugin.h"
|
#include "plugin.h"
|
||||||
#include "button.h"
|
|
||||||
#include "lcd.h"
|
|
||||||
|
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
//what the minesweeper() function can return
|
//what the minesweeper() function can return
|
||||||
#define MINESWEEPER_USB 3
|
#define MINESWEEPER_USB 3
|
||||||
#define MINESWEEPER_QUIT 2
|
#define MINESWEEPER_QUIT 2
|
||||||
|
@ -521,7 +521,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
{
|
{
|
||||||
bool exit = false;
|
bool exit = false;
|
||||||
/* plugin init */
|
/* plugin init */
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
(void)parameter;
|
(void)parameter;
|
||||||
rb = api;
|
rb = api;
|
||||||
/* end of plugin init */
|
/* end of plugin init */
|
||||||
|
|
|
@ -19,6 +19,8 @@
|
||||||
#include "plugin.h"
|
#include "plugin.h"
|
||||||
#include "playergfx.h"
|
#include "playergfx.h"
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
#define LARGE ((LCD_WIDTH - 2) / 2)
|
#define LARGE ((LCD_WIDTH - 2) / 2)
|
||||||
#define HAUT ((LCD_HEIGHT - 2) / 2)
|
#define HAUT ((LCD_HEIGHT - 2) / 2)
|
||||||
|
@ -72,7 +74,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
int sx = 3;
|
int sx = 3;
|
||||||
int sy = 3;
|
int sy = 3;
|
||||||
struct plugin_api* rb = api;
|
struct plugin_api* rb = api;
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
(void)parameter;
|
(void)parameter;
|
||||||
|
|
||||||
#ifdef HAVE_LCD_CHARCELLS
|
#ifdef HAVE_LCD_CHARCELLS
|
||||||
|
|
|
@ -38,6 +38,8 @@ enum e_byte_order { order_unknown, order_bigEndian, order_littleEndian };
|
||||||
#define memcpy rb->memcpy
|
#define memcpy rb->memcpy
|
||||||
#define memset rb->memset
|
#define memset rb->memset
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
static struct plugin_api* rb;
|
static struct plugin_api* rb;
|
||||||
extern char iramcopy[];
|
extern char iramcopy[];
|
||||||
extern char iramstart[];
|
extern char iramstart[];
|
||||||
|
@ -1892,8 +1894,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
char *bitratename[] = { "64","80","96","112","128","160","192","224","256","320" };
|
char *bitratename[] = { "64","80","96","112","128","160","192","224","256","320" };
|
||||||
int brate[] = { 64,80,96,112,128,160,192,224,256,320 };
|
int brate[] = { 64,80,96,112,128,160,192,224,256,320 };
|
||||||
|
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
|
|
||||||
(void)parameter;
|
(void)parameter;
|
||||||
rb = api;
|
rb = api;
|
||||||
|
|
||||||
|
|
|
@ -46,6 +46,7 @@ V1.2 : 2003-07-30
|
||||||
take a match. Later you are obliged to take at least one.)
|
take a match. Later you are obliged to take at least one.)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
/*Pattern for the game*/
|
/*Pattern for the game*/
|
||||||
static unsigned char smile[]={0x00, 0x11, 0x04, 0x04, 0x00, 0x11, 0x0E}; /* :-) */
|
static unsigned char smile[]={0x00, 0x11, 0x04, 0x04, 0x00, 0x11, 0x0E}; /* :-) */
|
||||||
|
@ -140,11 +141,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
bool ok;
|
bool ok;
|
||||||
bool go;
|
bool go;
|
||||||
|
|
||||||
/* this macro should be called as the first thing you do in the plugin.
|
|
||||||
it test that the api version and model the plugin was compiled for
|
|
||||||
matches the machine it is running on */
|
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
|
|
||||||
/* if you don't use the parameter, you can do like
|
/* if you don't use the parameter, you can do like
|
||||||
this to avoid the compiler warning about it */
|
this to avoid the compiler warning about it */
|
||||||
(void)parameter;
|
(void)parameter;
|
||||||
|
|
|
@ -22,6 +22,8 @@
|
||||||
#ifndef SIMULATOR /* don't want this code in the simulator */
|
#ifndef SIMULATOR /* don't want this code in the simulator */
|
||||||
#if CONFIG_CODEC != SWCODEC /* only for MAS-targets */
|
#if CONFIG_CODEC != SWCODEC /* only for MAS-targets */
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
/* The different drawing modes */
|
/* The different drawing modes */
|
||||||
#define DRAW_MODE_FILLED 0
|
#define DRAW_MODE_FILLED 0
|
||||||
#define DRAW_MODE_OUTLINE 1
|
#define DRAW_MODE_OUTLINE 1
|
||||||
|
@ -93,7 +95,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
|
|
||||||
bool exit = false;
|
bool exit = false;
|
||||||
|
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
(void)parameter;
|
(void)parameter;
|
||||||
rb = api;
|
rb = api;
|
||||||
|
|
||||||
|
|
|
@ -25,6 +25,8 @@
|
||||||
#ifdef HAVE_LCD_BITMAP /* and also not for the Player */
|
#ifdef HAVE_LCD_BITMAP /* and also not for the Player */
|
||||||
#if CONFIG_CODEC != SWCODEC /* only for MAS-targets */
|
#if CONFIG_CODEC != SWCODEC /* only for MAS-targets */
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
/* The different drawing modes */
|
/* The different drawing modes */
|
||||||
#define DRAW_MODE_FILLED 0
|
#define DRAW_MODE_FILLED 0
|
||||||
#define DRAW_MODE_OUTLINE 1
|
#define DRAW_MODE_OUTLINE 1
|
||||||
|
@ -201,7 +203,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
bool exit = false;
|
bool exit = false;
|
||||||
bool paused = false;
|
bool paused = false;
|
||||||
|
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
(void)parameter;
|
(void)parameter;
|
||||||
rb = api;
|
rb = api;
|
||||||
|
|
||||||
|
|
|
@ -28,6 +28,8 @@
|
||||||
#ifdef HAVE_LCD_BITMAP /* and also not for the Player */
|
#ifdef HAVE_LCD_BITMAP /* and also not for the Player */
|
||||||
#include "gray.h"
|
#include "gray.h"
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
/******************************* Globals ***********************************/
|
/******************************* Globals ***********************************/
|
||||||
|
|
||||||
static struct plugin_api* rb; /* global api struct pointer */
|
static struct plugin_api* rb; /* global api struct pointer */
|
||||||
|
@ -241,13 +243,6 @@ int main(void)
|
||||||
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
/*
|
|
||||||
* this macro should be called as the first thing you do in the plugin.
|
|
||||||
* it test that the api version and model the plugin was compiled for
|
|
||||||
* matches the machine it is running on
|
|
||||||
*/
|
|
||||||
|
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
|
|
||||||
rb = api; // copy to global api pointer
|
rb = api; // copy to global api pointer
|
||||||
(void)parameter;
|
(void)parameter;
|
||||||
|
|
|
@ -64,6 +64,12 @@ MEMORY
|
||||||
|
|
||||||
SECTIONS
|
SECTIONS
|
||||||
{
|
{
|
||||||
|
.header : {
|
||||||
|
_plugin_start_addr = .;
|
||||||
|
plugin_start_addr = .;
|
||||||
|
KEEP(*(.header))
|
||||||
|
} > PLUGIN_RAM
|
||||||
|
|
||||||
.text :
|
.text :
|
||||||
{
|
{
|
||||||
KEEP(*(.entry))
|
KEEP(*(.entry))
|
||||||
|
@ -118,6 +124,9 @@ SECTIONS
|
||||||
{
|
{
|
||||||
*(.bss*)
|
*(.bss*)
|
||||||
*(COMMON)
|
*(COMMON)
|
||||||
|
. = ALIGN(0x4);
|
||||||
|
_plugin_end_addr = .;
|
||||||
|
plugin_end_addr = .;
|
||||||
} > PLUGIN_RAM
|
} > PLUGIN_RAM
|
||||||
|
|
||||||
/* Special trick to avoid a linker error when no other sections are
|
/* Special trick to avoid a linker error when no other sections are
|
||||||
|
|
|
@ -20,6 +20,8 @@
|
||||||
|
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
#define PAD_HEIGHT LCD_HEIGHT / 6 /* Recorder: 10 iRiver: 21 */
|
#define PAD_HEIGHT LCD_HEIGHT / 6 /* Recorder: 10 iRiver: 21 */
|
||||||
#define PAD_WIDTH LCD_WIDTH / 50 /* Recorder: 2 iRiver: 2 */
|
#define PAD_WIDTH LCD_WIDTH / 50 /* Recorder: 2 iRiver: 2 */
|
||||||
|
|
||||||
|
@ -337,8 +339,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
this to avoid the compiler warning about it */
|
this to avoid the compiler warning about it */
|
||||||
(void)parameter;
|
(void)parameter;
|
||||||
|
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
|
|
||||||
rb = api; /* use the "standard" rb pointer */
|
rb = api; /* use the "standard" rb pointer */
|
||||||
|
|
||||||
/* Clear screen */
|
/* Clear screen */
|
||||||
|
|
|
@ -22,6 +22,8 @@
|
||||||
|
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
#if (CONFIG_KEYPAD == IPOD_4G_PAD)
|
#if (CONFIG_KEYPAD == IPOD_4G_PAD)
|
||||||
#define ROCKBLOX_OFF BUTTON_MENU
|
#define ROCKBLOX_OFF BUTTON_MENU
|
||||||
#define ROCKBLOX_UP BUTTON_SCROLL_BACK
|
#define ROCKBLOX_UP BUTTON_SCROLL_BACK
|
||||||
|
@ -420,8 +422,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
|
|
||||||
(void)parameter;
|
(void)parameter;
|
||||||
rb = api;
|
rb = api;
|
||||||
|
|
||||||
|
|
|
@ -23,6 +23,8 @@
|
||||||
|
|
||||||
#if !defined(SIMULATOR) && (CONFIG_CPU == SH7034) /* Only for SH targets */
|
#if !defined(SIMULATOR) && (CONFIG_CPU == SH7034) /* Only for SH targets */
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
/* define DUMMY if you only want to "play" with the UI, does no harm */
|
/* define DUMMY if you only want to "play" with the UI, does no harm */
|
||||||
/* #define DUMMY */
|
/* #define DUMMY */
|
||||||
|
|
||||||
|
@ -1010,10 +1012,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
{
|
{
|
||||||
int oldmode;
|
int oldmode;
|
||||||
|
|
||||||
/* this macro should be called as the first thing you do in the plugin.
|
|
||||||
it test that the api version and model the plugin was compiled for
|
|
||||||
matches the machine it is running on */
|
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
rb = api; /* copy to global api pointer */
|
rb = api; /* copy to global api pointer */
|
||||||
|
|
||||||
if (parameter == NULL)
|
if (parameter == NULL)
|
||||||
|
|
|
@ -22,6 +22,8 @@
|
||||||
|
|
||||||
#if MEM <= 8 && !defined(SIMULATOR)
|
#if MEM <= 8 && !defined(SIMULATOR)
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
#define OVL_NAME "/.rockbox/viewers/rockboy.ovl"
|
#define OVL_NAME "/.rockbox/viewers/rockboy.ovl"
|
||||||
#define OVL_DISPLAYNAME "RockBoy"
|
#define OVL_DISPLAYNAME "RockBoy"
|
||||||
|
|
||||||
|
@ -40,10 +42,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
enum plugin_status(*entry_point)(struct plugin_api*, void*);
|
enum plugin_status(*entry_point)(struct plugin_api*, void*);
|
||||||
} header;
|
} header;
|
||||||
|
|
||||||
/* this macro should be called as the first thing you do in the plugin.
|
|
||||||
it test that the api version and model the plugin was compiled for
|
|
||||||
matches the machine it is running on */
|
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
rb = api;
|
rb = api;
|
||||||
|
|
||||||
fh = rb->open(OVL_NAME, O_RDONLY);
|
fh = rb->open(OVL_NAME, O_RDONLY);
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
INCLUDES = -I$(APPSDIR) -I.. -I. -I$(FIRMDIR)/include -I$(FIRMDIR)/export \
|
INCLUDES = -I$(APPSDIR) -I.. -I. -I$(FIRMDIR)/include -I$(FIRMDIR)/export \
|
||||||
-I$(FIRMDIR)/common -I$(FIRMDIR)/drivers -I$(OUTDIR) -I$(BUILDDIR)
|
-I$(FIRMDIR)/common -I$(FIRMDIR)/drivers -I$(OUTDIR) -I$(BUILDDIR)
|
||||||
CFLAGS = $(GCCOPTS) -O3 $(INCLUDES) $(TARGET) $(EXTRA_DEFINES) \
|
CFLAGS = $(GCCOPTS) -O3 $(INCLUDES) $(TARGET) $(EXTRA_DEFINES) \
|
||||||
-DMEM=${MEMORYSIZE} -DPLUGIN
|
-DTARGET_ID=$(TARGET_ID) -DMEM=${MEMORYSIZE} -DPLUGIN
|
||||||
|
|
||||||
ifdef APPEXTRA
|
ifdef APPEXTRA
|
||||||
INCLUDES += $(patsubst %,-I$(APPSDIR)/%,$(subst :, ,$(APPEXTRA)))
|
INCLUDES += $(patsubst %,-I$(APPSDIR)/%,$(subst :, ,$(APPEXTRA)))
|
||||||
|
|
|
@ -36,6 +36,8 @@ const struct {
|
||||||
0x524f564c, /* ROVL */
|
0x524f564c, /* ROVL */
|
||||||
ovl_start_addr, ovl_end_addr, plugin_start
|
ovl_start_addr, ovl_end_addr, plugin_start
|
||||||
};
|
};
|
||||||
|
#else
|
||||||
|
PLUGIN_HEADER
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef USE_IRAM
|
#ifdef USE_IRAM
|
||||||
|
@ -93,11 +95,6 @@ void setmallocpos(void *pointer)
|
||||||
/* this is the plugin entry point */
|
/* this is the plugin entry point */
|
||||||
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
{
|
{
|
||||||
/* this macro should be called as the first thing you do in the plugin.
|
|
||||||
it test that the api version and model the plugin was compiled for
|
|
||||||
matches the machine it is running on */
|
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
|
|
||||||
/* if you are using a global api pointer, don't forget to copy it!
|
/* if you are using a global api pointer, don't forget to copy it!
|
||||||
otherwise you will get lovely "I04: IllInstr" errors... :-) */
|
otherwise you will get lovely "I04: IllInstr" errors... :-) */
|
||||||
rb = api;
|
rb = api;
|
||||||
|
|
|
@ -20,6 +20,8 @@
|
||||||
#include "plugin.h"
|
#include "plugin.h"
|
||||||
#include "ctype.h"
|
#include "ctype.h"
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
static struct plugin_api* rb;
|
static struct plugin_api* rb;
|
||||||
|
|
||||||
#define BUFFER_SIZE 16384
|
#define BUFFER_SIZE 16384
|
||||||
|
@ -150,8 +152,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
char *filename = parameter;
|
char *filename = parameter;
|
||||||
char *p;
|
char *p;
|
||||||
|
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
|
|
||||||
rb = api;
|
rb = api;
|
||||||
|
|
||||||
DEBUGF("%s - %s\n", parameter, &filename[rb->strlen(filename)-4]);
|
DEBUGF("%s - %s\n", parameter, &filename[rb->strlen(filename)-4]);
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
INCLUDES = -I$(APPSDIR) -I.. -I. -I$(FIRMDIR)/include -I$(FIRMDIR)/export \
|
INCLUDES = -I$(APPSDIR) -I.. -I. -I$(FIRMDIR)/include -I$(FIRMDIR)/export \
|
||||||
-I$(FIRMDIR)/common -I$(FIRMDIR)/drivers -I$(OUTDIR) -I$(BUILDDIR)
|
-I$(FIRMDIR)/common -I$(FIRMDIR)/drivers -I$(OUTDIR) -I$(BUILDDIR)
|
||||||
CFLAGS = $(GCCOPTS) -O3 $(INCLUDES) $(TARGET) $(EXTRA_DEFINES) \
|
CFLAGS = $(GCCOPTS) -O3 $(INCLUDES) $(TARGET) $(EXTRA_DEFINES) \
|
||||||
-DMEM=${MEMORYSIZE} -DPLUGIN
|
-DTARGET_ID=$(TARGET_ID) -DMEM=${MEMORYSIZE} -DPLUGIN
|
||||||
|
|
||||||
ifdef APPEXTRA
|
ifdef APPEXTRA
|
||||||
INCLUDES += $(patsubst %,-I$(APPSDIR)/%,$(subst :, ,$(APPEXTRA)))
|
INCLUDES += $(patsubst %,-I$(APPSDIR)/%,$(subst :, ,$(APPEXTRA)))
|
||||||
|
|
|
@ -21,6 +21,8 @@
|
||||||
#include "token.h"
|
#include "token.h"
|
||||||
#include "dbinterface.h"
|
#include "dbinterface.h"
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
void *audio_bufferbase;
|
void *audio_bufferbase;
|
||||||
void *audio_bufferpointer;
|
void *audio_bufferpointer;
|
||||||
unsigned int audio_buffer_free;
|
unsigned int audio_buffer_free;
|
||||||
|
@ -58,11 +60,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
{
|
{
|
||||||
unsigned char *result,buf[500];
|
unsigned char *result,buf[500];
|
||||||
int parsefd,hits;
|
int parsefd,hits;
|
||||||
/* this macro should be called as the first thing you do in the plugin.
|
|
||||||
it test that the api version and model the plugin was compiled for
|
|
||||||
matches the machine it is running on */
|
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
|
|
||||||
/* if you are using a global api pointer, don't forget to copy it!
|
/* if you are using a global api pointer, don't forget to copy it!
|
||||||
otherwise you will get lovely "I04: IllInstr" errors... :-) */
|
otherwise you will get lovely "I04: IllInstr" errors... :-) */
|
||||||
rb = api;
|
rb = api;
|
||||||
|
|
|
@ -19,6 +19,8 @@
|
||||||
#include "plugin.h"
|
#include "plugin.h"
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
/* variable button definitions */
|
/* variable button definitions */
|
||||||
#if CONFIG_KEYPAD == RECORDER_PAD
|
#if CONFIG_KEYPAD == RECORDER_PAD
|
||||||
#define PUZZLE_QUIT BUTTON_OFF
|
#define PUZZLE_QUIT BUTTON_OFF
|
||||||
|
@ -333,7 +335,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
{
|
{
|
||||||
int i, w, h;
|
int i, w, h;
|
||||||
|
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
(void)parameter;
|
(void)parameter;
|
||||||
rb = api;
|
rb = api;
|
||||||
|
|
||||||
|
|
|
@ -33,6 +33,8 @@ dir is the current direction of the snake - 0=up, 1=right, 2=down, 3=left;
|
||||||
#include "plugin.h"
|
#include "plugin.h"
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
/* variable button definitions */
|
/* variable button definitions */
|
||||||
#if CONFIG_KEYPAD == RECORDER_PAD
|
#if CONFIG_KEYPAD == RECORDER_PAD
|
||||||
#define SNAKE_QUIT BUTTON_OFF
|
#define SNAKE_QUIT BUTTON_OFF
|
||||||
|
@ -344,7 +346,6 @@ void game_init(void) {
|
||||||
|
|
||||||
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
{
|
{
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
(void)(parameter);
|
(void)(parameter);
|
||||||
rb = api;
|
rb = api;
|
||||||
|
|
||||||
|
|
|
@ -30,6 +30,8 @@ Head and Tail are stored
|
||||||
#include "plugin.h"
|
#include "plugin.h"
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
#define WIDTH 28
|
#define WIDTH 28
|
||||||
#define HEIGHT 16
|
#define HEIGHT 16
|
||||||
|
|
||||||
|
@ -1425,7 +1427,6 @@ void game_init(void)
|
||||||
|
|
||||||
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
{
|
{
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
(void)(parameter);
|
(void)(parameter);
|
||||||
rb = api;
|
rb = api;
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,8 @@
|
||||||
#include "plugin.h"
|
#include "plugin.h"
|
||||||
#include "playergfx.h"
|
#include "playergfx.h"
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
#define NUM_PARTICLES (LCD_WIDTH * LCD_HEIGHT / 72)
|
#define NUM_PARTICLES (LCD_WIDTH * LCD_HEIGHT / 72)
|
||||||
#define SNOW_HEIGHT LCD_HEIGHT
|
#define SNOW_HEIGHT LCD_HEIGHT
|
||||||
|
@ -161,7 +163,6 @@ static void snow_init(void)
|
||||||
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
{
|
{
|
||||||
int button;
|
int button;
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
(void)(parameter);
|
(void)(parameter);
|
||||||
rb = api;
|
rb = api;
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,8 @@
|
||||||
|
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
#define SOKOBAN_TITLE "Sokoban"
|
#define SOKOBAN_TITLE "Sokoban"
|
||||||
#define SOKOBAN_TITLE_FONT 2
|
#define SOKOBAN_TITLE_FONT 2
|
||||||
|
|
||||||
|
@ -896,7 +898,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
int w, h;
|
int w, h;
|
||||||
int len;
|
int len;
|
||||||
|
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
(void)(parameter);
|
(void)(parameter);
|
||||||
rb = api;
|
rb = api;
|
||||||
|
|
||||||
|
|
|
@ -39,6 +39,8 @@ use F3 to put card on top of the remains' stack on one of the 4 final stacks
|
||||||
|
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
/* here is a global api struct pointer. while not strictly necessary,
|
/* here is a global api struct pointer. while not strictly necessary,
|
||||||
it's nice not to have to pass the api pointer in all function calls
|
it's nice not to have to pass the api pointer in all function calls
|
||||||
in the plugin */
|
in the plugin */
|
||||||
|
@ -1541,7 +1543,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
int result;
|
int result;
|
||||||
|
|
||||||
/* plugin init */
|
/* plugin init */
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
(void)parameter;
|
(void)parameter;
|
||||||
rb = api;
|
rb = api;
|
||||||
/* end of plugin init */
|
/* end of plugin init */
|
||||||
|
|
|
@ -55,6 +55,8 @@
|
||||||
* TODO: Implement a merge sort for files larger than the buffer
|
* TODO: Implement a merge sort for files larger than the buffer
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
static struct plugin_api* rb;
|
static struct plugin_api* rb;
|
||||||
|
|
||||||
int buf_size;
|
int buf_size;
|
||||||
|
@ -178,7 +180,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
{
|
{
|
||||||
char *buf;
|
char *buf;
|
||||||
int rc;
|
int rc;
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
|
|
||||||
filename = (char *)parameter;
|
filename = (char *)parameter;
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,8 @@
|
||||||
#ifndef SIMULATOR
|
#ifndef SIMULATOR
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
/* variable button definitions */
|
/* variable button definitions */
|
||||||
#if CONFIG_KEYPAD == RECORDER_PAD
|
#if CONFIG_KEYPAD == RECORDER_PAD
|
||||||
#define SPLITEDIT_QUIT BUTTON_OFF
|
#define SPLITEDIT_QUIT BUTTON_OFF
|
||||||
|
|
|
@ -19,6 +19,8 @@
|
||||||
#include "plugin.h"
|
#include "plugin.h"
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
/* file which contains the levels */
|
/* file which contains the levels */
|
||||||
#define STAR_LEVELS_FILE "/.rockbox/star/levels.txt"
|
#define STAR_LEVELS_FILE "/.rockbox/star/levels.txt"
|
||||||
|
|
||||||
|
@ -877,7 +879,6 @@ static int star_menu(void)
|
||||||
*/
|
*/
|
||||||
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
{
|
{
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
(void)parameter;
|
(void)parameter;
|
||||||
rb = api;
|
rb = api;
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,8 @@
|
||||||
|
|
||||||
#ifdef HAVE_LCD_BITMAP /* and also not for the Player */
|
#ifdef HAVE_LCD_BITMAP /* and also not for the Player */
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
/******************************* Globals ***********************************/
|
/******************************* Globals ***********************************/
|
||||||
|
|
||||||
static struct plugin_api* rb; /* global api struct pointer */
|
static struct plugin_api* rb; /* global api struct pointer */
|
||||||
|
@ -251,13 +253,6 @@ int plugin_main(void)
|
||||||
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
/*
|
|
||||||
* this macro should be called as the first thing you do in the plugin.
|
|
||||||
* it test that the api version and model the plugin was compiled for
|
|
||||||
* matches the machine it is running on
|
|
||||||
*/
|
|
||||||
|
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
|
|
||||||
rb = api; // copy to global api pointer
|
rb = api; // copy to global api pointer
|
||||||
(void)parameter;
|
(void)parameter;
|
||||||
|
|
|
@ -18,6 +18,8 @@
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
#include "plugin.h"
|
#include "plugin.h"
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
static struct plugin_api* rb;
|
static struct plugin_api* rb;
|
||||||
static int files, dirs;
|
static int files, dirs;
|
||||||
static int lasttick;
|
static int lasttick;
|
||||||
|
@ -100,7 +102,6 @@ void traversedir(char* location, char* name)
|
||||||
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
{
|
{
|
||||||
int button;
|
int button;
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
|
|
||||||
(void)parameter;
|
(void)parameter;
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,8 @@
|
||||||
|
|
||||||
#include "plugin.h"
|
#include "plugin.h"
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
#define LAP_LINES 6
|
#define LAP_LINES 6
|
||||||
#define TIMER_Y 1
|
#define TIMER_Y 1
|
||||||
|
@ -121,7 +123,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
int done = false;
|
int done = false;
|
||||||
bool update_lap = true;
|
bool update_lap = true;
|
||||||
|
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
(void)parameter;
|
(void)parameter;
|
||||||
rb = api;
|
rb = api;
|
||||||
|
|
||||||
|
|
|
@ -57,11 +57,11 @@ Example ".ss" file, and one with a saved state:
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "plugin.h"
|
#include "plugin.h"
|
||||||
#include "button.h"
|
|
||||||
#include "lcd.h"
|
|
||||||
|
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
#define STATE_FILE PLUGIN_DIR "/sudoku.state"
|
#define STATE_FILE PLUGIN_DIR "/sudoku.state"
|
||||||
#define GAMES_FILE PLUGIN_DIR "/sudoku.levels"
|
#define GAMES_FILE PLUGIN_DIR "/sudoku.levels"
|
||||||
|
|
||||||
|
@ -2429,7 +2429,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
struct sudoku_state_t state;
|
struct sudoku_state_t state;
|
||||||
|
|
||||||
/* plugin init */
|
/* plugin init */
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
rb = api;
|
rb = api;
|
||||||
/* end of plugin init */
|
/* end of plugin init */
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,8 @@
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
#include "plugin.h"
|
#include "plugin.h"
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
static struct plugin_api* rb;
|
static struct plugin_api* rb;
|
||||||
|
|
||||||
static char *audiobuf;
|
static char *audiobuf;
|
||||||
|
@ -265,8 +267,6 @@ static bool vbr_fix(char *selected_file)
|
||||||
|
|
||||||
enum plugin_status plugin_start(struct plugin_api* api, void *parameter)
|
enum plugin_status plugin_start(struct plugin_api* api, void *parameter)
|
||||||
{
|
{
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
|
|
||||||
rb = api;
|
rb = api;
|
||||||
|
|
||||||
if (!parameter)
|
if (!parameter)
|
||||||
|
|
|
@ -32,6 +32,8 @@
|
||||||
#ifndef SIMULATOR // not for simulator by now
|
#ifndef SIMULATOR // not for simulator by now
|
||||||
#ifdef HAVE_LCD_BITMAP // and definitely not for the Player, haha
|
#ifdef HAVE_LCD_BITMAP // and definitely not for the Player, haha
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
/* variable button definitions */
|
/* variable button definitions */
|
||||||
#if CONFIG_KEYPAD == RECORDER_PAD
|
#if CONFIG_KEYPAD == RECORDER_PAD
|
||||||
#define VIDEO_STOP_SEEK BUTTON_PLAY
|
#define VIDEO_STOP_SEEK BUTTON_PLAY
|
||||||
|
@ -984,11 +986,6 @@ int main(char* filename)
|
||||||
|
|
||||||
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
{
|
{
|
||||||
/* this macro should be called as the first thing you do in the plugin.
|
|
||||||
it test that the api version and model the plugin was compiled for
|
|
||||||
matches the machine it is running on */
|
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
|
|
||||||
rb = api; // copy to global api pointer
|
rb = api; // copy to global api pointer
|
||||||
|
|
||||||
if (parameter == NULL)
|
if (parameter == NULL)
|
||||||
|
|
|
@ -20,9 +20,7 @@
|
||||||
#include "plugin.h"
|
#include "plugin.h"
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
|
|
||||||
#if PLUGIN_API_VERSION < 3
|
PLUGIN_HEADER
|
||||||
#error Scrollbar function requires PLUGIN_API_VERSION 3 at least
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define SETTINGS_FILE "/.rockbox/viewers/viewer.dat"
|
#define SETTINGS_FILE "/.rockbox/viewers/viewer.dat"
|
||||||
|
|
||||||
|
@ -1022,7 +1020,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* file)
|
||||||
int i;
|
int i;
|
||||||
int ok;
|
int ok;
|
||||||
|
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
rb = api;
|
rb = api;
|
||||||
|
|
||||||
if (!file)
|
if (!file)
|
||||||
|
|
|
@ -19,6 +19,8 @@
|
||||||
|
|
||||||
#if defined(HAVE_LCD_BITMAP) && (CONFIG_CODEC != SWCODEC)
|
#if defined(HAVE_LCD_BITMAP) && (CONFIG_CODEC != SWCODEC)
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
/* variable button definitions */
|
/* variable button definitions */
|
||||||
#if CONFIG_KEYPAD == RECORDER_PAD
|
#if CONFIG_KEYPAD == RECORDER_PAD
|
||||||
#define VUMETER_QUIT BUTTON_OFF
|
#define VUMETER_QUIT BUTTON_OFF
|
||||||
|
@ -427,7 +429,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) {
|
||||||
int button;
|
int button;
|
||||||
int lastbutton = BUTTON_NONE;
|
int lastbutton = BUTTON_NONE;
|
||||||
|
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
(void) parameter;
|
(void) parameter;
|
||||||
rb = api;
|
rb = api;
|
||||||
|
|
||||||
|
|
|
@ -20,6 +20,8 @@
|
||||||
|
|
||||||
#include <codecs/libwavpack/wavpack.h>
|
#include <codecs/libwavpack/wavpack.h>
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
#define SAMPLES_PER_BLOCK 22050
|
#define SAMPLES_PER_BLOCK 22050
|
||||||
|
|
||||||
static struct plugin_api* rb;
|
static struct plugin_api* rb;
|
||||||
|
@ -287,8 +289,6 @@ static int wav2wv (char *filename)
|
||||||
|
|
||||||
enum plugin_status plugin_start(struct plugin_api* api, void *parameter)
|
enum plugin_status plugin_start(struct plugin_api* api, void *parameter)
|
||||||
{
|
{
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
|
|
||||||
rb = api;
|
rb = api;
|
||||||
|
|
||||||
if (!parameter)
|
if (!parameter)
|
||||||
|
|
|
@ -20,6 +20,8 @@
|
||||||
|
|
||||||
#if defined(HAVE_LCD_BITMAP) && (CONFIG_KEYPAD == RECORDER_PAD)
|
#if defined(HAVE_LCD_BITMAP) && (CONFIG_KEYPAD == RECORDER_PAD)
|
||||||
|
|
||||||
|
PLUGIN_HEADER
|
||||||
|
|
||||||
/* size of the field the worm lives in */
|
/* size of the field the worm lives in */
|
||||||
#define FIELD_RECT_X 1
|
#define FIELD_RECT_X 1
|
||||||
#define FIELD_RECT_Y 1
|
#define FIELD_RECT_Y 1
|
||||||
|
@ -1891,7 +1893,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
bool worm_dead = false;
|
bool worm_dead = false;
|
||||||
int button;
|
int button;
|
||||||
|
|
||||||
TEST_PLUGIN_API(api);
|
|
||||||
(void)(parameter);
|
(void)(parameter);
|
||||||
|
|
||||||
rb = api;
|
rb = api;
|
||||||
|
|
6
tools/configure
vendored
6
tools/configure
vendored
|
@ -427,7 +427,7 @@ appsdir='\$(ROOTDIR)/apps'
|
||||||
echo "15 - iPod Video"
|
echo "15 - iPod Video"
|
||||||
echo "16 - iriver iFP-790"
|
echo "16 - iriver iFP-790"
|
||||||
|
|
||||||
getit=`input`;
|
target_id=`input`;
|
||||||
|
|
||||||
# Set of tools built for all target platforms:
|
# Set of tools built for all target platforms:
|
||||||
toolset="rdf2binary convbdf"
|
toolset="rdf2binary convbdf"
|
||||||
|
@ -437,7 +437,7 @@ appsdir='\$(ROOTDIR)/apps'
|
||||||
iriverbitmaptools="$toolset scramble descramble mkboot bmp2rb codepages"
|
iriverbitmaptools="$toolset scramble descramble mkboot bmp2rb codepages"
|
||||||
ipodbitmaptools="$toolset scramble ipod_fw bmp2rb codepages"
|
ipodbitmaptools="$toolset scramble ipod_fw bmp2rb codepages"
|
||||||
|
|
||||||
case $getit in
|
case $target_id in
|
||||||
|
|
||||||
1)
|
1)
|
||||||
archos="player"
|
archos="player"
|
||||||
|
@ -881,6 +881,7 @@ sed > Makefile \
|
||||||
-e "s,@ROOTDIR@,${rootdir},g" \
|
-e "s,@ROOTDIR@,${rootdir},g" \
|
||||||
-e "s,@DEBUG@,${debug},g" \
|
-e "s,@DEBUG@,${debug},g" \
|
||||||
-e "s,@MEMORY@,${memory},g" \
|
-e "s,@MEMORY@,${memory},g" \
|
||||||
|
-e "s,@TARGET_ID@,${target_id},g" \
|
||||||
-e "s,@TARGET@,${target},g" \
|
-e "s,@TARGET@,${target},g" \
|
||||||
-e "s,@ARCHOS@,${archos},g" \
|
-e "s,@ARCHOS@,${archos},g" \
|
||||||
-e "s,@LANGUAGE@,${language},g" \
|
-e "s,@LANGUAGE@,${language},g" \
|
||||||
|
@ -927,6 +928,7 @@ export DEBUG=@DEBUG@
|
||||||
export ARCHOS=@ARCHOS@
|
export ARCHOS=@ARCHOS@
|
||||||
export ARCHOSROM=@ARCHOSROM@
|
export ARCHOSROM=@ARCHOSROM@
|
||||||
export FLASHFILE=@FLASHFILE@
|
export FLASHFILE=@FLASHFILE@
|
||||||
|
export TARGET_ID=@TARGET_ID@
|
||||||
export TARGET=@TARGET@
|
export TARGET=@TARGET@
|
||||||
export OBJDIR=@PWD@
|
export OBJDIR=@PWD@
|
||||||
export BUILDDIR=@PWD@
|
export BUILDDIR=@PWD@
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue