diff options
author | Andrew Mahone <andrew.mahone@gmail.com> | 2009-01-23 09:51:26 +0000 |
---|---|---|
committer | Andrew Mahone <andrew.mahone@gmail.com> | 2009-01-23 09:51:26 +0000 |
commit | 44554e60756288e99bf664ea87f86dc482006eff (patch) | |
tree | d51b47610bf3c5b58b4a548af8fed1b2728cbb27 /apps/codecs.h | |
parent | 44f88585cb79a6decae347954e4a5d80e33a001e (diff) |
initialize the codecs API in the codec loader, using the same method as used in the plugin loader
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19824 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/codecs.h')
-rw-r--r-- | apps/codecs.h | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/apps/codecs.h b/apps/codecs.h index 64db750d6a..e603c8b35b 100644 --- a/apps/codecs.h +++ b/apps/codecs.h @@ -75,12 +75,12 @@ #define CODEC_ENC_MAGIC 0x52454E43 /* RENC */ /* increase this every time the api struct changes */ -#define CODEC_API_VERSION 29 +#define CODEC_API_VERSION 30 /* 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 CODEC_MIN_API_VERSION 29 +#define CODEC_MIN_API_VERSION 30 /* codec return codes */ enum codec_status { @@ -243,7 +243,8 @@ struct codec_header { unsigned short api_version; unsigned char *load_addr; unsigned char *end_addr; - enum codec_status(*entry_point)(struct codec_api*); + enum codec_status(*entry_point)(void); + struct codec_api **api; }; extern unsigned char codecbuf[]; @@ -259,13 +260,13 @@ extern unsigned char plugin_end_addr[]; const struct codec_header __header \ __attribute__ ((section (".header")))= { \ CODEC_MAGIC, TARGET_ID, CODEC_API_VERSION, \ - plugin_start_addr, plugin_end_addr, codec_start }; + plugin_start_addr, plugin_end_addr, codec_start, &ci }; /* encoders */ #define CODEC_ENC_HEADER \ const struct codec_header __header \ __attribute__ ((section (".header")))= { \ CODEC_ENC_MAGIC, TARGET_ID, CODEC_API_VERSION, \ - plugin_start_addr, plugin_end_addr, codec_start }; + plugin_start_addr, plugin_end_addr, codec_start, &ci }; #else /* def SIMULATOR */ /* decoders */ @@ -273,12 +274,12 @@ extern unsigned char plugin_end_addr[]; const struct codec_header __header \ __attribute__((visibility("default"))) = { \ CODEC_MAGIC, TARGET_ID, CODEC_API_VERSION, \ - NULL, NULL, codec_start }; + NULL, NULL, codec_start, &ci }; /* encoders */ #define CODEC_ENC_HEADER \ const struct codec_header __header = { \ CODEC_ENC_MAGIC, TARGET_ID, CODEC_API_VERSION, \ - NULL, NULL, codec_start }; + NULL, NULL, codec_start, &ci }; #endif /* SIMULATOR */ #endif /* CODEC */ @@ -291,7 +292,7 @@ int codec_load_buf(unsigned int hid, struct codec_api *api); int codec_load_file(const char* codec, struct codec_api *api); /* defined by the codec */ -enum codec_status codec_start(struct codec_api* rockbox); +enum codec_status codec_start(void); enum codec_status codec_main(void); #ifndef CACHE_FUNCTION_WRAPPERS |