comparison src/audacious/plugin.h @ 3735:d41d03630f27

export PlaylistContainer API in vtable.
author William Pitcock <nenolod@atheme.org>
date Sat, 13 Oct 2007 20:35:58 -0500
parents e82ec5cb017c
children 269449ad845e
comparison
equal deleted inserted replaced
3734:e82ec5cb017c 3735:d41d03630f27
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/playlist_container.h"
45 46
46 #define PLUGIN(x) ((Plugin *)(x)) 47 #define PLUGIN(x) ((Plugin *)(x))
47 #define INPUT_PLUGIN(x) ((InputPlugin *)(x)) 48 #define INPUT_PLUGIN(x) ((InputPlugin *)(x))
48 #define OUTPUT_PLUGIN(x) ((OutputPlugin *)(x)) 49 #define OUTPUT_PLUGIN(x) ((OutputPlugin *)(x))
49 #define EFFECT_PLUGIN(x) ((EffectPlugin *)(x)) 50 #define EFFECT_PLUGIN(x) ((EffectPlugin *)(x))
306 307
307 gchar *(*chardet_to_utf8)(const gchar *str, gssize len, 308 gchar *(*chardet_to_utf8)(const gchar *str, gssize len,
308 gsize *arg_bytes_read, gsize *arg_bytes_write, 309 gsize *arg_bytes_read, gsize *arg_bytes_write,
309 GError **arg_error); 310 GError **arg_error);
310 311
312 /* PlaylistContainer API. */
313 void (*playlist_container_register)(PlaylistContainer *plc);
314 void (*playlist_container_unregister)(PlaylistContainer *plc);
315 void (*playlist_container_read)(gchar *filename, gint pos);
316 void (*playlist_container_write)(gchar *filename, gint pos);
317 PlaylistContainer *(*playlist_container_find)(gchar *ext);
311 }; 318 };
312 319
313 /* Convenience macros for accessing the public API. */ 320 /* Convenience macros for accessing the public API. */
314 /* public name vtable mapping */ 321 /* public name vtable mapping */
315 #define aud_vfs_fopen _audvt->vfs_fopen 322 #define aud_vfs_fopen _audvt->vfs_fopen
410 #define aud_str_to_utf8 _audvt->str_to_utf8 417 #define aud_str_to_utf8 _audvt->str_to_utf8
411 #define aud_str_skip_chars _audvt->str_skip_chars 418 #define aud_str_skip_chars _audvt->str_skip_chars
412 #define aud_convert_title_text _audvt->convert_title_text 419 #define aud_convert_title_text _audvt->convert_title_text
413 #define aud_chardet_to_utf8 _audvt->chardet_to_utf8 420 #define aud_chardet_to_utf8 _audvt->chardet_to_utf8
414 421
422 #define aud_playlist_container_register _audvt->playlist_container_register
423 #define aud_playlist_container_unregister _audvt->playlist_container_unregister
424 #define aud_playlist_container_read _audvt->playlist_container_read
425 #define aud_playlist_container_write _audvt->playlist_container_write
426 #define aud_playlist_container_find _audvt->playlist_container_find
427
415 /* for multi-file plugins :( */ 428 /* for multi-file plugins :( */
416 extern struct _AudaciousFuncTableV1 *_audvt; 429 extern struct _AudaciousFuncTableV1 *_audvt;
417 430
418 #define DECLARE_PLUGIN(name, init, fini, ...) \ 431 #define DECLARE_PLUGIN(name, init, fini, ...) \
419 G_BEGIN_DECLS \ 432 G_BEGIN_DECLS \