comparison src/audacious/plugin.h @ 3227:2619f4c62abe trunk

added Discovery plugin type
author Cristi Magherusan <majeru@atheme-project.org>
date Fri, 03 Aug 2007 07:20:58 +0300
parents 1596dcb77acd
children 2453bf125b4f
comparison
equal deleted inserted replaced
3226:db3983f423f3 3227:2619f4c62abe
44 #define INPUT_PLUGIN(x) ((InputPlugin *)(x)) 44 #define INPUT_PLUGIN(x) ((InputPlugin *)(x))
45 #define OUTPUT_PLUGIN(x) ((OutputPlugin *)(x)) 45 #define OUTPUT_PLUGIN(x) ((OutputPlugin *)(x))
46 #define EFFECT_PLUGIN(x) ((EffectPlugin *)(x)) 46 #define EFFECT_PLUGIN(x) ((EffectPlugin *)(x))
47 #define GENERAL_PLUGIN(x) ((GeneralPlugin *)(x)) 47 #define GENERAL_PLUGIN(x) ((GeneralPlugin *)(x))
48 #define VIS_PLUGIN(x) ((VisPlugin *)(x)) 48 #define VIS_PLUGIN(x) ((VisPlugin *)(x))
49 #define DISCOVERY_PLUGIN(x) ((DiscoveryPlugin *)(x))
49 50
50 #define LOWLEVEL_PLUGIN(x) ((LowlevelPlugin *)(x)) 51 #define LOWLEVEL_PLUGIN(x) ((LowlevelPlugin *)(x))
51 52
52 #define __AUDACIOUS_NEWVFS__ 53 #define __AUDACIOUS_NEWVFS__
53 #define __AUDACIOUS_PLUGIN_API__ 3 54 #define __AUDACIOUS_PLUGIN_API__ 3
76 typedef struct _InputPlugin InputPlugin; 77 typedef struct _InputPlugin InputPlugin;
77 typedef struct _OutputPlugin OutputPlugin; 78 typedef struct _OutputPlugin OutputPlugin;
78 typedef struct _EffectPlugin EffectPlugin; 79 typedef struct _EffectPlugin EffectPlugin;
79 typedef struct _GeneralPlugin GeneralPlugin; 80 typedef struct _GeneralPlugin GeneralPlugin;
80 typedef struct _VisPlugin VisPlugin; 81 typedef struct _VisPlugin VisPlugin;
81 82 typedef struct _DiscoveryPlugin DiscoveryPlugin;
82 typedef struct _LowlevelPlugin LowlevelPlugin; 83 typedef struct _LowlevelPlugin LowlevelPlugin;
83 84
84 typedef struct _InputPlayback InputPlayback; 85 typedef struct _InputPlayback InputPlayback;
85 86
86 /* 87 /*
100 InputPlugin **ip_list; 101 InputPlugin **ip_list;
101 OutputPlugin **op_list; 102 OutputPlugin **op_list;
102 EffectPlugin **ep_list; 103 EffectPlugin **ep_list;
103 GeneralPlugin **gp_list; 104 GeneralPlugin **gp_list;
104 VisPlugin **vp_list; 105 VisPlugin **vp_list;
106 DiscoveryPlugin **dp_list;
105 } PluginHeader; 107 } PluginHeader;
106 108
107 #define PLUGIN_MAGIC 0x8EAC8DE2 109 #define PLUGIN_MAGIC 0x8EAC8DE2
108 110
109 #define DECLARE_PLUGIN(name, init, fini, ip_list, op_list, ep_list, gp_list, vp_list) \ 111 #define DECLARE_PLUGIN(name, init, fini, ip_list, op_list, ep_list, gp_list, vp_list, dp_list) \
110 G_BEGIN_DECLS \ 112 G_BEGIN_DECLS \
111 static PluginHeader _pluginInfo = { PLUGIN_MAGIC, __AUDACIOUS_PLUGIN_API__, \ 113 static PluginHeader _pluginInfo = { PLUGIN_MAGIC, __AUDACIOUS_PLUGIN_API__, \
112 (gchar *)#name, init, fini, NULL, ip_list, op_list, ep_list, gp_list, \ 114 (gchar *)#name, init, fini, NULL, ip_list, op_list, ep_list, gp_list, \
113 vp_list }; \ 115 vp_list,dp_list }; \
114 G_MODULE_EXPORT PluginHeader *get_plugin_info(void) { \ 116 G_MODULE_EXPORT PluginHeader *get_plugin_info(void) { \
115 return &_pluginInfo; \ 117 return &_pluginInfo; \
116 } \ 118 } \
117 G_END_DECLS 119 G_END_DECLS
118 120
276 void (*playback_stop) (void); 278 void (*playback_stop) (void);
277 void (*render_pcm) (gint16 pcm_data[2][512]); 279 void (*render_pcm) (gint16 pcm_data[2][512]);
278 void (*render_freq) (gint16 freq_data[2][256]); 280 void (*render_freq) (gint16 freq_data[2][256]);
279 }; 281 };
280 282
283 struct _DiscoveryPlugin {
284 gpointer handle;
285 gchar *filename;
286 gchar *description;
287
288 void (*init) (void);
289 void (*cleanup) (void);
290 void (*about) (void);
291 void (*configure) (void);
292 gchar *(*get_devices);
293 };
281 294
282 G_BEGIN_DECLS 295 G_BEGIN_DECLS
283 296
284 /* So that input plugins can get the title formatting information */ 297 /* So that input plugins can get the title formatting information */
285 G_CONST_RETURN gchar * xmms_get_gentitle_format(void); 298 G_CONST_RETURN gchar * xmms_get_gentitle_format(void);