Main Page | Modules | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members | Related Pages

FEAPI.h File Reference


Detailed Description

Feature Extraction plugin API interface file.

In the following, context function pointers typedefs are referred to as functions.

::FEAPI_CreatePluginInstance is used to create a new instance of the plugin. Calling this function is mandatory.

::FEAPI_InitializePlugin is then used to initialize the plugin. Calling this function is mandatory.

Information about the plugin can be requested through the following functions:
::FEAPI_GetPluginAPIVersion,
::FEAPI_GetPluginName,
::FEAPI_GetPluginVendor,
::FEAPI_GetPluginVendorVersion,
::FEAPI_GetPluginCopyright,
::FEAPI_GetPluginDescription.
Calling these functions is optional.
::FEAPI_GetPluginId can be combined with these functions to uniquely identify the plugin.

::FEAPI_GetPluginProperty provides information about the technical capabilities of the plugin.

::FEAPI_GetPluginNumOfResults is used to obtain the number of the features/results that are computed by the plugin.
::FEAPI_GetPluginResultDescription provides detailed information about the meaning and usage of every result (see structure FEAPI_SignalDescription_t for details).

::FEAPI_GetPluginNumOfParameters is used to obtain the number of parameters that can be set for the plugin.
::FEAPI_GetPluginParamDescription provides detailed information about the meaning and usage of every single parameter (see structure FEAPI_ParameterDescription_t for details).

To get or set a plugin parameter, the following functions are used:
::FEAPI_GetPluginParameter
::FEAPI_SetPluginParameter

After the plugin is properly initialized, the actual processing can begin.
::FEAPI_ProcessPlugin is called to do the actual feature/result calculation. It expects subsequently new blocks of audio data. Note that the function does not return computed feature values by itself.

After finishing one ::FEAPI_ProcessPlugin call, zero, one or more results may be available, depending on the plugin implementation.
::FEAPI_GetPluginSizeOfResult is used at that point to query the available number of values for each feature/result.
::FEAPI_GetPluginResult is then used to obtain the actual values for each result. Note that the memory needed to store the results must be allocated by the host.

::FEAPI_ProcessPluginDone should be called to signal the plugin that no more audio data is available (e.g. at the end of an audio file).
::FEAPI_GetPluginResult can then be used to obtain the last results (if available).

::FEAPI_ResetPlugin is used to flush the internal buffers of the plugin, and to prepare it for a new audio stream.

::FEAPI_DestroyPluginInstance is finally used to destroy the plugin instance after all processing has been done. Calling this function is mandatory.



The Feature Extraction plugin API is released under a BSD license. Please make all changes available to the authors.
Contact information:
web: http://feapi.sourceforge.net
email: feapi-discussion@lists.sourceforge.net

Definition in file FEAPI.h.

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  FEAPI_SignalDescription_t_tag
struct  FEAPI_ParameterDescription_t_tag
struct  FEAPI_UserData_t_tag

Defines

#define FEAPI_HEADER_INCLUDED
 avoid multiple header includes

Typedefs

