00001
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef __JULIUS_PLUGIN__
00026 #define __JULIUS_PLUGIN__
00027
00028 #include <sent/stddefs.h>
00029
00034 #define PLUGIN_SUFFIX ".jpi"
00035
00040 #define PLUGIN_FUNCTION_NAMELIST { \
00041 "adin_get_optname", \
00042 "adin_get_configuration", "adin_standby", \
00043 "adin_open", "adin_read", "adin_close", \
00044 "adin_resume", "adin_pause", "adin_terminate", \
00045 "adin_postprocess", "adin_postprocess_triggered", \
00046 "fvin_get_optname", \
00047 "fvin_get_configuration", "fvin_standby", \
00048 "fvin_open", "fvin_read", "fvin_close", \
00049 "fvin_resume", "fvin_pause", "fvin_terminate", \
00050 "fvin_postprocess", \
00051 "calcmix_get_optname", "calcmix", "calcmix_init", "calcmix_free", \
00052 "result_best_str", \
00053 "startup"}
00054
00059 #if defined(_WIN32) && !defined(__CYGWIN32__)
00060 typedef HMODULE PLUGIN_MODULE;
00061 #else
00062 typedef void* PLUGIN_MODULE;
00063 #endif
00064
00069 #define PLUGIN_NONE NULL
00070
00075 typedef void (*FUNC_VOID)();
00076 typedef char * (*FUNC_STR)();
00077 typedef int (*FUNC_INT)();
00078
00083 typedef struct __j_plugin_entry__ {
00084 int id;
00085 int source_id;
00086 FUNC_VOID func;
00087 struct __j_plugin_entry__ *next;
00088 } PLUGIN_ENTRY;
00089
00090
00091
00092
00093 #ifdef _WIN32
00094 # ifdef __CYGWIN32__
00095 # include <dlfcn.h>
00096 # else
00097 # include <windows.h>
00098 # include <errno.h>
00099 # define dlopen(P,G) (void *)LoadLibrary(P)
00100 # define dlsym(D, F) (void *)GetProcAddress((HMODULE)D, F)
00101 # define dlclose(D) FreeLibrary((HMODULE)D)
00102
00103 # define RTLD_LAZY 0
00104 # endif
00105 #else
00106 # include <dlfcn.h>
00107 #endif
00108
00109 #endif