summaryrefslogtreecommitdiff
path: root/apps/plugin.h
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugin.h')
-rw-r--r--apps/plugin.h14
1 files changed, 13 insertions, 1 deletions
diff --git a/apps/plugin.h b/apps/plugin.h
index 3d6859b0d3..5bebcd701f 100644
--- a/apps/plugin.h
+++ b/apps/plugin.h
@@ -43,7 +43,11 @@
43#include "mpeg.h" 43#include "mpeg.h"
44 44
45/* increase this every time the api struct changes */ 45/* increase this every time the api struct changes */
46#define PLUGIN_API_VERSION 6 46#define PLUGIN_API_VERSION 7
47
48/* update this to latest version if a change to the api struct breaks
49 backwards compatibility */
50#define PLUGIN_MIN_API_VERSION 6
47 51
48/* plugin return codes */ 52/* plugin return codes */
49enum plugin_status { 53enum plugin_status {
@@ -75,6 +79,12 @@ do { \
75 return _rc_; \ 79 return _rc_; \
76} while(0) 80} while(0)
77 81
82/* NOTE: To support backwards compatibility, only add new functions at
83 the end of the structure. Every time you add a new function,
84 remember to increase PLUGIN_API_VERSION. If you make changes to the
85 existing APIs then also update PLUGIN_MIN_API_VERSION to current
86 version
87 */
78struct plugin_api { 88struct plugin_api {
79 /* these two fields must always be first, to ensure 89 /* these two fields must always be first, to ensure
80 TEST_PLUGIN_API will always work */ 90 TEST_PLUGIN_API will always work */
@@ -170,10 +180,12 @@ struct plugin_api {
170 struct mp3entry* (*mpeg_current_track)(void); 180 struct mp3entry* (*mpeg_current_track)(void);
171 int (*atoi)(const char *str); 181 int (*atoi)(const char *str);
172 struct tm* (*get_time)(void); 182 struct tm* (*get_time)(void);
183 void* (*plugin_get_buffer)(int* buffer_size);
173}; 184};
174 185
175/* defined by the plugin loader (plugin.c) */ 186/* defined by the plugin loader (plugin.c) */
176int plugin_load(char* plugin, void* parameter); 187int plugin_load(char* plugin, void* parameter);
188void* plugin_get_buffer(int *buffer_size);
177 189
178/* defined by the plugin */ 190/* defined by the plugin */
179enum plugin_status plugin_start(struct plugin_api* rockbox, void* parameter) 191enum plugin_status plugin_start(struct plugin_api* rockbox, void* parameter)