Mercurial > audlegacy
diff src/audacious/pluginenum.c @ 3682:84bc78954db5
Start working on exporting all public functions via a vtable. The API version will be bumped to 7 once I am done and -Wl,-export-dynamic is removed.
author | William Pitcock <nenolod@atheme.org> |
---|---|
date | Mon, 01 Oct 2007 23:00:46 -0500 |
parents | 6aea4fb32ef4 |
children | 4284187479d7 |
line wrap: on
line diff
--- a/src/audacious/pluginenum.c Mon Oct 01 14:16:52 2007 -0500 +++ b/src/audacious/pluginenum.c Mon Oct 01 23:00:46 2007 -0500 @@ -57,6 +57,35 @@ NULL }; +/*****************************************************************/ + +static struct _AudaciousFuncTableV1 _aud_papi_v1 = { + .vfs_fopen = vfs_fopen, + .vfs_fclose = vfs_fclose, + .vfs_dup = vfs_dup, + .vfs_fread = vfs_fread, + .vfs_fwrite = vfs_fwrite, + .vfs_getc = vfs_getc, + .vfs_ungetc = vfs_ungetc, + .vfs_fgets = vfs_fgets, + .vfs_fseek = vfs_fseek, + .vfs_rewind = vfs_rewind, + .vfs_ftell = vfs_ftell, + .vfs_feof = vfs_feof, + .vfs_file_test = vfs_file_test, + .vfs_is_writeable = vfs_is_writeable, + .vfs_truncate = vfs_truncate, + .vfs_fsize = vfs_fsize, + .vfs_get_metadata = vfs_get_metadata, + .vfs_fprintf = vfs_fprintf, + .vfs_register_transport = vfs_register_transport, + .vfs_file_get_contents = vfs_file_get_contents, + .vfs_is_remote = vfs_is_remote, + .vfs_is_streaming = vfs_is_streaming, +} + +/*****************************************************************/ + GList *lowlevel_list = NULL; extern GList *vfs_transports; @@ -371,11 +400,11 @@ /* v2 plugin loading */ if (g_module_symbol(module, "get_plugin_info", &func)) { - PluginHeader *(*header_func_p)() = func; + PluginHeader *(*header_func_p)(struct _AudaciousFuncTableV1 *) = func; PluginHeader *header; /* this should never happen. */ - g_return_if_fail((header = header_func_p()) != NULL); + g_return_if_fail((header = header_func_p(&_aud_papi_v1)) != NULL); plugin2_process(header, module, filename); return;