00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00112
00115
00117 #if !defined(FEAPI_HEADER_INCLUDED)
00118 #define FEAPI_HEADER_INCLUDED
00119
00120 #ifdef __cplusplus
00121 extern "C" {
00122 #endif
00123
00125
00131 typedef enum FEAPI_MaxStringLengths_t_tag
00132 {
00133 FEAPI_kMaxNameLength = 1024,
00134 FEAPI_kMaxUnitLength = 1024,
00135 FEAPI_kMaxDescriptionLength = 4096
00136
00137 } FEAPI_MaxStringLengths_t;
00138
00140 typedef struct FEAPI_SignalDescription_t_tag
00141 {
00142 char acName[FEAPI_kMaxNameLength];
00143 char acUnit[FEAPI_kMaxUnitLength];
00144 char acDescription[FEAPI_kMaxDescriptionLength];
00145 float fRangeMin;
00146 float fRangeMax;
00147 float fQuantizedTo;
00148 float fSampleRate;
00149 } FEAPI_SignalDescription_t;
00150
00151
00153 typedef struct FEAPI_ParameterDescription_t_tag
00154 {
00155 char acName[FEAPI_kMaxNameLength];
00156 char acUnit[FEAPI_kMaxUnitLength];
00157 char acDescription[FEAPI_kMaxDescriptionLength];
00158 float fRangeMin,
00159 fRangeMax,
00160 fDefaultValue;
00161 float fQuantizedTo;
00162 int bIsChangeableInRealTime;
00163 } FEAPI_ParameterDescription_t;
00164
00165
00167 typedef struct FEAPI_UserData_t_tag
00168 {
00169 char *pcUserString;
00170 void *pcUserData;
00171 } FEAPI_UserData_t;
00172
00173
00175 typedef void* FEAPI_PluginInstance_t;
00176
00177
00180 typedef double FEAPI_TimeStamp_t;
00181
00182
00185 typedef float FEAPI_Signal_t;
00186
00187
00192 typedef enum FEAPI_Error_t_tag
00193 {
00194 FEAPI_kNoError = 0,
00195 FEAPI_kUnspecifiedError = -1,
00196 FEAPI_kIndexOutOfRangeError = -2,
00197 FEAPI_kInvalidPointerError = -3,
00198 FEAPI_kUnknownError = -9999
00199 } FEAPI_Error_t;
00200
00201
00203 typedef enum FEAPI_VersionInfo_t_tag
00204 {
00205 FEAPI_kMajorVersion = 0,
00206 FEAPI_kMinorVersion = 1,
00207 FEAPI_kSubVersion = 2
00208 } FEAPI_VersionInfo_t;
00209
00210
00212 typedef enum FEAPI_PluginProperty_t_tag
00213 {
00214 FEAPI_kMinSampleRate = 0,
00215 FEAPI_kMaxSampleRate = 1,
00216 FEAPI_kMinChannels = 2,
00217 FEAPI_kMaxChannels = 3,
00218 FEAPI_kMinFrameSize = 4,
00219 FEAPI_kMaxFrameSize = 5,
00220 FEAPI_kOptFrameSize = 6
00221 } FEAPI_PluginProperty_t;
00222
00225
00226
00239 typedef FEAPI_Error_t (*FEAPI_CreatePluginInstance_t) ( FEAPI_PluginInstance_t *phInstanceHandle );
00240
00247 typedef FEAPI_Error_t (*FEAPI_DestroyPluginInstance_t) ( FEAPI_PluginInstance_t *phInstanceHandle );
00248
00261 typedef FEAPI_Error_t (*FEAPI_InitializePlugin_t) (FEAPI_PluginInstance_t hInstanceHandle,
00262 float fInputSampleRate,
00263 int iNumberOfAudioChannels,
00264 int iHostApiMajorVersion,
00265 FEAPI_UserData_t *pstUserData);
00266
00267
00276 typedef unsigned int (*FEAPI_GetPluginAPIVersion_t) ( FEAPI_VersionInfo_t eAPIMajorMinorOrSubVersion );
00277
00278
00286 typedef FEAPI_Error_t (*FEAPI_GetPluginName_t) ( FEAPI_PluginInstance_t hInstanceHandle,
00287 char *pcPluginName);
00288
00296 typedef FEAPI_Error_t (*FEAPI_GetPluginVendor_t) (FEAPI_PluginInstance_t hInstanceHandle,
00297 char *pcPluginVendor);
00298
00306 typedef float (*FEAPI_GetPluginProperty_t) (FEAPI_PluginInstance_t hInstanceHandle,
00307 FEAPI_PluginProperty_t ePluginProperty);
00308
00316 typedef FEAPI_Error_t (*FEAPI_GetPluginId_t) (FEAPI_PluginInstance_t hInstanceHandle,
00317 char *pcPluginId);
00318
00326 typedef unsigned int (*FEAPI_GetPluginVendorVersion_t) ( FEAPI_PluginInstance_t hInstanceHandle,
00327 FEAPI_VersionInfo_t ePluginMajorMinorOrSubVersion);
00328
00336 typedef FEAPI_Error_t (*FEAPI_GetPluginDescription_t) (FEAPI_PluginInstance_t hInstanceHandle,
00337 char *pcPluginDescription);
00338
00346 typedef FEAPI_Error_t (*FEAPI_GetPluginCopyright_t) (FEAPI_PluginInstance_t hInstanceHandle,
00347 char *pcPluginCopyright);
00348
00358 typedef unsigned int (*FEAPI_GetPluginNumOfInputs_t) (FEAPI_PluginInstance_t hInstanceHandle);
00359
00368 typedef FEAPI_Error_t (*FEAPI_GetPluginInputDescription_t) (FEAPI_PluginInstance_t hInstanceHandle,
00369 int iInputIndex,
00370 FEAPI_SignalDescription_t *pstInputDescription);
00371
00378 typedef unsigned int (*FEAPI_GetPluginNumOfParameters_t) (FEAPI_PluginInstance_t hInstanceHandle);
00379
00388 typedef FEAPI_Error_t (*FEAPI_GetPluginParameterDescription_t) (FEAPI_PluginInstance_t hInstanceHandle,
00389 int iParameterIndex,
00390 FEAPI_ParameterDescription_t *pstParameterDescription);
00391
00400 typedef FEAPI_Error_t (*FEAPI_SetPluginParameter_t) ( FEAPI_PluginInstance_t hInstanceHandle,
00401 int iParameterIndex,
00402 float fValue);
00403
00411 typedef float (*FEAPI_GetPluginParameter_t) (FEAPI_PluginInstance_t hInstanceHandle,
00412 int iParameterIndex);
00413
00423 typedef FEAPI_Error_t (*FEAPI_ProcessPlugin_t) (FEAPI_PluginInstance_t hInstanceHandle,
00424 const FEAPI_Signal_t **ppfInputBuffer,
00425 const FEAPI_TimeStamp_t *ptFEAPI_TimeStamp,
00426 int iNumberOfFrames);
00427
00434 typedef FEAPI_Error_t (*FEAPI_ProcessPluginDone_t) (FEAPI_PluginInstance_t hInstanceHandle);
00435
00442 typedef unsigned int (*FEAPI_GetPluginNumOfResults_t) (FEAPI_PluginInstance_t hInstanceHandle);
00443
00452 typedef FEAPI_Error_t (*FEAPI_GetPluginResultDescription_t) ( FEAPI_PluginInstance_t hInstanceHandle,
00453 int iResultIndex,
00454 FEAPI_SignalDescription_t *pstResultDescription);
00455
00463 typedef int (*FEAPI_GetPluginSizeOfResult_t) (FEAPI_PluginInstance_t hInstanceHandle,
00464 int iResultIndex);
00465
00475 typedef FEAPI_Error_t (*FEAPI_GetPluginResult_t) ( FEAPI_PluginInstance_t hInstanceHandle,
00476 int iResultIndex,
00477 FEAPI_Signal_t *pfResult,
00478 FEAPI_TimeStamp_t *ptFEAPI_TimeStamp);
00479
00488 typedef int (*FEAPI_GetPluginResultLatency_t) (FEAPI_PluginInstance_t hInstanceHandle, int iResultIndex);
00489
00496 typedef FEAPI_Error_t (*FEAPI_ResetPlugin_t) (FEAPI_PluginInstance_t hInstanceHandle);
00497
00501 #ifdef __cplusplus
00502 }
00503 #endif
00504
00505
00506 #endif // #if !defined(FEAPI_HEADER_INCLUDED)