Mercurial > audlegacy
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); |