Mercurial > audlegacy
comparison 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 |
comparison
equal
deleted
inserted
replaced
| 3681:7865f8395437 | 3682:84bc78954db5 |
|---|---|
| 55 const gchar *plugin_dir_list[] = { | 55 const gchar *plugin_dir_list[] = { |
| 56 PLUGINSUBS, | 56 PLUGINSUBS, |
| 57 NULL | 57 NULL |
| 58 }; | 58 }; |
| 59 | 59 |
| 60 /*****************************************************************/ | |
| 61 | |
| 62 static struct _AudaciousFuncTableV1 _aud_papi_v1 = { | |
| 63 .vfs_fopen = vfs_fopen, | |
| 64 .vfs_fclose = vfs_fclose, | |
| 65 .vfs_dup = vfs_dup, | |
| 66 .vfs_fread = vfs_fread, | |
| 67 .vfs_fwrite = vfs_fwrite, | |
| 68 .vfs_getc = vfs_getc, | |
| 69 .vfs_ungetc = vfs_ungetc, | |
| 70 .vfs_fgets = vfs_fgets, | |
| 71 .vfs_fseek = vfs_fseek, | |
| 72 .vfs_rewind = vfs_rewind, | |
| 73 .vfs_ftell = vfs_ftell, | |
| 74 .vfs_feof = vfs_feof, | |
| 75 .vfs_file_test = vfs_file_test, | |
| 76 .vfs_is_writeable = vfs_is_writeable, | |
| 77 .vfs_truncate = vfs_truncate, | |
| 78 .vfs_fsize = vfs_fsize, | |
| 79 .vfs_get_metadata = vfs_get_metadata, | |
| 80 .vfs_fprintf = vfs_fprintf, | |
| 81 .vfs_register_transport = vfs_register_transport, | |
| 82 .vfs_file_get_contents = vfs_file_get_contents, | |
| 83 .vfs_is_remote = vfs_is_remote, | |
| 84 .vfs_is_streaming = vfs_is_streaming, | |
| 85 } | |
| 86 | |
| 87 /*****************************************************************/ | |
| 88 | |
| 60 GList *lowlevel_list = NULL; | 89 GList *lowlevel_list = NULL; |
| 61 extern GList *vfs_transports; | 90 extern GList *vfs_transports; |
| 62 | 91 |
| 63 mowgli_dictionary_t *plugin_dict = NULL; | 92 mowgli_dictionary_t *plugin_dict = NULL; |
| 64 | 93 |
| 369 } | 398 } |
| 370 | 399 |
| 371 /* v2 plugin loading */ | 400 /* v2 plugin loading */ |
| 372 if (g_module_symbol(module, "get_plugin_info", &func)) | 401 if (g_module_symbol(module, "get_plugin_info", &func)) |
| 373 { | 402 { |
| 374 PluginHeader *(*header_func_p)() = func; | 403 PluginHeader *(*header_func_p)(struct _AudaciousFuncTableV1 *) = func; |
| 375 PluginHeader *header; | 404 PluginHeader *header; |
| 376 | 405 |
| 377 /* this should never happen. */ | 406 /* this should never happen. */ |
| 378 g_return_if_fail((header = header_func_p()) != NULL); | 407 g_return_if_fail((header = header_func_p(&_aud_papi_v1)) != NULL); |
| 379 | 408 |
| 380 plugin2_process(header, module, filename); | 409 plugin2_process(header, module, filename); |
| 381 return; | 410 return; |
| 382 } | 411 } |
| 383 | 412 |
