comparison src/audacious/plugin.h @ 3706:fc17623eb561

Export MIME/Custom URI APIs
author William Pitcock <nenolod@atheme.org>
date Sun, 07 Oct 2007 18:00:57 -0500
parents 38259e9394a2
children 1baa8e00c9d7
comparison
equal deleted inserted replaced
3705:38259e9394a2 3706:fc17623eb561
40 #include "audacious/vfs.h" 40 #include "audacious/vfs.h"
41 #include "audacious/tuple.h" 41 #include "audacious/tuple.h"
42 #include "audacious/tuple_formatter.h" 42 #include "audacious/tuple_formatter.h"
43 #include "audacious/eventqueue.h" 43 #include "audacious/eventqueue.h"
44 #include "audacious/configdb.h" 44 #include "audacious/configdb.h"
45 #include "audacious/mime.h"
46 #include "audacious/custom_uri.h"
45 47
46 #define PLUGIN(x) ((Plugin *)(x)) 48 #define PLUGIN(x) ((Plugin *)(x))
47 #define INPUT_PLUGIN(x) ((InputPlugin *)(x)) 49 #define INPUT_PLUGIN(x) ((InputPlugin *)(x))
48 #define OUTPUT_PLUGIN(x) ((OutputPlugin *)(x)) 50 #define OUTPUT_PLUGIN(x) ((OutputPlugin *)(x))
49 #define EFFECT_PLUGIN(x) ((EffectPlugin *)(x)) 51 #define EFFECT_PLUGIN(x) ((EffectPlugin *)(x))
265 gchar *(*tuple_formatter_process_expr)(Tuple *tuple, const gchar *expression, 267 gchar *(*tuple_formatter_process_expr)(Tuple *tuple, const gchar *expression,
266 const gchar *argument); 268 const gchar *argument);
267 gchar *(*tuple_formatter_process_function)(Tuple *tuple, const gchar *expression, 269 gchar *(*tuple_formatter_process_function)(Tuple *tuple, const gchar *expression,
268 const gchar *argument); 270 const gchar *argument);
269 gchar *(*tuple_formatter_process_construct)(Tuple *tuple, const gchar *string); 271 gchar *(*tuple_formatter_process_construct)(Tuple *tuple, const gchar *string);
272
273 /* MIME types */
274 InputPlugin *(*mime_get_plugin)(const gchar *mimetype);
275 void (*mime_set_plugin)(const gchar *mimetype, InputPlugin *ip);
276
277 /* Custom URI registry */
278 InputPlugin *(*uri_get_plugin)(const gchar *filename);
279 void (*uri_set_plugin)(const gchar *uri, InputPlugin *ip);
270 280
271 }; 281 };
272 282
273 /* Convenience macros for accessing the public API. */ 283 /* Convenience macros for accessing the public API. */
274 /* public name vtable mapping */ 284 /* public name vtable mapping */
347 #define aud_tuple_formatter_register_function _audvt->tuple_formatter_register_function 357 #define aud_tuple_formatter_register_function _audvt->tuple_formatter_register_function
348 #define aud_tuple_formatter_process_expr _audvt->tuple_formatter_process_expr 358 #define aud_tuple_formatter_process_expr _audvt->tuple_formatter_process_expr
349 #define aud_tuple_formatter_process_function _audvt->tuple_formatter_process_function 359 #define aud_tuple_formatter_process_function _audvt->tuple_formatter_process_function
350 #define aud_tuple_formatter_process_construct _audvt->tuple_formatter_process_construct 360 #define aud_tuple_formatter_process_construct _audvt->tuple_formatter_process_construct
351 361
362 #define aud_mime_get_plugin _audvt->mime_get_plugin
363 #define aud_mime_set_plugin _audvt->mime_set_plugin
364
365 #define aud_uri_get_plugin _audvt->uri_get_plugin
366 #define aud_uri_set_plugin _audvt->uri_set_plugin
367
352 /* for multi-file plugins :( */ 368 /* for multi-file plugins :( */
353 extern struct _AudaciousFuncTableV1 *_audvt; 369 extern struct _AudaciousFuncTableV1 *_audvt;
354 370
355 #define DECLARE_PLUGIN(name, init, fini, ...) \ 371 #define DECLARE_PLUGIN(name, init, fini, ...) \
356 G_BEGIN_DECLS \ 372 G_BEGIN_DECLS \
530 /* So that input plugins can get the title formatting information */ 546 /* So that input plugins can get the title formatting information */
531 G_CONST_RETURN gchar * get_gentitle_format(void); 547 G_CONST_RETURN gchar * get_gentitle_format(void);
532 548
533 G_END_DECLS 549 G_END_DECLS
534 550
535 #include "audacious/mime.h"
536 #include "audacious/custom_uri.h"
537
538 #endif 551 #endif