Julius 4.2
libjulius/include/julius/plugin.h
説明を見る。
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__ */