typedef enum FEAPI_MaxStringLengths_t_tag FEAPI_MaxStringLengths_t
typedef FEAPI_SignalDescription_t_tag FEAPI_SignalDescription_t
typedef FEAPI_ParameterDescription_t_tag FEAPI_ParameterDescription_t
typedef FEAPI_UserData_t_tag FEAPI_UserData_t
typedef void * FEAPI_PluginInstance_t
typedef double FEAPI_TimeStamp_t
typedef float FEAPI_Signal_t
typedef enum FEAPI_Error_t_tag FEAPI_Error_t
typedef enum FEAPI_VersionInfo_t_tag FEAPI_VersionInfo_t
typedef enum FEAPI_PluginProperty_t_tag FEAPI_PluginProperty_t
typedef FEAPI_Error_t(* FEAPI_CreatePluginInstance_t )(FEAPI_PluginInstance_t *phInstanceHandle)
typedef FEAPI_Error_t(* FEAPI_DestroyPluginInstance_t )(FEAPI_PluginInstance_t *phInstanceHandle)
typedef FEAPI_Error_t(* FEAPI_InitializePlugin_t )(FEAPI_PluginInstance_t hInstanceHandle, float fInputSampleRate, int iNumberOfAudioChannels, int iHostApiMajorVersion, FEAPI_UserData_t *pstUserData)
typedef unsigned int(* FEAPI_GetPluginAPIVersion_t )(FEAPI_VersionInfo_t eAPIMajorMinorOrSubVersion)
typedef FEAPI_Error_t(* FEAPI_GetPluginName_t )(FEAPI_PluginInstance_t hInstanceHandle, char *pcPluginName)
typedef FEAPI_Error_t(* FEAPI_GetPluginVendor_t )(FEAPI_PluginInstance_t hInstanceHandle, char *pcPluginVendor)
typedef float(* FEAPI_GetPluginProperty_t )(FEAPI_PluginInstance_t hInstanceHandle, FEAPI_PluginProperty_t ePluginProperty)
typedef FEAPI_Error_t(* FEAPI_GetPluginId_t )(FEAPI_PluginInstance_t hInstanceHandle, char *pcPluginId)
typedef unsigned int(* FEAPI_GetPluginVendorVersion_t )(FEAPI_PluginInstance_t hInstanceHandle, FEAPI_VersionInfo_t ePluginMajorMinorOrSubVersion)
typedef FEAPI_Error_t(* FEAPI_GetPluginDescription_t )(FEAPI_PluginInstance_t hInstanceHandle, char *pcPluginDescription)
typedef FEAPI_Error_t(* FEAPI_GetPluginCopyright_t )(FEAPI_PluginInstance_t hInstanceHandle, char *pcPluginCopyright)
typedef unsigned int(* FEAPI_GetPluginNumOfInputs_t )(FEAPI_PluginInstance_t hInstanceHandle)
typedef FEAPI_Error_t(* FEAPI_GetPluginInputDescription_t )(FEAPI_PluginInstance_t hInstanceHandle, int iInputIndex, FEAPI_SignalDescription_t *pstInputDescription)
typedef unsigned int(* FEAPI_GetPluginNumOfParameters_t )(FEAPI_PluginInstance_t hInstanceHandle)
typedef FEAPI_Error_t(* FEAPI_GetPluginParameterDescription_t )(FEAPI_PluginInstance_t hInstanceHandle, int iParameterIndex, FEAPI_ParameterDescription_t *pstParameterDescription)
typedef FEAPI_Error_t(* FEAPI_SetPluginParameter_t )(FEAPI_PluginInstance_t hInstanceHandle, int iParameterIndex, float fValue)
typedef float(* FEAPI_GetPluginParameter_t )(FEAPI_PluginInstance_t hInstanceHandle, int iParameterIndex)
typedef FEAPI_Error_t(* FEAPI_ProcessPlugin_t )(FEAPI_PluginInstance_t hInstanceHandle, const FEAPI_Signal_t **ppfInputBuffer, const FEAPI_TimeStamp_t *ptFEAPI_TimeStamp, int iNumberOfFrames)
typedef FEAPI_Error_t(* FEAPI_ProcessPluginDone_t )(FEAPI_PluginInstance_t hInstanceHandle)
typedef unsigned int(* FEAPI_GetPluginNumOfResults_t )(FEAPI_PluginInstance_t hInstanceHandle)
typedef FEAPI_Error_t(* FEAPI_GetPluginResultDescription_t )(FEAPI_PluginInstance_t hInstanceHandle, int iResultIndex, FEAPI_SignalDescription_t *pstResultDescription)
typedef int(* FEAPI_GetPluginSizeOfResult_t )(FEAPI_PluginInstance_t hInstanceHandle, int iResultIndex)
typedef FEAPI_Error_t(* FEAPI_GetPluginResult_t )(FEAPI_PluginInstance_t hInstanceHandle, int iResultIndex, FEAPI_Signal_t *pfResult, FEAPI_TimeStamp_t *ptFEAPI_TimeStamp)
typedef int(* FEAPI_GetPluginResultLatency_t )(FEAPI_PluginInstance_t hInstanceHandle, int iResultIndex)
typedef FEAPI_Error_t(* FEAPI_ResetPlugin_t )(FEAPI_PluginInstance_t hInstanceHandle)

Enumerations

enum  FEAPI_MaxStringLengths_t_tag { FEAPI_kMaxNameLength = 1024, FEAPI_kMaxUnitLength = 1024, FEAPI_kMaxDescriptionLength = 4096 }
enum  FEAPI_Error_t_tag {
  FEAPI_kNoError = 0, FEAPI_kUnspecifiedError = -1, FEAPI_kIndexOutOfRangeError = -2, FEAPI_kInvalidPointerError = -3,
  FEAPI_kUnknownError = -9999
}
enum  FEAPI_VersionInfo_t_tag { FEAPI_kMajorVersion = 0, FEAPI_kMinorVersion = 1, FEAPI_kSubVersion = 2 }
enum  FEAPI_PluginProperty_t_tag {
  FEAPI_kMinSampleRate = 0, FEAPI_kMaxSampleRate = 1, FEAPI_kMinChannels = 2, FEAPI_kMaxChannels = 3,
  FEAPI_kMinFrameSize = 4, FEAPI_kMaxFrameSize = 5, FEAPI_kOptFrameSize = 6
}


Define Documentation

#define FEAPI_HEADER_INCLUDED
 

avoid multiple header includes

Definition at line 118 of file FEAPI.h.


Generated on Fri Mar 23 10:28:54 2007 for FEAPI Plugin Documentation by  doxygen 1.3.9.1