Julius 4.2
|
00001 00018 /* 00019 * Copyright (c) 1991-2011 Kawahara Lab., Kyoto University 00020 * Copyright (c) 2000-2005 Shikano Lab., Nara Institute of Science and Technology 00021 * Copyright (c) 2005-2011 Julius project team, Nagoya Institute of Technology, Nagoya Institute of Technology 00022 * All rights reserved 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 /* include headers for dynamic loading */ 00091 /* unix, cygwin = dlopen */ 00092 /* mingw, VS = non (should emulate using win32 func.) */ 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 /* dlerror() is defined in plugins.c */ 00103 # define RTLD_LAZY 0 /* dummy */ 00104 # endif 00105 #else /* UNIX */ 00106 # include <dlfcn.h> 00107 #endif 00108 00109 #endif /* __JULIUS_PLUGIN__ */