You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
(20) |
Apr
(11) |
May
(7) |
Jun
(7) |
Jul
|
Aug
(6) |
Sep
(9) |
Oct
|
Nov
(8) |
Dec
(31) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(8) |
Feb
|
Mar
(12) |
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <fea...@li...> - 2006-03-27 11:27:27
|
Revision: 75 Author: alex_lerch Date: 2006-03-27 03:27:15 -0800 (Mon, 27 Mar 2006) ViewCVS: http://svn.sourceforge.net/feapi/?rev=75&view=rev Log Message: ----------- - changed the file index.html of docu so that it mirrors the feapi.sf.net webpage - small updates in webpage Modified Paths: -------------- trunk/FEAPI/doc/html/index.html This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fea...@li...> - 2006-03-27 11:24:25
|
Revision: 74 Author: alex_lerch Date: 2006-03-27 03:24:15 -0800 (Mon, 27 Mar 2006) ViewCVS: http://svn.sourceforge.net/feapi/?rev=74&view=rev Log Message: ----------- - minor change: removed .def-file from project Modified Paths: -------------- trunk/FEAPI/build/Win/ExamplePluginFindRms/ExamplePluginFindRms.vcproj This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fea...@li...> - 2006-03-22 09:08:43
|
Revision: 73 Author: KoenTanghe Date: 2006-03-22 01:08:38 -0800 (Wed, 22 Mar 2006) ViewCVS: http://svn.sourceforge.net/feapi/?rev=73&view=rev Log Message: ----------- removed test file again... Removed Paths: ------------- branches/test.txt This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fea...@li...> - 2006-03-22 09:06:32
|
Revision: 72 Author: KoenTanghe Date: 2006-03-22 01:06:24 -0800 (Wed, 22 Mar 2006) ViewCVS: http://svn.sourceforge.net/feapi/?rev=72&view=rev Log Message: ----------- test again... Modified Paths: -------------- branches/test.txt This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fea...@li...> - 2006-03-22 09:05:50
|
Revision: 71 Author: KoenTanghe Date: 2006-03-22 01:05:42 -0800 (Wed, 22 Mar 2006) ViewCVS: http://svn.sourceforge.net/feapi/?rev=71&view=rev Log Message: ----------- test again... Added Paths: ----------- branches/test.txt This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fea...@li...> - 2006-03-21 16:51:21
|
Revision: 67 Author: remymuller Date: 2006-03-21 03:14:37 -0800 (Tue, 21 Mar 2006) ViewCVS: http://svn.sourceforge.net/feapi/?rev=67&view=rev Log Message: ----------- testing commit, just added a space Modified Paths: -------------- trunk/FEAPI/license.txt Modified: trunk/FEAPI/license.txt =================================================================== --- trunk/FEAPI/license.txt 2006-03-15 14:24:19 UTC (rev 66) +++ trunk/FEAPI/license.txt 2006-03-21 11:14:37 UTC (rev 67) @@ -28,3 +28,4 @@ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fea...@li...> - 2006-03-15 14:28:34
|
Revision: 66 Author: alex_lerch Date: 2006-03-15 06:24:19 -0800 (Wed, 15 Mar 2006) ViewCVS: http://svn.sourceforge.net/feapi/?rev=66&view=rev Log Message: ----------- - updated documentation txt-files, doxygen config files and some minor changes in in-source documentation - removed automatic CVS log-comments in files Modified Paths: -------------- trunk/FEAPI/build/Win/ExamplePluginFindMax/ExamplePluginFindMax.dsp trunk/FEAPI/doc/docugenAPI.txt trunk/FEAPI/doc/docugenHost.txt trunk/FEAPI/doc/docugenPlug.txt trunk/FEAPI/doc/doxyconfigAPI trunk/FEAPI/doc/doxyconfigHost trunk/FEAPI/doc/doxyconfigPlug trunk/FEAPI/examples/host/Host_C/FEAPIExampleHost_C.cpp trunk/FEAPI/examples/plugin/FEAPIExamplePluginFindMax/FEAPIExamplePluginFindMax.cpp trunk/FEAPI/examples/plugin/FEAPIExamplePluginFindMax/FEAPIExamplePluginFindMax.h trunk/FEAPI/examples/plugin/FEAPIExamplePluginFindRms/FEAPIExamplePluginFindRms.cpp trunk/FEAPI/examples/plugin/FEAPIExamplePluginFindRms/FEAPIExamplePluginFindRms.h trunk/FEAPI/examples/plugin/FEAPIExamplePluginLoudness/FEAPIExamplePluginLoudness.cpp trunk/FEAPI/examples/plugin/FEAPIExamplePluginLoudness/FEAPIExamplePluginLoudness.h trunk/FEAPI/examples/plugin/FEAPIExamplePluginSpectral/FEAPIExamplePluginSpectral.cpp trunk/FEAPI/examples/plugin/FEAPIExamplePluginSpectral/FEAPIExamplePluginSpectral.h trunk/FEAPI/examples/plugin/FEAPIExamplePluginZeroCrossings/FEAPIExamplePluginZeroCrossings.cpp trunk/FEAPI/examples/plugin/FEAPIExamplePluginZeroCrossings/FEAPIExamplePluginZeroCrossings.h trunk/FEAPI/include/FEAPI.h trunk/FEAPI/sdk/host/include/FEAPIHostUtilities.h trunk/FEAPI/sdk/plugin/include/FEAPIEntryPoints.h trunk/FEAPI/sdk/plugin/include/FEAPIPluginBase.h trunk/FEAPI/sdk/plugin/src/FEAPIPluginBase.cpp Modified: trunk/FEAPI/build/Win/ExamplePluginFindMax/ExamplePluginFindMax.dsp =================================================================== --- trunk/FEAPI/build/Win/ExamplePluginFindMax/ExamplePluginFindMax.dsp 2006-03-14 16:49:03 UTC (rev 65) +++ trunk/FEAPI/build/Win/ExamplePluginFindMax/ExamplePluginFindMax.dsp 2006-03-15 14:24:19 UTC (rev 66) @@ -131,10 +131,6 @@ # End Source File # Begin Source File -SOURCE=..\..\..\sdk\plugin\include\FEAPIEntryPoints.h -# End Source File -# Begin Source File - SOURCE=..\..\..\sdk\plugin\include\FEAPIPluginBase.h # End Source File # End Group Modified: trunk/FEAPI/doc/docugenAPI.txt =================================================================== --- trunk/FEAPI/doc/docugenAPI.txt 2006-03-14 16:49:03 UTC (rev 65) +++ trunk/FEAPI/doc/docugenAPI.txt 2006-03-15 14:24:19 UTC (rev 66) @@ -2,7 +2,7 @@ // ///////////////////////////////////////////////////////////////////////////////////// // -// Copyright (c) 2004-2005, Alexander Lerch, zplane.development GbR +// Copyright (c) 2004-2006, Alexander Lerch, zplane.development GbR // All rights reserved. // // Redistribution and use in source and binary forms, with or without @@ -34,25 +34,6 @@ // POSSIBILITY OF SUCH DAMAGE. // //////////////////////////////////////////////////////////////////////////////////// -// CVS INFORMATION -// -// $RCSfile$ -// $Author$ -// $Date$ -// -// $Log$ -// Revision 1.2 2005/05/20 17:01:57 alex_lerch -// - updated documentation -// -// Revision 1.1.1.1 2005/03/30 14:54:38 alex_lerch -// first draft version requiring several updates: -// - interface check -// - check of plugin base class -// - implementation of host base class -// - update of outdated documentation -// -// -//////////////////////////////////////////////////////////////////////////////////// /*! \mainpage Feature Extraction API Documentation @@ -86,7 +67,6 @@ <BR><BR> - \section api API Documentation The API declaration and short function descriptions can be found in the file FEAPI.h. Note that the function pointer declarations are used as synonyms for the function names itself. @@ -99,16 +79,16 @@ \subsubsection instance Instance Controlling Before using the Plugin, an instance has to be created. After the Plugin usage, this instance has to be destroyed to free the allocated memory and resources. <UL> - <li> <b>FEAPI_Error_t ::FEAPI_CreatePluginInstance_t (::FEAPI_PluginInstance_t *phInstanceHandle)</b><br> + <li> <b>::FEAPI_Error_t ::FEAPI_CreatePluginInstance_t (::FEAPI_PluginInstance_t *phInstanceHandle)</b><br> Upon the call of this function, a new instance is created. The handle to the new instance is written to the function parameter phInstanceHandle. <BR> The return value is ::FEAPI_kNoError in case of no error. - <li> <b>FEAPI_Error_t ::FEAPI_DestroyPluginInstance_t (::FEAPI_PluginInstance_t *phInstanceHandle)</b><br> + <li> <b>::FEAPI_Error_t ::FEAPI_DestroyPluginInstance_t (::FEAPI_PluginInstance_t *phInstanceHandle)</b><br> The instance pointed to in phInstanceHandle is destroyed with this function call.<BR> The return value is ::FEAPI_kNoError in case of no error. - <li> <b>FEAPI_Error_t ::FEAPI_InitializePlugin_t (::FEAPI_PluginInstance_t hInstanceHandle, float fInputSampleRate, int iNumberOfAudioChannels, int iHostApiMajorVersion, ::FEAPI_UserData_t *pstUserData)</b><br> - This function initializes the plug-in and does the internal memory allocation. fSampleRate gives the sample rate in Hz, while iNumberOfChannels gives the audio channel count. iHostApiMajorVersion contains the major version number of the host's FEAPI implementation and pstUserData is either NULL or contains some special vendor specific data. Note that neither the sample rate nor the number of channels can be modified after the instance creation.<BR> + <li> <b>::FEAPI_Error_t ::FEAPI_InitializePlugin_t (::FEAPI_PluginInstance_t hInstanceHandle, float fInputSampleRate, int iNumberOfAudioChannels, int iHostApiMajorVersion, ::FEAPI_UserData_t *pstUserData)</b><br> + This function initializes the plug-in and does the internal memory allocation. fSampleRate gives the sample rate in Hz, while iNumberOfChannels gives the audio channel count. iHostApiMajorVersion contains the major version number of the host's FEAPI implementation and pstUserData is either NULL or contains some special vendor specific data. Note that neither the sample rate nor the number of channels can be modified after the instance creation. The function has to be called at least once before the first call of ::FEAPI_ProcessPlugin_t and after changing a parameter with property non-realtime.<BR> The return value is ::FEAPI_kNoError in case of no error. </ul> @@ -118,11 +98,11 @@ <LI> <b>int ::FEAPI_GetPluginAPIVersion_t (::FEAPI_VersionInfo_t eAPIMajorMinorOrSubVersion)</b><br> The API version is defined in the format major.minor.sub, each of them (major, minor, and sub) being an integer. This function returns the API version being used for the plugin for one of the three possibilities as specified with eAPIMajorMinorOrSubVersion. - <LI> <b>FEAPI_Error_t ::FEAPI_GetPluginName_t (::FEAPI_PluginInstance_t hInstanceHandle, char *pcPluginName)</b><br> + <LI> <b>::FEAPI_Error_t ::FEAPI_GetPluginName_t (::FEAPI_PluginInstance_t hInstanceHandle, char *pcPluginName)</b><br> Call this function to retrieve the name of the Plugin. hInstanceHandle points to the current instance. The Plugin name is copied to the function parameter pcPluginName. Note the the host has to allocate at least 1024Bytes including the string termination for the string.<BR> The return value is ::FEAPI_kNoError in case of no error. - <LI> <b>FEAPI_Error_t ::FEAPI_GetPluginVendor_t (::FEAPI_PluginInstance_t hInstanceHandle, char *pcPluginVendor)</b><br> + <LI> <b>::FEAPI_Error_t ::FEAPI_GetPluginVendor_t (::FEAPI_PluginInstance_t hInstanceHandle, char *pcPluginVendor)</b><br> Call this function to retrieve the vendor string of the Plugin. hInstanceHandle points to the current instance. The Plugin vendor string is copied to the function parameter pcPluginVendor. Note the the host has to allocate at least 1024Bytes including the string termination for the string.<BR> The return value is ::FEAPI_kNoError in case of no error. @@ -130,18 +110,18 @@ Call this function to retrieve information about the basic capabilities of the Plugin. hInstanceHandle points to the current instance. The requested property is specified in ePluginProperty. For information about possible requests please look at ::FEAPI_PluginProperty_t .<BR> The return value is the requested value in float format. - <LI> <b>FEAPI_Error_t ::FEAPI_GetPluginId_t (::FEAPI_PluginInstance_t hInstanceHandle, char *pcPluginId)</b><br> + <LI> <b>::FEAPI_Error_t ::FEAPI_GetPluginId_t (::FEAPI_PluginInstance_t hInstanceHandle, char *pcPluginId)</b><br> Call this function to retrieve the vendor specific ID of the Plugin. hInstanceHandle points to the current instance. The Plugin ID string is copied to the function parameter pcPluginId. Note the the host has to allocate at least 1024Bytes including the string termination for the string.<BR> The return value is ::FEAPI_kNoError in case of no error. <LI> <b>int ::FEAPI_GetPluginVendorVersion_t (::FEAPI_PluginInstance_t hInstanceHandle, ::FEAPI_VersionInfo_t ePluginMajorMinorOrSubVersion)</b><br> hInstanceHandle points to the current instance. This function can be used exactly the same way as ::FEAPI_GetPluginAPIVersion_t but returns the vendor version of the Plugin instead of its API version. - <LI> <b>FEAPI_Error_t ::FEAPI_GetPluginDescription_t (::FEAPI_PluginInstance_t hInstanceHandle, char *pcPluginDescription)</b><br> + <LI> <b>::FEAPI_Error_t ::FEAPI_GetPluginDescription_t (::FEAPI_PluginInstance_t hInstanceHandle, char *pcPluginDescription)</b><br> Call this function to retrieve a description of what the Plugin actually does. hInstanceHandle points to the current instance. The Plugin description string is copied to the function parameter pcPluginDescription. Note the the host has to allocate at least 4096Bytes excluding the string termination for the string.<BR> The return value is ::FEAPI_kNoError in case of no error. - <LI> <b>FEAPI_Error_t ::FEAPI_GetPluginCopyright_t (::FEAPI_PluginInstance_t hInstanceHandle, char *pcPluginCopyright)</b><br> + <LI> <b>::FEAPI_Error_t ::FEAPI_GetPluginCopyright_t (::FEAPI_PluginInstance_t hInstanceHandle, char *pcPluginCopyright)</b><br> Call this function to retrieve copyright information about the Plugin. hInstanceHandle points to the current instance. The copyright string is copied to the function parameter pcPluginCopyright. Note the the host has to allocate at least 1024Bytes excluding the string termination for the string.<BR> The return value is ::FEAPI_kNoError in case of no error. </ul> @@ -152,25 +132,25 @@ <LI> <b>int ::FEAPI_GetPluginNumOfInputs_t (::FEAPI_PluginInstance_t hInstanceHandle)</b><br> Call this function to retrieve the number of inputs required by the Plugin. hInstanceHandle points to the current instance. In most cases, the return value will equal the number of audio channels. It can never be smaller than the number of audio channels. - <LI> <b>FEAPI_Error_t ::FEAPI_GetPluginInputDescription_t (::FEAPI_PluginInstance_t hInstanceHandle, int iInputIndex, ::FEAPI_SignalDescription_t *pstInputDescription)</b><br> + <LI> <b>::FEAPI_Error_t ::FEAPI_GetPluginInputDescription_t (::FEAPI_PluginInstance_t hInstanceHandle, int iInputIndex, ::FEAPI_SignalDescription_t *pstInputDescription)</b><br> Call this function to retrieve a description of a specific input. hInstanceHandle points to the current instance. iInputIndex is the parameter index ranging from 0 for the first parameter to (number of inputs -1). The detailed input description is copied to the function parameter pstInputDescription pointer to a structure of type ::FEAPI_SignalDescription_t. Note the the host has to allocate the memory for the parameter description structure.<BR> The return value is ::FEAPI_kNoError in case of no error. </ul> \subsubsection paramfunc Parameter Control Functions - Parameters can be used to control the Plugin algorithm configuration. For each single parameter, several properties are defined in the ::FEAPI_ParameterDescription_t structure, that contains name, unit, range, description and information if the parameter is quantized. Each parameter has to be in float format. + Parameters can be used to control the Plugin algorithm configuration. For each single parameter, several properties are defined in the ::FEAPI_ParameterDescription_t structure, that contains name, unit, range, description and information if the parameter is quantized. Each parameter has to be in float format. Note the property ::FEAPI_ParameterDescription_t::bIsChangeableInRealTime that - in case of set to non-realtime - requires a call of ::FEAPI_InitializePlugin_t after changing the parameter value. <UL> <LI> <b>int ::FEAPI_GetPluginNumOfParameters_t (::FEAPI_PluginInstance_t hInstanceHandle)</b><br> Call this function to retrieve the number of parameters provided by the Plugin. hInstanceHandle points to the current instance. If no parameter for configuration is provided, the function returns 0. - <LI> <b>FEAPI_Error_t ::FEAPI_GetPluginParameterDescription_t (::FEAPI_PluginInstance_t hInstanceHandle, int iParameterIndex, ::FEAPI_ParameterDescription_t *pstParameterDescription)</b><br> + <LI> <b>::FEAPI_Error_t ::FEAPI_GetPluginParameterDescription_t (::FEAPI_PluginInstance_t hInstanceHandle, int iParameterIndex, ::FEAPI_ParameterDescription_t *pstParameterDescription)</b><br> Call this function to retrieve a description of a special parameter. hInstanceHandle points to the current instance. iParameterIndex is the parameter index ranging from 0 for the first parameter to (number of parameters -1). The detailed parameter description is copied to the function parameter pstParameterDescription pointer to a structure of type ::FEAPI_ParameterDescription_t. Note the the host has to allocate the memory for the parameter description structure.<BR> The return value is ::FEAPI_kNoError in case of no error. <LI> <b>float ::FEAPI_GetPluginParameter_t (::FEAPI_PluginInstance_t hInstanceHandle, int iParameterIndex)</b><br> Call this function to retrieve the current value of a special parameter with index iParameterIndex. hInstanceHandle points to the current instance. - <LI> <b>FEAPI_Error_t ::FEAPI_SetPluginParameter_t (::FEAPI_PluginInstance_t hInstanceHandle, int iParameterIndex, float fValue)</b><br> + <LI> <b>::FEAPI_Error_t ::FEAPI_SetPluginParameter_t (::FEAPI_PluginInstance_t hInstanceHandle, int iParameterIndex, float fValue)</b><br> Call this function to set the value of a special parameter with index iParameterIndex to the value fValue. hInstanceHandle points to the current instance. <BR> The return value is ::FEAPI_kNoError in case of no error. @@ -178,28 +158,29 @@ \subsubsection processfunc Process Functions <UL> - <LI> <b>FEAPI_Error_t ::FEAPI_ProcessPlugin_t (::FEAPI_PluginInstance_t hInstanceHandle, const FEAPI_Signal_t **ppfInputBuffer, const FEAPI_TimeStamp_t *ptFEAPI_TimeStamp,int iNumberOfFrames)</b><br> - The process function does the actual feature resp. result calculation. It has to be called with subsequent blocks of audio input data. hInstanceHandle points to the current instance, ppfInputBuffer points to the current block of audio data as two dimensional array in the format [channels][samples]. A time stamp in seconds marking the beginning of the data may be given, to make synchronisation more easy. The number of frames is given in iNumberOfFrames.<BR> + <LI> <b>::FEAPI_Error_t ::FEAPI_ProcessPlugin_t (::FEAPI_PluginInstance_t hInstanceHandle, const FEAPI_Signal_t **ppfInputBuffer, const FEAPI_TimeStamp_t *ptFEAPI_TimeStamp,int iNumberOfFrames)</b><br> + The process function does the actual feature resp. result calculation. It has to be called with subsequent blocks of audio input data. hInstanceHandle points to the current instance, ppfInputBuffer points to the current block of audio data as two dimensional array in the format [channels][samples]. A time stamp in seconds marking the beginning of the data may be given, to make synchronisation more easy. The number of frames is given in iNumberOfFrames and has to be compliant to the minimum and maximum frame size boundaries given in ::FEAPI_PluginProperty_t.<BR> The return value is ::FEAPI_kNoError in case of no error. - <LI> <b>FEAPI_Error_t ::FEAPI_ProcessPluginDone_t (::FEAPI_PluginInstance_t hInstanceHandle)</b><br> + <LI> <b>::FEAPI_Error_t ::FEAPI_ProcessPluginDone_t (::FEAPI_PluginInstance_t hInstanceHandle)</b><br> Call this function after the last call of ::FEAPI_ProcessPlugin_t, i.e. when no more new audio data is available. hInstanceHandle points to the current instance.<BR> The return value is ::FEAPI_kNoError in case of no error. </ul> \subsubsection resultfunc Result Handling Functions - The Feature Extraction API allows the calculation of as many results as needed. Each result may consist of an one-dimensional array of floating point data. For each single result, several properties are defined in the ::FEAPI_SignalDescription_t structure, that contains name, unit, range, description, information about the result's quantization and output sample rate if it is constant. + The Feature Extraction API allows the calculation of one or more features at a time. For each single result, several properties are defined in the ::FEAPI_SignalDescription_t structure, that contains name, unit, range, description, information about the result's quantization and output sample rate if it is constant.<br> + A single result can be a single value, or can be an array of values (like e.g. a magnitude spectrum). Furthermore, depending on the size of the process input buffer, it can be that there are several succeeding results with different time stamps at one time. <UL> <LI> <b>int ::FEAPI_GetPluginNumOfResults_t (::FEAPI_PluginInstance_t hInstanceHandle)</b><br> - Call this function to retrieve the number of results (features) that the Plugin is able to calculate. hInstanceHandle points to the current instance. If no result computed (an unlikely case), the function returns 0. + Call this function to retrieve the number of results (features) that the Plugin is able to extract. hInstanceHandle points to the current instance. Even if a result is multidimensional, its count will be one. If no result is computed (an unlikely case), the function returns 0. - <LI> <b>FEAPI_Error_t ::FEAPI_GetPluginResultDescription_t (::FEAPI_PluginInstance_t hInstanceHandle, int iResultIndex, ::FEAPI_SignalDescription_t *pstResultDescription)</b><br> + <LI> <b>::FEAPI_Error_t ::FEAPI_GetPluginResultDescription_t (::FEAPI_PluginInstance_t hInstanceHandle, int iResultIndex, ::FEAPI_SignalDescription_t *pstResultDescription)</b><br> Call this function to retrieve a description of a special result (feature). hInstanceHandle points to the current instance. iResultIndex is the parameter index ranging from 0 for the first parameter to (number of results -1). The detailed result description is copied to the function parameter pstResultDescription pointer to a structure of type ::FEAPI_SignalDescription_t. Note the the host has to allocate the memory for the result description structure.<BR> The return value is ::FEAPI_kNoError in case of no error. <LI> <b>int ::FEAPI_GetPluginSizeOfResult_t (::FEAPI_PluginInstance_t hInstanceHandle, int iResultIndex)</b><br> - Call this function before each call of ::FEAPI_GetPluginResult_t to retrieve the size of the result with index iResultIndex in float values. + Call this function before each call of ::FEAPI_GetPluginResult_t to retrieve the size of the result with index iResultIndex in float values. Note that this function returns always the size of one result, i.e. if the result is a single value, it will always return 1. For an N-dimensional result, it will return N. This function has to be called in combination with ::FEAPI_GetPluginResults_t until it returns 0. <LI> <b>int ::FEAPI_GetPluginResult_t (::FEAPI_PluginInstance_t hInstanceHandle, int iResultIndex, ::FEAPI_Signal_t *pfResult, ::FEAPI_TimeStamp_t *ptFEAPI_TimeStamp)</b><br> Call this function to retrieve result with index iResultIndex after one process call. The result is copied to the buffer pointed to by pfResult. Note that due to the push interface, it may be possible that the plugin has several succeeding results for the same result index. Therefore, call this function with the same iResultIndex until ::FEAPI_GetPluginSizeOfResult_t returns 0. hInstanceHandle points to the current instance. The Plugin name is copied to the function parameter pcPluginName. Note the the host has to allocate this buffer acc. to the previously requested size of the result. @@ -222,6 +203,26 @@ * <br><br> * <br><br> * + * +\section platforms Platform Specific Definitions +The Feature Extraction plugin API is developed to be platform independent. The specific implementation and usage of plugin and host may have to be platform specific to some extent. Note that in its current state FEAPI, was only implemented and tested on Win32 and MacOSX; the following recommendations refer to these platforms. + +\subsection dir System Plugin Directories +The following directories should be the default directories for FEAPI plugins: +<ul> + <li> Win32+Win64: $ProgramFiles/FEAPI + <li> MacOsX: /Library/Audio/Plug-Ins/FEAPI +</ul> +This is however only the default location, and host implementations should allow the user to specify one or more additional directories to search for plugins. + +\subsection ext Plugin Extensions +The host has to test possible plugins for feapi compliance by checking the libaray API. Therefore, the used file extension is not of much importance. It is recommended, that the file extension used are: +<ul> + <li> Win32+Win64: .dll + <li> MacOsX: .feapi +</ul> + + * \section license License The Feature Extraction API is released under a BSD-style license. Therefore, static linking of the API without publishing other sources of the project is allowed and the code may be used in open source as well as in commercial products with the small restrictions mentioned in the license itself (see FEAPI.h).<BR> Please keep the authors or contributors informed about any extensions or fixes of the source files.<br> @@ -282,6 +283,7 @@ * * * \section contact Contact - * alexander lerch (lerch <at> zplane.de)<br> + * web: http://feapi.sf.net<br> + * feapi mailing list: fea...@li...<br> * */ Modified: trunk/FEAPI/doc/docugenHost.txt =================================================================== --- trunk/FEAPI/doc/docugenHost.txt 2006-03-14 16:49:03 UTC (rev 65) +++ trunk/FEAPI/doc/docugenHost.txt 2006-03-15 14:24:19 UTC (rev 66) @@ -2,7 +2,7 @@ // ///////////////////////////////////////////////////////////////////////////////////// // -// Copyright (c) 2004-2005, Alexander Lerch, zplane.development GbR +// Copyright (c) 2004-2006, Alexander Lerch, zplane.development GbR // All rights reserved. // // Redistribution and use in source and binary forms, with or without @@ -34,61 +34,33 @@ // POSSIBILITY OF SUCH DAMAGE. // //////////////////////////////////////////////////////////////////////////////////// -// CVS INFORMATION -// -// $RCSfile$ -// $Author$ -// $Date$ -// -// $Log$ -// Revision 1.3 2005/05/23 13:53:33 koentanghe -// corrected <bR< tag into <br> -// -// Revision 1.2 2005/05/20 17:02:09 alex_lerch -// - updated documentation -// -// Revision 1.1.1.1 2005/03/30 14:54:38 alex_lerch -// first draft version requiring several updates: -// - interface check -// - check of plugin base class -// - implementation of host base class -// - update of outdated documentation -// -// -//////////////////////////////////////////////////////////////////////////////////// /*! \mainpage Feature Extraction Host Documentation \section intro Introduction - This documentation is a short introduction about how a win32 host for the Feature Extraction API can be implemented. For information about the Feature Extraction Plugin API itself, please refer to the API documentation itself.<br> - Please note that the implementation shows only how a fast implementation can be done, there might be many alternative ways to implement such an host. + This documentation is a short introduction about how a win32 host for the Feature Extraction API, using directly the C-API and no API interface, can be implemented. For information about the Feature Extraction Plugin API itself, please refer to the API documentation.<br> + Please note that the implementation shows only how a fast implementation can be done, there might be many alternative and cleaner ways to implement such an host. <BR><BR> <BR><BR> - - - - \section prog Win32 Host Implementation + + \section prog Win32 Host Implementation using the C interface \dontinclude FEAPIExampleHost_C.cpp - The following code snippets should give you an example about the calling conventions etc. of such a host. The complete code can be found in the example file FEAPITestCLMain.cpp. Note that the application uses the library libSndFile for all operations on audio files.<br> - First, the working directory is searched for Plugin DLL with the local function ::FindPlugIns: + The following code snippets should give you an example about the calling conventions etc. of such a host. The complete code can be found in the example file FEAPIExampleHost_C.cpp. Note that the application uses the library libSndFile for all operations on audio files, which is not included in the SDK itself and has to be downloaded separately (see http://www.mega-nerd.com/libsndfile/) for details. <br> + First, the working directory is searched for Plugin DLL with the local function ::FindPlugIns, as declared in FEAPIHostUtilities.h (to parse the working directory is a simplified method; note that the specific directories to be parsed by a host should comply to the platform specific recommendation in the API documentation): \skipline find \until FindPlugins - For the Plugin to be selected for processing, the DLL has to be loaded: + For the Plugin to be selected for processing, the library can be loaded with the function ::LoadPluginModule and the API function pointers can be retrieved with the function ::GetFunctionPointers, both declared in FEAPIHostUtilities.h: - \skipline load - \until LoadLibrary + \skipline hLibraryHandle + \until GetFunctionPointers - After that, the API function pointers can be retrieved from the DLL. Here, this is done with the local function GetFunctionPointers which checks if the DLL API conforms to the required API and writes all function pointers to a pre-defined structure: + Function ::GetFunctionPointers verifies the API compliance and writes the function pointers to ::stPluginFunctions.<br> + Now we are ready to create a new instance of the Plugin: - \skipline get - \until } - - The first thing to do is to create a new instance of the Plugin: - \skipline create \until Failed @@ -111,35 +83,36 @@ Then, the actual processing can take place. Since in this host implementation the input buffer size does not matter, we ask the plugin about its preferred buffer size. Therefore, we call - \skipline FEAPI_kOptFrameSize + \skipline iNumOfFramesNeeded + \until FEAPI_kOptFrameSize - In the next step, the process function can be called the the requested input audio data: + In the next step, the process function can be called with the requested amount of input audio data: \skipline processing \until iNumOfFramesNeeded - Note that time stamp handling is not yet included. <br> - Now, the current results can be retrieved. First, the size of the results is queried to assure that the host buffers have sufficient size. Then all results are retrieved and printed to an output text file if requested: + Now, the current results can be retrieved, if available. First, the size of the results is queried to assure that the host buffers have sufficient size to hold the result values. Then, all results are retrieved and printed to an output text file if requested: \skipline get \until pFOutputFile \until } - After all audio data has been subsequently processed and no more audio data is available, the Plugins should be noticed about this circumstance: + After all audio data has been subsequently processed and no more audio data is available, the Plugin should be noticed about this circumstance: \skipline notice \until ProcessDone - Upon this, the last results can be retrieved in the same way as described above. Finally the Plugin instance can be destroyed and the DLL freed: + After this, the last results can be retrieved (if available) in the same way as described above. Finally the Plugin instance can be destroyed and the Library unloaded: \skipline instance - \until FreeLibrary + \until UnloadPluginModule * <br><br> * <br><br> * * \section contact Contact - * alexander lerch (lerch <at> zplane.de)<br> + * web: http://feapi.sf.net<br> + * feapi mailing list: fea...@li...<br> * */ Modified: trunk/FEAPI/doc/docugenPlug.txt =================================================================== --- trunk/FEAPI/doc/docugenPlug.txt 2006-03-14 16:49:03 UTC (rev 65) +++ trunk/FEAPI/doc/docugenPlug.txt 2006-03-15 14:24:19 UTC (rev 66) @@ -1,8 +1,7 @@ ///////////////////////////////////////////////////////////////////////////////////// -// ///////////////////////////////////////////////////////////////////////////////////// // -// Copyright (c) 2004-2005, Alexander Lerch, zplane.development GbR +// Copyright (c) 2004-2006, Alexander Lerch, zplane.development GbR // All rights reserved. // // Redistribution and use in source and binary forms, with or without @@ -34,28 +33,6 @@ // POSSIBILITY OF SUCH DAMAGE. // //////////////////////////////////////////////////////////////////////////////////// -// CVS INFORMATION -// -// $RCSfile$ -// $Author$ -// $Date$ -// -// $Log$ -// Revision 1.3 2005/07/11 16:53:38 alex_lerch -// - fixed two typos -// -// Revision 1.2 2005/05/20 17:02:09 alex_lerch -// - updated documentation -// -// Revision 1.1.1.1 2005/03/30 14:54:38 alex_lerch -// first draft version requiring several updates: -// - interface check -// - check of plugin base class -// - implementation of host base class -// - update of outdated documentation -// -// -//////////////////////////////////////////////////////////////////////////////////// /*! \mainpage Feature Extraction Plugin Documentation @@ -63,38 +40,73 @@ \section intro Introduction This is a short tutorial on how to implement a Plugin conforming to the feature extraction Plugin API.<bR> - Although the Plugin interface is in the language C, the Plugin internals are in C++ to guarantee API conformance without too much work. + Although the Plugin interface is in the language C, the Plugin SDK internals are in C++ to ensure API conformance with minimal implementation effort. <BR><BR> <BR><BR> \section tut Step-by-Step tutorial - For the implementation, you need the following files: + For the implementation, you need the following SDK files: <ul> <LI> FEAPI.h: the Plugin API interface itself (do never edit!) - <LI> FeatureExtractBase.h: the Plugin base class interface (do never edit!) - <LI> FeatureExtractBase.cpp: prototype implementation of "internal" API functions (do never edit!) - <LI> FEAPI.cpp: the implementation of the API functions - <LI> only under windows: FEAPI.def to define the dll exports + <LI> FEAPIPluginBase.h: the Plugin base class interface (do never edit!) + <LI> FEAPIPluginBase.cpp: prototype implementation of "internal" API functions (do never edit!) + <LI> FEAPIEntryPoints.h: the definition of the API functions (do never edit!) </ul> - To make each step more transparent, please refer to the provided example Plugin source code (FindAbsoluteMax).<BR><BR> + To make each step more transparent, please refer to the source code of the example plugin (e.g. FindAbsoluteMax).<BR><BR> The following steps are necessary: <UL> - <LI> Create a new project for a shared library with the above files. - <LI> add a new class the is inherited from the class ::CFeatureExtractBase defined in FeatureExtractBase.h - <LI> in your class header, be sure to add the define _THE_PLUGIN_CLASS to be the name of your class (example: #define _THE_PLUGIN_CLASS CFindAbsoluteMax - <LI> include your class header file in FEAPI.cpp. Be sure not to edit the rest of this file. - <LI> under windows, change the contents of the field LIBRARY in the FEAPI.def to your selected output DLL name (example: LIBRARY "FindAbsoluteMax") - <LI> in your class implementation, implement at least all pure virtual functions from the base class + <LI> add the above files to your project to build a shared library. + <LI> add a new class that is inherited from the class ::CFeatureExtractBase defined in FEAPIPluginBase.h; let's assume your class is named CMyPlug, its interface is in MyPlug.h, its implementation is in MyPlug.cpp. + <LI> do not forget to add the following lines to the beginning MyPlug.cpp: + \code + #include "FEAPI.h" + #include "MyPlug.h" + #include "FEAPIEntryPoints.h" + \endcode + + <LI> and at the end of file MyPlug.cpp, add the following code + \code + /////////////////////////////////////// + // entry points + #ifdef __cplusplus + extern "C" { + #endif + + FEAPI_ENTRY_POINTS(CMyPlug) // insert your class name here + + #ifdef __cplusplus + } + #endif + /////////////////////////////////////// +\endcode + <LI> in the interface and implementation of CMyPlug, declare and implement at least all pure virtual functions from the base class </UL> - After these steps, your Plugin compiles, but does nothing than just return the default values on all function calls. To change this behaviour, just the functions inherited from CFEAPIBase have to be implemented in your class. - - * <br><br> - * <br><br> - \todo add section about methods that have to be overridden, that can be optionally overridden and that must not be overridden + After these steps, your plugin compiles, but does nothing than just return the default values on all method calls. To change this behaviour, just the methods inherited from CFEAPIBase have to be implemented in your class. * + * + * \section virtual Pure Virtual Base Class Methods + * To get a working plugin, at least the following methods have to be implemented (for documentation, please refer to the API documentation: + * <ul> + * <li> ::CFeatureExtractBase::GetPluginProperty (::FEAPI_PluginProperty_t ePluginProperty) + * <li> ::CFeatureExtractBase::ProcessPlugin (const ::FEAPI_Signal_t **ppfInputBuffer, const ::FEAPI_TimeStamp_t *ptFEAPI_TimeStamp, int iNumberOfFrames) + * <li> ::CFeatureExtractBase::GetPluginSizeOfResult (int iResultIndex) + * <li> ::CFeatureExtractBase::GetPluginResult (int iResultIndex, float *pfResult, ::FEAPI_TimeStamp_t *ptFEAPI_TimeStamp) + * </ul> + * <br> + * + * \section virtual Other Virtual Class Methods + * For implementing a real-world plugin, you may however require to override also the following methods: + * <ul> + * <li> ::CFeatureExtractBase::GetPluginInputDescription (int iInputIndex, ::FEAPI_SignalDescription_t *pstInputDescription) + * <li> ::CFeatureExtractBase::GetPluginResultDescription (int iResultIndex, ::FEAPI_SignalDescription_t *pstResultDescription) + * <li> ::CFeatureExtractBase::GetPluginParameterDescription (int iParameterIndex, ::FEAPI_ParameterDescription_t *pstParameterDescription) + * <li> ::CFeatureExtractBase::SetPluginParameter (int iParameterIndex, float fValue) + * <li> ::CFeatureExtractBase::GetPluginParameter (int iParameterIndex) + * * \section contact Contact - * alexander lerch (lerch <at> zplane.de)<br> + * web: http://feapi.sf.net<br> + * feapi mailing list: fea...@li...<br> * */ Modified: trunk/FEAPI/doc/doxyconfigAPI =================================================================== --- trunk/FEAPI/doc/doxyconfigAPI 2006-03-14 16:49:03 UTC (rev 65) +++ trunk/FEAPI/doc/doxyconfigAPI 2006-03-15 14:24:19 UTC (rev 66) @@ -1,11 +1,11 @@ -# Doxyfile 1.3.9.1 +# Doxyfile 1.4.5 #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- PROJECT_NAME = "Feature Extraction API documentation" PROJECT_NUMBER = -OUTPUT_DIRECTORY = ../doc +OUTPUT_DIRECTORY = CREATE_SUBDIRS = NO OUTPUT_LANGUAGE = English USE_WINDOWS_ENCODING = YES @@ -32,11 +32,13 @@ MULTILINE_CPP_IS_BRIEF = YES DETAILS_AT_TOP = YES INHERIT_DOCS = YES -DISTRIBUTE_GROUP_DOC = NO +SEPARATE_MEMBER_PAGES = NO TAB_SIZE = 4 ALIASES = OPTIMIZE_OUTPUT_FOR_C = YES OPTIMIZE_OUTPUT_JAVA = NO +BUILTIN_STL_SUPPORT = NO +DISTRIBUTE_GROUP_DOC = NO SUBGROUPING = YES #--------------------------------------------------------------------------- # Build related configuration options @@ -66,6 +68,7 @@ MAX_INITIALIZER_LINES = 30 SHOW_USED_FILES = YES SHOW_DIRECTORIES = YES +FILE_VERSION_FILTER = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- @@ -73,13 +76,14 @@ WARNINGS = YES WARN_IF_UNDOCUMENTED = NO WARN_IF_DOC_ERROR = YES +WARN_NO_PARAMDOC = NO WARN_FORMAT = "$file:$line: $text" WARN_LOGFILE = warn.log #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- -INPUT = ../incl/FEAPI.h \ - ../doc/docugenAPI.txt +INPUT = ../include/FEAPI.h \ + docugenAPI.txt FILE_PATTERNS = *.h \ *.hpp \ *.txt \ @@ -103,6 +107,7 @@ STRIP_CODE_COMMENTS = YES REFERENCED_BY_RELATION = YES REFERENCES_RELATION = YES +USE_HTAGS = NO VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index @@ -208,18 +213,22 @@ HAVE_DOT = YES CLASS_GRAPH = YES COLLABORATION_GRAPH = YES +GROUP_GRAPHS = YES UML_LOOK = NO TEMPLATE_RELATIONS = YES INCLUDE_GRAPH = YES INCLUDED_BY_GRAPH = YES CALL_GRAPH = YES GRAPHICAL_HIERARCHY = YES +DIRECTORY_GRAPH = YES DOT_IMAGE_FORMAT = png -DOT_PATH = +DOT_PATH = C:/Programme/Grafik/GraphViz/Graphviz/bin DOTFILE_DIRS = MAX_DOT_GRAPH_WIDTH = 1024 MAX_DOT_GRAPH_HEIGHT = 1024 MAX_DOT_GRAPH_DEPTH = 1000 +DOT_TRANSPARENT = NO +DOT_MULTI_TARGETS = NO GENERATE_LEGEND = YES DOT_CLEANUP = YES #--------------------------------------------------------------------------- Modified: trunk/FEAPI/doc/doxyconfigHost =================================================================== --- trunk/FEAPI/doc/doxyconfigHost 2006-03-14 16:49:03 UTC (rev 65) +++ trunk/FEAPI/doc/doxyconfigHost 2006-03-15 14:24:19 UTC (rev 66) @@ -1,11 +1,11 @@ -# Doxyfile 1.3.9.1 +# Doxyfile 1.4.5 #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- PROJECT_NAME = "Feature Extraction Host documentation" PROJECT_NUMBER = -OUTPUT_DIRECTORY = ../doc +OUTPUT_DIRECTORY = CREATE_SUBDIRS = NO OUTPUT_LANGUAGE = English USE_WINDOWS_ENCODING = YES @@ -32,11 +32,13 @@ MULTILINE_CPP_IS_BRIEF = YES DETAILS_AT_TOP = YES INHERIT_DOCS = YES -DISTRIBUTE_GROUP_DOC = NO +SEPARATE_MEMBER_PAGES = NO TAB_SIZE = 4 ALIASES = OPTIMIZE_OUTPUT_FOR_C = YES OPTIMIZE_OUTPUT_JAVA = NO +BUILTIN_STL_SUPPORT = NO +DISTRIBUTE_GROUP_DOC = NO SUBGROUPING = YES #--------------------------------------------------------------------------- # Build related configuration options @@ -66,6 +68,7 @@ MAX_INITIALIZER_LINES = 30 SHOW_USED_FILES = YES SHOW_DIRECTORIES = YES +FILE_VERSION_FILTER = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- @@ -73,14 +76,17 @@ WARNINGS = YES WARN_IF_UNDOCUMENTED = NO WARN_IF_DOC_ERROR = YES +WARN_NO_PARAMDOC = NO WARN_FORMAT = "$file:$line: $text" WARN_LOGFILE = warn.log #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- -INPUT = ../doc/docugenHost.txt \ - ../incl/FEAPI.h \ - ../src/Host_C/FEAPIExampleHost_C.cpp +INPUT = docugenHost.txt \ + ../include/FEAPI.h \ + ../examples/host/Host_C/FEAPIExampleHost_C.cpp \ + ../sdk/host/include/FEAPIHostUtilities.h \ + ../sdk/host/include/FEAPIHostDeclarations.h FILE_PATTERNS = *.h \ *.hpp \ *.txt \ @@ -89,7 +95,7 @@ EXCLUDE = EXCLUDE_SYMLINKS = NO EXCLUDE_PATTERNS = -EXAMPLE_PATH = ../src/Host_C +EXAMPLE_PATH = ../examples/host/Host_C EXAMPLE_PATTERNS = *.cpp EXAMPLE_RECURSIVE = NO IMAGE_PATH = @@ -104,6 +110,7 @@ STRIP_CODE_COMMENTS = YES REFERENCED_BY_RELATION = YES REFERENCES_RELATION = YES +USE_HTAGS = NO VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index @@ -209,18 +216,22 @@ HAVE_DOT = YES CLASS_GRAPH = YES COLLABORATION_GRAPH = YES +GROUP_GRAPHS = YES UML_LOOK = NO TEMPLATE_RELATIONS = YES INCLUDE_GRAPH = YES INCLUDED_BY_GRAPH = YES CALL_GRAPH = YES GRAPHICAL_HIERARCHY = YES +DIRECTORY_GRAPH = YES DOT_IMAGE_FORMAT = png -DOT_PATH = +DOT_PATH = C:/Programme/Grafik/GraphViz/Graphviz/bin DOTFILE_DIRS = MAX_DOT_GRAPH_WIDTH = 1024 MAX_DOT_GRAPH_HEIGHT = 1024 MAX_DOT_GRAPH_DEPTH = 1000 +DOT_TRANSPARENT = NO +DOT_MULTI_TARGETS = NO GENERATE_LEGEND = YES DOT_CLEANUP = YES #--------------------------------------------------------------------------- Modified: trunk/FEAPI/doc/doxyconfigPlug =================================================================== --- trunk/FEAPI/doc/doxyconfigPlug 2006-03-14 16:49:03 UTC (rev 65) +++ trunk/FEAPI/doc/doxyconfigPlug 2006-03-15 14:24:19 UTC (rev 66) @@ -1,11 +1,11 @@ -# Doxyfile 1.3.9.1 +# Doxyfile 1.4.5 #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- PROJECT_NAME = "FEAPI Feature Extraction Plugin documentation" PROJECT_NUMBER = -OUTPUT_DIRECTORY = ../doc +OUTPUT_DIRECTORY = CREATE_SUBDIRS = NO OUTPUT_LANGUAGE = English USE_WINDOWS_ENCODING = YES @@ -32,12 +32,14 @@ MULTILINE_CPP_IS_BRIEF = YES DETAILS_AT_TOP = YES INHERIT_DOCS = YES -DISTRIBUTE_GROUP_DOC = NO +SEPARATE_MEMBER_PAGES = NO TAB_SIZE = 4 ALIASES = "\"_THE_PLUGIN_CLASS=CFindAbsoluteMax\"" \ CFindAbsoluteMax=_THE_PLUGIN_CLASS OPTIMIZE_OUTPUT_FOR_C = NO OPTIMIZE_OUTPUT_JAVA = NO +BUILTIN_STL_SUPPORT = NO +DISTRIBUTE_GROUP_DOC = NO SUBGROUPING = YES #--------------------------------------------------------------------------- # Build related configuration options @@ -67,6 +69,7 @@ MAX_INITIALIZER_LINES = 30 SHOW_USED_FILES = YES SHOW_DIRECTORIES = YES +FILE_VERSION_FILTER = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- @@ -74,18 +77,22 @@ WARNINGS = YES WARN_IF_UNDOCUMENTED = NO WARN_IF_DOC_ERROR = YES +WARN_NO_PARAMDOC = NO WARN_FORMAT = "$file:$line: $text" WARN_LOGFILE = warn.log #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- -INPUT = ../doc/docugenPlug.txt \ - ../src/FEAPIExamplePluginFindMax/FEAPIExamplePluginFindMax.h \ - ../src/FEAPIExamplePluginFindMax/FEAPIExamplePluginFindMax.cpp \ - ../src/FEAPI/FEAPIPluginBase.cpp \ - ../src/incl/FEAPIPluginBase.h \ - ../incl/FEAPI.h \ - ../src/FEAPI/FEAPI.cpp +INPUT = docugenPlug.txt \ + ../sdk/plugin/src/FEAPIPluginBase.cpp \ + ../sdk/plugin/include/FEAPIPluginBase.h \ + ../include/FEAPI.h \ + ../sdk/plugin/include/FEAPIEntryPoints.h \ + ../examples/plugin/FEAPIExamplePluginFindRms \ + ../examples/plugin/FEAPIExamplePluginFindMax \ + ../examples/plugin/FEAPIExamplePluginLoudness \ + ../examples/plugin/FEAPIExamplePluginSpectral \ + ../examples/plugin/FEAPIExamplePluginZeroCrossings FILE_PATTERNS = *.h \ *.hpp \ *.txt \ @@ -109,6 +116,7 @@ STRIP_CODE_COMMENTS = YES REFERENCED_BY_RELATION = YES REFERENCES_RELATION = YES +USE_HTAGS = NO VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index @@ -214,18 +222,22 @@ HAVE_DOT = YES CLASS_GRAPH = YES COLLABORATION_GRAPH = YES +GROUP_GRAPHS = YES UML_LOOK = NO TEMPLATE_RELATIONS = YES INCLUDE_GRAPH = YES INCLUDED_BY_GRAPH = YES CALL_GRAPH = YES GRAPHICAL_HIERARCHY = YES +DIRECTORY_GRAPH = YES DOT_IMAGE_FORMAT = png -DOT_PATH = +DOT_PATH = C:/Programme/Grafik/GraphViz/Graphviz/bin DOTFILE_DIRS = MAX_DOT_GRAPH_WIDTH = 1024 MAX_DOT_GRAPH_HEIGHT = 1024 MAX_DOT_GRAPH_DEPTH = 1000 +DOT_TRANSPARENT = NO +DOT_MULTI_TARGETS = NO GENERATE_LEGEND = YES DOT_CLEANUP = YES #--------------------------------------------------------------------------- Modified: trunk/FEAPI/examples/host/Host_C/FEAPIExampleHost_C.cpp =================================================================== --- trunk/FEAPI/examples/host/Host_C/FEAPIExampleHost_C.cpp 2006-03-14 16:49:03 UTC (rev 65) +++ trunk/FEAPI/examples/host/Host_C/FEAPIExampleHost_C.cpp 2006-03-15 14:24:19 UTC (rev 66) @@ -50,6 +50,7 @@ * * @param **pcInputPath : input audio file path, to be written * @param **pcOutputPath : output text path, to be written + * @param *pbSilentMode : bool if in silent mode or not, to be written * @param argc : * @param *argv[] : * @@ -105,7 +106,7 @@ float *pfDataInterleaved = 0, **ppfDataSorted = 0, **ppfResult = 0; - FEAPI_ModuleHandle_t hDllHandle = 0; + FEAPI_ModuleHandle_t hLibraryHandle = 0; FEAPI_PluginFileNames_t *pCurrentPlugin = 0; @@ -185,13 +186,13 @@ pCurrentPlugin = pCurrentPlugin->pNextPlugin; } - // load plugin dll - hDllHandle = 0; - LoadPluginModule (pCurrentPlugin->acFilename, &hDllHandle); - if (!hDllHandle) + // load plugin library + hLibraryHandle = 0; + LoadPluginModule (pCurrentPlugin->acFilename, &hLibraryHandle); + if (!hLibraryHandle) return -1; else - GetFunctionPointers (hDllHandle, &stPluginFunctions); + GetFunctionPointers (hLibraryHandle, &stPluginFunctions); // open input audio file if (pcInputPath == 0) @@ -491,7 +492,7 @@ else fprintf (stdout, " Failed\n"); - UnloadPluginModule (hDllHandle); + UnloadPluginModule (hLibraryHandle); // free allocated memory for (i = 0; i < iNumResults; i++) Modified: trunk/FEAPI/examples/plugin/FEAPIExamplePluginFindMax/FEAPIExamplePluginFindMax.cpp =================================================================== --- trunk/FEAPI/examples/plugin/FEAPIExamplePluginFindMax/FEAPIExamplePluginFindMax.cpp 2006-03-14 16:49:03 UTC (rev 65) +++ trunk/FEAPI/examples/plugin/FEAPIExamplePluginFindMax/FEAPIExamplePluginFindMax.cpp 2006-03-15 14:24:19 UTC (rev 66) @@ -33,35 +33,6 @@ // POSSIBILITY OF SUCH DAMAGE. // //////////////////////////////////////////////////////////////////////////////////// -// CVS INFORMATION -// -// $RCSfile$ -// $Author$ -// $Date$ -// -// $Log$ -// Revision 1.1.2.2 2006/01/19 13:27:13 remymuller -// directory reorganization -// -// Revision 1.4 2006/01/18 11:46:52 remymuller -// removed itoa with sprintf -// -// Revision 1.3 2005/07/11 16:56:54 alex_lerch -// - minor changes -// -// Revision 1.2 2005/05/20 17:21:07 alex_lerch -// - usage of strings instead of chars -// - cosmetic changes -// -// Revision 1.1.1.1 2005/03/30 14:54:40 alex_lerch -// first draft version requiring several updates: -// - interface check -// - check of plugin base class -// - implementation of host base class -// - update of outdated documentation -// -// -//////////////////////////////////////////////////////////////////////////////////// #include <string> @@ -104,7 +75,7 @@ #define _FEATURE_SAMPLERATE -1 // output sample rate equals input block length -_THE_PLUGIN_CLASS::_THE_PLUGIN_CLASS () : CFeatureExtractBase() +CFindAbsoluteMax::CFindAbsoluteMax () : CFeatureExtractBase() { // we have no special setting, so the number of parameters is zero in this case @@ -127,7 +98,7 @@ } -_THE_PLUGIN_CLASS::~_THE_PLUGIN_CLASS () +CFindAbsoluteMax::~CFindAbsoluteMax () { // destroy feature vector if (m_pfMaxValue) @@ -141,7 +112,7 @@ } -FEAPI_Error_t _THE_PLUGIN_CLASS::InitializePlugin (float fInputSampleRate, +FEAPI_Error_t CFindAbsoluteMax::InitializePlugin (float fInputSampleRate, int iNumberOfAudioChannels, int iHostApiMajorVersion, FEAPI_UserData_t *pstUserData) @@ -173,7 +144,7 @@ } -FEAPI_Error_t _THE_PLUGIN_CLASS::GetPluginResultDescription (int iResultIndex, FEAPI_SignalDescription_t *pstResultDescription) +FEAPI_Error_t CFindAbsoluteMax::GetPluginResultDescription (int iResultIndex, FEAPI_SignalDescription_t *pstResultDescription) { // the description is for all results identical in this case // only the channel number changes (channel number equals feature number for this plugin) @@ -193,7 +164,7 @@ } -FEAPI_Error_t _THE_PLUGIN_CLASS::GetPluginInputDescription (int iInputIndex, FEAPI_SignalDescription_t *pstInputDescription) +FEAPI_Error_t CFindAbsoluteMax::GetPluginInputDescription (int iInputIndex, FEAPI_SignalDescription_t *pstInputDescription) { // the description is for all inputs identical in this case // only the channel number changes (channel number equals feature number for this plugin) @@ -223,41 +194,41 @@ } -FEAPI_Error_t _THE_PLUGIN_CLASS::GetPluginParameterDescription (int iParameterIndex, FEAPI_ParameterDescription_t *pstParameterDescription) +FEAPI_Error_t CFindAbsoluteMax::GetPluginParameterDescription (int iParameterIndex, FEAPI_ParameterDescription_t *pstParameterDescription) { // we don't have any parameters in this plugin return FEAPI_kUnknownError; } -FEAPI_Error_t _THE_PLUGIN_CLASS::SetPluginParameter (int iParameterIndex, float fValue) +FEAPI_Error_t CFindAbsoluteMax::SetPluginParameter (int iParameterIndex, float fValue) { // we don't have any parameters in this plugin return FEAPI_kUnknownError; } -float _THE_PLUGIN_CLASS::GetPluginParameter (int iParameterIndex) +float CFindAbsoluteMax::GetPluginParameter (int iParameterIndex) { // we don't have any parameters in this plugin return -1; } -int _THE_PLUGIN_CLASS::GetPluginResultLatency (int iResultIndex) +int CFindAbsoluteMax::GetPluginResultLatency (int iResultIndex) { //<! \todo format??? return 0; } -FEAPI_Error_t _THE_PLUGIN_CLASS::ProcessPluginDone () +FEAPI_Error_t CFindAbsoluteMax::ProcessPluginDone () { // we don't have to do anything special here return FEAPI_kNoError; } -FEAPI_Error_t _THE_PLUGIN_CLASS::ProcessPlugin (const float **ppfInputBuffer, const FEAPI_TimeStamp_t *ptTimeStamps, int iNumberOfFrames) +FEAPI_Error_t CFindAbsoluteMax::ProcessPlugin (const float **ppfInputBuffer, const FEAPI_TimeStamp_t *ptTimeStamps, int iNumberOfFrames) { int iCh, iIdx; @@ -280,7 +251,7 @@ return FEAPI_kNoError; } -int _THE_PLUGIN_CLASS::GetPluginSizeOfResult (int iResultIndex) +int CFindAbsoluteMax::GetPluginSizeOfResult (int iResultIndex) { if (iResultIndex >= m_iNumberOfResults) return -1; @@ -292,7 +263,7 @@ } -FEAPI_Error_t _THE_PLUGIN_CLASS::GetPluginResult (int iResultIndex, float *pfResult, FEAPI_TimeStamp_t *ptTimeStamp) +FEAPI_Error_t CFindAbsoluteMax::GetPluginResult (int iResultIndex, float *pfResult, FEAPI_TimeStamp_t *ptTimeStamp) { if ((iResultIndex >= m_iNumberOfResults) || (!m_pbIHaveResults[iResultIndex])) return FEAPI_kUnknownError; @@ -307,7 +278,7 @@ } -FEAPI_Error_t _THE_PLUGIN_CLASS::ResetPlugin () +FEAPI_Error_t CFindAbsoluteMax::ResetPlugin () { int i; @@ -318,7 +289,7 @@ } -float _THE_PLUGIN_CLASS::GetPluginProperty ( FEAPI_PluginProperty_t ePluginProperty) +float CFindAbsoluteMax::GetPluginProperty ( FEAPI_PluginProperty_t ePluginProperty) { switch (ePluginProperty) { @@ -366,7 +337,7 @@ extern "C" { #endif -FEAPI_ENTRY_POINTS(_THE_PLUGIN_CLASS) +FEAPI_ENTRY_POINTS(CFindAbsoluteMax) #ifdef __cplusplus } Modified: trunk/FEAPI/examples/plugin/FEAPIExamplePluginFindMax/FEAPIExamplePluginFindMax.h =================================================================== --- trunk/FEAPI/examples/plugin/FEAPIExamplePluginFindMax/FEAPIExamplePluginFindMax.h 2006-03-14 16:49:03 UTC (rev 65) +++ trunk/FEAPI/examples/plugin/FEAPIExamplePluginFindMax/FEAPIExamplePluginFindMax.h 2006-03-15 14:24:19 UTC (rev 66) @@ -33,31 +33,6 @@ // POSSIBILITY OF SUCH DAMAGE. // //////////////////////////////////////////////////////////////////////////////////// -// CVS INFORMATION -// -// $RCSfile$ -// $Author$ -// $Date$ -// -// $Log$ -// Revision 1.1.2.2 2006/01/19 13:27:13 remymuller -// directory reorganization -// -// Revision 1.3 2005/06/20 16:45:22 alex_lerch -// - changed variable name in function declaration for doxygen consistency -// -// Revision 1.2 2005/05/20 17:20:14 alex_lerch -// - adde missing functions -// -// Revision 1.1.1.1 2005/03/30 14:54:40 alex_lerch -// first draft version requiring several updates: -// - interface check -// - check of plugin base class -// - implementation of host base class -// - update of outdated documentation -// -// -//////////////////////////////////////////////////////////////////////////////////// #if !defined(FIND_ABSOLUTE_MAX_HEADER_INCLUDED__) #define FIND_ABSOLUTE_MAX_HEADER_INCLUDED__ @@ -65,8 +40,6 @@ #include "FEAPIPluginBase.h" -#define _THE_PLUGIN_CLASS CFindAbsoluteMax // change this class name to your class - /*! the class ::CFindAbsoluteMax is an example class to demonstrate how to implement a plug-in for the Feature Extraction API. The functionality of this plug-in is to find @@ -74,13 +47,13 @@ results in dBFS. */ -class _THE_PLUGIN_CLASS : public CFeatureExtractBase +class CFindAbsoluteMax : public CFeatureExtractBase { public: - _THE_PLUGIN_CLASS (); + CFindAbsoluteMax (); - virtual ~_THE_PLUGIN_CLASS (); + virtual ~CFindAbsoluteMax (); //////////////////////////////////////////////////////////////////////////////////////// Modified: trunk/FEAPI/examples/plugin/FEAPIExamplePluginFindRms/FEAPIExamplePluginFindRms.cpp =================================================================== --- trunk/FEAPI/examples/plugin/FEAPIExamplePluginFindRms/FEAPIExamplePluginFindRms.cpp 2006-03-14 16:49:03 UTC (rev 65) +++ trunk/FEAPI/examples/plugin/FEAPIExamplePluginFindRms/FEAPIExamplePluginFindRms.cpp 2006-03-15 14:24:19 UTC (rev 66) @@ -1,5 +1,5 @@ //////////////////////////////////////////////////////////////////////////////////// -// /*! \file FEAPIExamplePluginFindMax.cpp: \brief implementation of the CFindAbsoluteMax class. */ +// /*! \file FEAPIExamplePluginFindRms.cpp: \brief implementation of the CFindAbsoluteRms class. */ // // Copyright (c) 2004-2005, Alexander Lerch, zplane.development GbR // All rights reserved. @@ -33,18 +33,6 @@ // POSSIBILITY OF SUCH DAMAGE. // //////////////////////////////////////////////////////////////////////////////////// -// CVS INFORMATION -// -// $RCSfile$ -// $Author: remymuller $ -// $Date: 2006-01-19 13:22:21 +0100 (do, 19 jan 2006) $ -// -// $Log$ -// Revision 1.1.2.1 2006/01/19 12:22:21 remymuller -// moved example into examples folder -// -// -//////////////////////////////////////////////////////////////////////////////////// #include <string> #include <iostream> @@ -53,6 +41,7 @@ #include "FEAPI.h" #include "FEAPIExamplePluginFindRms.h" +#include "FEAPIEntryPoints.h" #ifndef FLT_MAX #define FLT_MAX 3.402823466e+38F @@ -327,8 +316,6 @@ /////////////////////////////////////// // entry points -#include "FEAPIEntryPoints.h" - #ifdef __cplusplus extern "C" { #endif Modified: trunk/FEAPI/examples/plugin/FEAPIExamplePluginFindRms/FEAPIExamplePluginFindRms.h =================================================================== --- trunk/FEAPI/examples/plugin/FEAPIExamplePluginFindRms/FEAPIExamplePluginFindRms.h 2006-03-14 16:49:03 UTC (rev 65) +++ trunk/FEAPI/examples/plugin/FEAPIExamplePluginFindRms/FEAPIExamplePluginFindRms.h 2006-03-15 14:24:19 UTC (rev 66) @@ -1,5 +1,5 @@ ////////////////////////////////////////////////////////////... [truncated message content] |
From: <fea...@li...> - 2006-03-14 16:49:34
|
Revision: 65 Author: alex_lerch Date: 2006-03-14 08:49:03 -0800 (Tue, 14 Mar 2006) ViewCVS: http://svn.sourceforge.net/feapi/?rev=65&view=rev Log Message: ----------- Replaced the const variables in the API with enum. Note that the name of the values is slightly changed, unfortunately that could break existing hosts (replace FEAPI_ui* with FEAPI_k*). Under the reasonable assumption that there are no existing hosts, and for the sake of consistency, I changed them nevertheless. Modified Paths: -------------- trunk/FEAPI/build/Win/ExamplePluginFindRms/ExamplePluginFindRms.dsp trunk/FEAPI/build/Win/FEAPIHost_C/FEAPITestCL.dsp trunk/FEAPI/examples/host/FEAPI_MaxMSP_Host/feapi~.cpp trunk/FEAPI/examples/host/Host_C/FEAPIExampleHost_C.cpp trunk/FEAPI/examples/plugin/FEAPIExamplePluginFindMax/FEAPIExamplePluginFindMax.cpp trunk/FEAPI/examples/plugin/FEAPIExamplePluginFindRms/FEAPIExamplePluginFindRms.cpp trunk/FEAPI/examples/plugin/FEAPIExamplePluginLoudness/FEAPIExamplePluginLoudness.cpp trunk/FEAPI/examples/plugin/FEAPIExamplePluginSpectral/FEAPIExamplePluginSpectral.cpp trunk/FEAPI/examples/plugin/FEAPIExamplePluginZeroCrossings/FEAPIExamplePluginZeroCrossings.cpp trunk/FEAPI/include/FEAPI.h trunk/FEAPI/sdk/host/include/FEAPIPluginProxy.h trunk/FEAPI/sdk/plugin/include/FEAPIPluginBase.h trunk/FEAPI/sdk/plugin/src/FEAPIPluginBase.cpp Modified: trunk/FEAPI/build/Win/ExamplePluginFindRms/ExamplePluginFindRms.dsp =================================================================== --- trunk/FEAPI/build/Win/ExamplePluginFindRms/ExamplePluginFindRms.dsp 2006-03-14 11:15:31 UTC (rev 64) +++ trunk/FEAPI/build/Win/ExamplePluginFindRms/ExamplePluginFindRms.dsp 2006-03-14 16:49:03 UTC (rev 65) @@ -112,14 +112,6 @@ SOURCE=..\..\..\license\license.txt # End Source File # End Group -# Begin Group "Definition Files" - -# PROP Default_Filter "def" -# Begin Source File - -SOURCE=.\FEAPIExamplePluginFindRms.def -# End Source File -# End Group # Begin Group "FEAPI" # PROP Default_Filter "" Modified: trunk/FEAPI/build/Win/FEAPIHost_C/FEAPITestCL.dsp =================================================================== (Binary files differ) Modified: trunk/FEAPI/examples/host/FEAPI_MaxMSP_Host/feapi~.cpp =================================================================== --- trunk/FEAPI/examples/host/FEAPI_MaxMSP_Host/feapi~.cpp 2006-03-14 11:15:31 UTC (rev 64) +++ trunk/FEAPI/examples/host/FEAPI_MaxMSP_Host/feapi~.cpp 2006-03-14 16:49:03 UTC (rev 65) @@ -168,8 +168,8 @@ static void feapi_getname(feapi_t *self) { CFEAPIPluginProxy &plugin = self->plugin; - char text[FEAPI_uiMaxNameLength]; - memset(text,0,FEAPI_uiMaxNameLength); + char text[FEAPI_kMaxNameLength]; + memset(text,0,FEAPI_kMaxNameLength); plugin.GetPluginName(text); t_atom atoms[1]; @@ -182,8 +182,8 @@ static void feapi_getid(feapi_t *self) { CFEAPIPluginProxy &plugin = self->plugin; - char text[FEAPI_uiMaxNameLength]; - memset(text,0,FEAPI_uiMaxNameLength); + char text[FEAPI_kMaxNameLength]; + memset(text,0,FEAPI_kMaxNameLength); plugin.GetPluginId(text); t_atom atoms[1]; @@ -195,8 +195,8 @@ static void feapi_getcopyright(feapi_t *self) { CFEAPIPluginProxy &plugin = self->plugin; - char text[FEAPI_uiMaxUnitLength]; - memset(text,0,FEAPI_uiMaxUnitLength); + char text[FEAPI_kMaxUnitLength]; + memset(text,0,FEAPI_kMaxUnitLength); plugin.GetPluginCopyright(text); t_atom atoms[1]; @@ -208,8 +208,8 @@ static void feapi_getdescription(feapi_t *self) { CFEAPIPluginProxy &plugin = self->plugin; - char text[FEAPI_uiMaxDescriptionLength]; - memset(text,0,FEAPI_uiMaxDescriptionLength); + char text[FEAPI_kMaxDescriptionLength]; + memset(text,0,FEAPI_kMaxDescriptionLength); plugin.GetPluginDescription(text); t_atom atoms[1]; @@ -221,8 +221,8 @@ static void feapi_getvendor(feapi_t *self) { CFEAPIPluginProxy &plugin = self->plugin; - char text[FEAPI_uiMaxNameLength]; - memset(text,0,FEAPI_uiMaxNameLength); + char text[FEAPI_kMaxNameLength]; + memset(text,0,FEAPI_kMaxNameLength); plugin.GetPluginVendor(text); t_atom atoms[1]; @@ -241,9 +241,9 @@ CFEAPIPluginProxy &plugin = self->plugin; FEAPI_ParameterDescription_t description; - memset(description.acDescription,0,FEAPI_uiMaxDescriptionLength); - memset(description.acName,0,FEAPI_uiMaxNameLength); - memset(description.acUnit,0,FEAPI_uiMaxUnitLength); + memset(description.acDescription,0,FEAPI_kMaxDescriptionLength); + memset(description.acName,0,FEAPI_kMaxNameLength); + memset(description.acUnit,0,FEAPI_kMaxUnitLength); if(plugin.GetPluginParameterDescription(i,&description) != FEAPI_kNoError) return; @@ -287,9 +287,9 @@ CFEAPIPluginProxy &plugin = self->plugin; FEAPI_SignalDescription_t description; - memset(description.acDescription,0,FEAPI_uiMaxDescriptionLength); - memset(description.acName,0,FEAPI_uiMaxNameLength); - memset(description.acUnit,0,FEAPI_uiMaxUnitLength); + memset(description.acDescription,0,FEAPI_kMaxDescriptionLength); + memset(description.acName,0,FEAPI_kMaxNameLength); + memset(description.acUnit,0,FEAPI_kMaxUnitLength); if(plugin.GetPluginResultDescription(i,&description) != FEAPI_kNoError) return; @@ -416,8 +416,8 @@ if(plugin.Create() != FEAPI_kNoError) throw std::runtime_error("can't instantiate feapi plugin"); - char name[FEAPI_uiMaxNameLength]; - memset(name,0,FEAPI_uiMaxNameLength); + char name[FEAPI_kMaxNameLength]; + memset(name,0,FEAPI_kMaxNameLength); plugin.GetPluginName(name); #ifdef NDEBUG post(name); @@ -526,7 +526,7 @@ void feapi_assist (feapi_t *self, void *box, long msg,long arg, char *dst) { long maxsize = 64; - //long size = FEAPI_uiMaxNameLength; // max crashes with 1024 + //long size = FEAPI_kMaxNameLength; // max crashes with 1024 if (msg==ASSIST_INLET) { Modified: trunk/FEAPI/examples/host/Host_C/FEAPIExampleHost_C.cpp =================================================================== --- trunk/FEAPI/examples/host/Host_C/FEAPIExampleHost_C.cpp 2006-03-14 11:15:31 UTC (rev 64) +++ trunk/FEAPI/examples/host/Host_C/FEAPIExampleHost_C.cpp 2006-03-14 16:49:03 UTC (rev 65) @@ -76,7 +76,7 @@ char *pcInputPath = 0, *pcOutputPath = 0, - acResult[FEAPI_uiMaxDescriptionLength]; + acResult[FEAPI_kMaxDescriptionLength]; int iNumOfFramesNeeded = 0, iNumFramesRead = 0, Modified: trunk/FEAPI/examples/plugin/FEAPIExamplePluginFindMax/FEAPIExamplePluginFindMax.cpp =================================================================== --- trunk/FEAPI/examples/plugin/FEAPIExamplePluginFindMax/FEAPIExamplePluginFindMax.cpp 2006-03-14 11:15:31 UTC (rev 64) +++ trunk/FEAPI/examples/plugin/FEAPIExamplePluginFindMax/FEAPIExamplePluginFindMax.cpp 2006-03-14 16:49:03 UTC (rev 65) @@ -206,10 +206,10 @@ //tmp.append (itoa(iInputIndex,actmp,10)); //itoa is not standard sprintf(actmp,"%d",iInputIndex); tmp.append(actmp); - tmp.copy (pstInputDescription->acName, FEAPI_uiMaxNameLength); + tmp.copy (pstInputDescription->acName, FEAPI_kMaxNameLength); tmp.erase (0, tmp.length ()); - tmp.copy (pstInputDescription->acUnit, FEAPI_uiMaxNameLength); + tmp.copy (pstInputDescription->acUnit, FEAPI_kMaxNameLength); tmp.erase (0, tmp.length ()); strcpy (pstInputDescription->acDescription, pstInputDescription->acName); Modified: trunk/FEAPI/examples/plugin/FEAPIExamplePluginFindRms/FEAPIExamplePluginFindRms.cpp =================================================================== --- trunk/FEAPI/examples/plugin/FEAPIExamplePluginFindRms/FEAPIExamplePluginFindRms.cpp 2006-03-14 11:15:31 UTC (rev 64) +++ trunk/FEAPI/examples/plugin/FEAPIExamplePluginFindRms/FEAPIExamplePluginFindRms.cpp 2006-03-14 16:49:03 UTC (rev 65) @@ -177,10 +177,10 @@ //tmp.append (itoa(iInputIndex,actmp,10)); //itoa is not standard sprintf(actmp,"%d",iInputIndex); tmp.append(actmp); - tmp.copy (pstInputDescription->acName, FEAPI_uiMaxNameLength); + tmp.copy (pstInputDescription->acName, FEAPI_kMaxNameLength); tmp.erase (0, tmp.length ()); - tmp.copy (pstInputDescription->acUnit, FEAPI_uiMaxNameLength); + tmp.copy (pstInputDescription->acUnit, FEAPI_kMaxNameLength); tmp.erase (0, tmp.length ()); strcpy (pstInputDescription->acDescription, pstInputDescription->acName); Modified: trunk/FEAPI/examples/plugin/FEAPIExamplePluginLoudness/FEAPIExamplePluginLoudness.cpp =================================================================== --- trunk/FEAPI/examples/plugin/FEAPIExamplePluginLoudness/FEAPIExamplePluginLoudness.cpp 2006-03-14 11:15:31 UTC (rev 64) +++ trunk/FEAPI/examples/plugin/FEAPIExamplePluginLoudness/FEAPIExamplePluginLoudness.cpp 2006-03-14 16:49:03 UTC (rev 65) @@ -462,10 +462,10 @@ char actmp[100]; sprintf(actmp,"%d",iInputIndex); tmp.append (actmp); - tmp.copy (pstInputDescription->acName, FEAPI_uiMaxNameLength); + tmp.copy (pstInputDescription->acName, FEAPI_kMaxNameLength); tmp.erase (0, tmp.length ()); - tmp.copy (pstInputDescription->acUnit, FEAPI_uiMaxNameLength); + tmp.copy (pstInputDescription->acUnit, FEAPI_kMaxNameLength); tmp.erase (0, tmp.length ()); strcpy (pstInputDescription->acDescription, pstInputDescription->acName); Modified: trunk/FEAPI/examples/plugin/FEAPIExamplePluginSpectral/FEAPIExamplePluginSpectral.cpp =================================================================== --- trunk/FEAPI/examples/plugin/FEAPIExamplePluginSpectral/FEAPIExamplePluginSpectral.cpp 2006-03-14 11:15:31 UTC (rev 64) +++ trunk/FEAPI/examples/plugin/FEAPIExamplePluginSpectral/FEAPIExamplePluginSpectral.cpp 2006-03-14 16:49:03 UTC (rev 65) @@ -400,10 +400,10 @@ std::string tmp = "Channel: "; char actmp[100] ; tmp.append (itoa(iInputIndex,actmp,10)); - tmp.copy (pstInputDescription->acName, FEAPI_uiMaxNameLength); + tmp.copy (pstInputDescription->acName, FEAPI_kMaxNameLength); tmp.erase (0, tmp.length ()); - tmp.copy (pstInputDescription->acUnit, FEAPI_uiMaxNameLength); + tmp.copy (pstInputDescription->acUnit, FEAPI_kMaxNameLength); tmp.erase (0, tmp.length ()); strcpy (pstInputDescription->acDescription, pstInputDescription->acName); Modified: trunk/FEAPI/examples/plugin/FEAPIExamplePluginZeroCrossings/FEAPIExamplePluginZeroCrossings.cpp =================================================================== --- trunk/FEAPI/examples/plugin/FEAPIExamplePluginZeroCrossings/FEAPIExamplePluginZeroCrossings.cpp 2006-03-14 11:15:31 UTC (rev 64) +++ trunk/FEAPI/examples/plugin/FEAPIExamplePluginZeroCrossings/FEAPIExamplePluginZeroCrossings.cpp 2006-03-14 16:49:03 UTC (rev 65) @@ -270,10 +270,10 @@ char actmp[100] ; sprintf(actmp,"%d",iInputIndex); tmp.append (actmp); - tmp.copy (pstInputDescription->acName, FEAPI_uiMaxNameLength); + tmp.copy (pstInputDescription->acName, FEAPI_kMaxNameLength); tmp.erase (0, tmp.length ()); - tmp.copy (pstInputDescription->acUnit, FEAPI_uiMaxNameLength); + tmp.copy (pstInputDescription->acUnit, FEAPI_kMaxNameLength); tmp.erase (0, tmp.length ()); strcpy (pstInputDescription->acDescription, pstInputDescription->acName); Modified: trunk/FEAPI/include/FEAPI.h =================================================================== --- trunk/FEAPI/include/FEAPI.h 2006-03-14 11:15:31 UTC (rev 64) +++ trunk/FEAPI/include/FEAPI.h 2006-03-14 16:49:03 UTC (rev 65) @@ -119,35 +119,7 @@ // POSSIBILITY OF SUCH DAMAGE. // //////////////////////////////////////////////////////////////////////////////////// -// CVS INFORMATION -// -// $RCSfile$ -// $Author$ -// $Date$ -// -// $Log$ -// Revision 1.1.2.1 2006/01/19 14:06:57 remymuller -// directory reorganization -// -// Revision 1.2.2.1 2006/01/19 13:27:13 remymuller -// directory reorganization -// -// Revision 1.2 2005/05/20 17:08:36 alex_lerch -// - updated documentation -// - added "signal" typedef for inputs and results -// - changed function PluginCanDo to PluginGetProperty and changed the function itself to return values instead of bools -// - cosmetic changes -// -// Revision 1.1.1.1 2005/03/30 14:54:40 alex_lerch -// first draft version requiring several updates: -// - interface check -// - check of plugin base class -// - implementation of host base class -// - update of outdated documentation -// -// //////////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////////// // !!!Do never ever edit this file!!! //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// @@ -160,24 +132,27 @@ extern "C" { #endif -/* Maximum string lengths. */ -const unsigned int FEAPI_uiMaxNameLength = 1024; //!< maximum number of characters for a name string (including null terminator) -const unsigned int FEAPI_uiMaxUnitLength = 1024; //!< maximum number of characters for a unit string (including null terminator) -const unsigned int FEAPI_uiMaxDescriptionLength = 4096; //!< maximum number of characters for a description string (including null terminator) - //////////////////////////////////////////////////////////////////////////////////// // interface structures and types /** @defgroup types Interface Structures and Types * @{ */ +/* Maximum string lengths in API */ +typedef enum FEAPI_MaxStringLengths_t_tag +{ + FEAPI_kMaxNameLength = 1024, //!< maximum number of characters for a name string (including null terminator) + FEAPI_kMaxUnitLength = 1024, //!< maximum number of characters for a unit string (including null terminator) + FEAPI_kMaxDescriptionLength = 4096 //!< maximum number of characters for a description string (including null terminator) +} FEAPI_MaxStringLengths_t; + /*! Structure describing properties and other information about one result/feature. */ typedef struct FEAPI_SignalDescription_t_tag { - char acName[FEAPI_uiMaxNameLength]; //!< name of the result/feature (e.g. "Spectral Centroid", "Loudness", etc.) - char acUnit[FEAPI_uiMaxUnitLength]; //!< unit of the result/feature (e.g. "dB", "sone", "Hz", etc.) - char acDescription[FEAPI_uiMaxDescriptionLength]; //!< description of the result/feature (clear text description) + char acName[FEAPI_kMaxNameLength]; //!< name of the result/feature (e.g. "Spectral Centroid", "Loudness", etc.) + char acUnit[FEAPI_kMaxUnitLength]; //!< unit of the result/feature (e.g. "dB", "sone", "Hz", etc.) + char acDescription[FEAPI_kMaxDescriptionLength]; //!< description of the result/feature (clear text description) float fRangeMin; //!< minimum value of the result/feature (if no minimum value: minimum floating point value) float fRangeMax; //!< maximum value of the result/feature (if no maximum value: maximum floating point value) float fQuantizedTo; //!< quantization step size of the result/feature (e.g. 1 for integer result, -1 for no quantization) @@ -188,21 +163,21 @@ /*! Structure describing properties and other information about one parameter. */ typedef struct FEAPI_ParameterDescription_t_tag { - char acName[FEAPI_uiMaxNameLength]; //!< name of the parameter (e.g. "Gain", "Sensitivity", etc.) - char acUnit[FEAPI_uiMaxUnitLength]; //!< unit of the parameter (e.g. "dB", "Hz", etc.) - char acDescription[FEAPI_uiMaxDescriptionLength]; //!< description of the parameter (clear text description) + char acName[FEAPI_kMaxNameLength]; //!< name of the parameter (e.g. "Gain", "Sensitivity", etc.) + char acUnit[FEAPI_kMaxUnitLength]; //!< unit of the parameter (e.g. "dB", "Hz", etc.) + char acDescription[FEAPI_kMaxDescriptionLength]; //!< description of the parameter (clear text description) float fRangeMin, //!< minimum value of the parameter (if no minimum value: minimum floating point value) fRangeMax, //!< maximum value of the parameter (if no maximum value: maximum floating point value) fDefaultValue; //!< default value for the parameter float fQuantizedTo; //!< quantization step size of the parameter (e.g. 1 for integer quantization, -1 for no quantization) - int bIsChangeableInRealTime;//!< 0/false if the parameter has to be set before the processing starts and can not be changed during processing, 1 if the parameter can be changed during processing + int bIsChangeableInRealTime;//!< 0/false if the parameter has to be set before the processing starts and can not be changed during processing, 1 if the parameter can be changed during processing (*NOTE: you have to call initialize after changing a non-realtime parameter*) } FEAPI_ParameterDescription_t; /*! Structure for user/vendor defined commands. */ typedef struct FEAPI_UserData_t_tag { - char *pcUserString; //!< user defined string value (memory could be freed by host after function call) + char *pcUserString; //!< user defined string value (memory could be freed by host after function call, it has to be copied internally) void *pcUserData; //!< pointer to user defined data } FEAPI_UserData_t; @@ -223,7 +198,8 @@ /*! Enumerator for possible error return values, if any other value than FEAPI_kNoError is returned, the function was not able to execute the specified operation(s).<br> - All error defines are negative. */ + All error defines are negative. + \todo add more errors */ typedef enum FEAPI_Error_t_tag { FEAPI_kNoError = 0, //!< no error occurred @@ -278,13 +254,14 @@ typedef FEAPI_Error_t (*FEAPI_DestroyPluginInstance_t) ( FEAPI_PluginInstance_t *phInstanceHandle ); /*! - * initializes a new instance of the plugin + * initializes a new instance of the plugin, has to be called before processing and after changing a + * non-realtime parameter * * @param hInstanceHandle : handle to the instance * @param fInputSampleRate : sample rate of input(s) in Hz * @param iNumberOfAudioChannels : number of input audio channels - * @param iHostApiMajorVersion : major version number of host - * @param pstUserData : pointer to user or vendor defined data (may be NULL) + * @param iHostApiMajorVersion : major version number of *host* + * @param pstUserData : pointer to user/vendor defined data (may be NULL) * * @return FEAPI_Error_t : FEAPI_kNoError when no error */ @@ -300,7 +277,7 @@ * This is *not* the plugin version, therefore the function may be called without a previously * created instance. * - * @param eAPIMajorMinorOrSubVersion : flag which version type is requested + * @param eAPIMajorMinorOrSubVersion : flag to indicate which version type is requested * @return int : requested version number */ typedef int (*FEAPI_GetPluginAPIVersion_t) ( FEAPI_VersionInfo_t eAPIMajorMinorOrSubVersion ); //!< \todo change ints to (unsigned) ints where appropriate? @@ -310,7 +287,7 @@ * Gets the name of the plugin. * * @param hInstanceHandle : handle to instance - * @param *pcPluginName : pointer to buffer of FEAPI_uiMaxNameLength chars, the name will be copied to this buffer + * @param *pcPluginName : pointer to buffer of FEAPI_kMaxNameLength chars, the name will be copied to this buffer * @return FEAPI_Error_t : FEAPI_kNoError when no error */ typedef FEAPI_Error_t (*FEAPI_GetPluginName_t) ( FEAPI_PluginInstance_t hInstanceHandle, @@ -320,7 +297,7 @@ * Gets the vendor name of the plugin. * * @param hInstanceHandle : handle to instance - * @param *pcPluginVendor : pointer to buffer of FEAPI_uiMaxNameLength chars, the vendor name will be copied to this buffer + * @param *pcPluginVendor : pointer to buffer of FEAPI_kMaxNameLength chars, the vendor name will be copied to this buffer * @return FEAPI_Error_t : FEAPI_kNoError when no error */ typedef FEAPI_Error_t (*FEAPI_GetPluginVendor_t) (FEAPI_PluginInstance_t hInstanceHandle, @@ -340,7 +317,7 @@ * Gets the (vendor unique) plugin identification string. * * @param hInstanceHandle : handle to instance - * @param *pcPluginId : pointer to buffer of FEAPI_uiMaxNameLength chars, the id will be copied to this buffer + * @param *pcPluginId : pointer to buffer of FEAPI_kMaxNameLength chars, the id will be copied to this buffer * @return FEAPI_Error_t : FEAPI_kNoError when no error */ typedef FEAPI_Error_t (*FEAPI_GetPluginId_t) (FEAPI_PluginInstance_t hInstanceHandle, @@ -360,7 +337,7 @@ * Gets the description of the plugin, containing information about what the plugin actually does. * * @param hInstanceHandle : handle to instance - * @param *pcPluginDescription : pointer to buffer of FEAPI_uiMaxDescriptionLength chars, the plugin description will be copied to this buffer + * @param *pcPluginDescription : pointer to buffer of FEAPI_kMaxDescriptionLength chars, the plugin description will be copied to this buffer * @return FEAPI_Error_t : FEAPI_kNoError when no error */ typedef FEAPI_Error_t (*FEAPI_GetPluginDescription_t) (FEAPI_PluginInstance_t hInstanceHandle, @@ -370,7 +347,7 @@ * Gets the copyright information for the plugin. * * @param hInstanceHandle : handle to instance - * @param *pcPluginCopyright : pointer to buffer of FEAPI_uiMaxDescriptionLength chars, the plugin copyright information will be copied to this buffer + * @param *pcPluginCopyright : pointer to buffer of FEAPI_kMaxDescriptionLength chars, the plugin copyright information will be copied to this buffer * @return FEAPI_Error_t : FEAPI_kNoError when no error */ typedef FEAPI_Error_t (*FEAPI_GetPluginCopyright_t) (FEAPI_PluginInstance_t hInstanceHandle, @@ -464,7 +441,7 @@ typedef FEAPI_Error_t (*FEAPI_ProcessPluginDone_t) (FEAPI_PluginInstance_t hInstanceHandle); /*! - * Gets the number of results/features to be calculated. + * Returns the number of results/features to be calculated. One result/feature can be a scalar or n-dimensional. * * @param hInstanceHandle : handle to instance * @return int : number of results @@ -484,11 +461,11 @@ FEAPI_SignalDescription_t *pstResultDescription); /*! - * Gets the size of one result in FEAPI_Signal_t values (4 bytes per value). + * Gets the size of one result in FEAPI_Signal_t values (4 bytes per value). * * @param hInstanceHandle : handle to instance * @param iResultIndex : index of the result/feature the size is requested for, index ranges from 0...NumOfResults-1 - * @return int : size of result in FEAPI_Signal_t values (4 bytes per value) + * @return int : size of result in FEAPI_Signal_t values (4 bytes per value). If the result/feature is a scalar, the return value is *always* 1. */ typedef int (*FEAPI_GetPluginSizeOfResult_t) (FEAPI_PluginInstance_t hInstanceHandle, int iResultIndex); Modified: trunk/FEAPI/sdk/host/include/FEAPIPluginProxy.h =================================================================== --- trunk/FEAPI/sdk/host/include/FEAPIPluginProxy.h 2006-03-14 11:15:31 UTC (rev 64) +++ trunk/FEAPI/sdk/host/include/FEAPIPluginProxy.h 2006-03-14 16:49:03 UTC (rev 65) @@ -112,7 +112,7 @@ /*! * Gets the name of the plugin. * - * @param *pcPluginName : pointer to buffer of FEAPI_uiMaxNameLength chars, the name will be copied to this buffer + * @param *pcPluginName : pointer to buffer of FEAPI_kMaxNameLength chars, the name will be copied to this buffer * @return FEAPI_Error_t : FEAPI_kNoError when no error */ FEAPI_Error_t GetPluginName ( char *pcPluginName); @@ -120,7 +120,7 @@ /*! * Gets the vendor name of the plugin. * - * @param *pcPluginVendor : pointer to buffer of FEAPI_uiMaxNameLength chars, the vendor name will be copied to this buffer + * @param *pcPluginVendor : pointer to buffer of FEAPI_kMaxNameLength chars, the vendor name will be copied to this buffer * @return FEAPI_Error_t : FEAPI_kNoError when no error */ FEAPI_Error_t GetPluginVendor ( char *pcPluginVendor); @@ -136,7 +136,7 @@ /*! * Gets the (vendor unique) plugin identification string. * - * @param *pcPluginId : pointer to buffer of FEAPI_uiMaxNameLength chars, the id will be copied to this buffer + * @param *pcPluginId : pointer to buffer of FEAPI_kMaxNameLength chars, the id will be copied to this buffer * @return FEAPI_Error_t : FEAPI_kNoError when no error */ FEAPI_Error_t GetPluginId ( char *pcPluginId); @@ -152,7 +152,7 @@ /*! * Gets the description of the plugin, containing information about what the plugin actually does. * - * @param *pcPluginDescription : pointer to buffer of FEAPI_uiMaxDescriptionLength chars, the plugin description will be copied to this buffer + * @param *pcPluginDescription : pointer to buffer of FEAPI_kMaxDescriptionLength chars, the plugin description will be copied to this buffer * @return FEAPI_Error_t : FEAPI_kNoError when no error */ FEAPI_Error_t GetPluginDescription (char *pcPluginDescription); @@ -160,7 +160,7 @@ /*! * Gets the copyright information for the plugin. * - * @param *pcPluginCopyright : pointer to buffer of FEAPI_uiMaxDescriptionLength chars, the plugin copyright information will be copied to this buffer + * @param *pcPluginCopyright : pointer to buffer of FEAPI_kMaxDescriptionLength chars, the plugin copyright information will be copied to this buffer * @return FEAPI_Error_t : FEAPI_kNoError when no error */ FEAPI_Error_t GetPluginCopyright (char *pcPluginCopyright); Modified: trunk/FEAPI/sdk/plugin/include/FEAPIPluginBase.h =================================================================== --- trunk/FEAPI/sdk/plugin/include/FEAPIPluginBase.h 2006-03-14 11:15:31 UTC (rev 64) +++ trunk/FEAPI/sdk/plugin/include/FEAPIPluginBase.h 2006-03-14 16:49:03 UTC (rev 65) @@ -122,7 +122,7 @@ /*! * Gets the name of the plugin. * - * @param *pcPluginName : pointer to buffer of FEAPI_uiMaxNameLength chars, the name will be copied to this buffer + * @param *pcPluginName : pointer to buffer of FEAPI_kMaxNameLength chars, the name will be copied to this buffer * @return FEAPI_Error_t : FEAPI_kNoError when no error */ FEAPI_Error_t GetPluginName ( char *pcPluginName); @@ -130,7 +130,7 @@ /*! * Gets the vendor name of the plugin. * - * @param *pcPluginVendor : pointer to buffer of FEAPI_uiMaxNameLength chars, the vendor name will be copied to this buffer + * @param *pcPluginVendor : pointer to buffer of FEAPI_kMaxNameLength chars, the vendor name will be copied to this buffer * @return FEAPI_Error_t : FEAPI_kNoError when no error */ FEAPI_Error_t GetPluginVendor ( char *pcPluginVendor); @@ -146,7 +146,7 @@ /*! * Gets the (vendor unique) plugin identification string. * - * @param *pcPluginId : pointer to buffer of FEAPI_uiMaxNameLength chars, the id will be copied to this buffer + * @param *pcPluginId : pointer to buffer of FEAPI_kMaxNameLength chars, the id will be copied to this buffer * @return FEAPI_Error_t : FEAPI_kNoError when no error */ FEAPI_Error_t GetPluginId ( char *pcPluginId); @@ -162,7 +162,7 @@ /*! * Gets the description of the plugin, containing information about what the plugin actually does. * - * @param *pcPluginDescription : pointer to buffer of FEAPI_uiMaxDescriptionLength chars, the plugin description will be copied to this buffer + * @param *pcPluginDescription : pointer to buffer of FEAPI_kMaxDescriptionLength chars, the plugin description will be copied to this buffer * @return FEAPI_Error_t : FEAPI_kNoError when no error */ FEAPI_Error_t GetPluginDescription (char *pcPluginDescription); @@ -170,7 +170,7 @@ /*! * Gets the copyright information for the plugin. * - * @param *pcPluginCopyright : pointer to buffer of FEAPI_uiMaxDescriptionLength chars, the plugin copyright information will be copied to this buffer + * @param *pcPluginCopyright : pointer to buffer of FEAPI_kMaxDescriptionLength chars, the plugin copyright information will be copied to this buffer * @return FEAPI_Error_t : FEAPI_kNoError when no error */ FEAPI_Error_t GetPluginCopyright (char *pcPluginCopyright); Modified: trunk/FEAPI/sdk/plugin/src/FEAPIPluginBase.cpp =================================================================== --- trunk/FEAPI/sdk/plugin/src/FEAPIPluginBase.cpp 2006-03-14 11:15:31 UTC (rev 64) +++ trunk/FEAPI/sdk/plugin/src/FEAPIPluginBase.cpp 2006-03-14 16:49:03 UTC (rev 65) @@ -169,20 +169,20 @@ FEAPI_Error_t CFeatureExtractBase::GetPluginName (char *pcPluginName) { - m_cPluginName.copy (pcPluginName, FEAPI_uiMaxNameLength); + m_cPluginName.copy (pcPluginName, FEAPI_kMaxNameLength); return FEAPI_kNoError; } FEAPI_Error_t CFeatureExtractBase::GetPluginVendor (char *pcPluginVendor) { - m_cPluginVendor.copy (pcPluginVendor, FEAPI_uiMaxNameLength); + m_cPluginVendor.copy (pcPluginVendor, FEAPI_kMaxNameLength); return FEAPI_kNoError; } FEAPI_Error_t CFeatureExtractBase::GetPluginId (char *pcPluginId) { - m_cPluginId.copy (pcPluginId, FEAPI_uiMaxNameLength); + m_cPluginId.copy (pcPluginId, FEAPI_kMaxNameLength); return FEAPI_kNoError; } @@ -213,14 +213,14 @@ FEAPI_Error_t CFeatureExtractBase::GetPluginDescription (char *pcPluginDescription) { - m_cPluginDescription.copy (pcPluginDescription, FEAPI_uiMaxDescriptionLength); + m_cPluginDescription.copy (pcPluginDescription, FEAPI_kMaxDescriptionLength); return FEAPI_kNoError; } FEAPI_Error_t CFeatureExtractBase::GetPluginCopyright (char *pcPluginCopyright) { - m_cPluginCopyRight.copy (pcPluginCopyright, FEAPI_uiMaxNameLength); + m_cPluginCopyRight.copy (pcPluginCopyright, FEAPI_kMaxNameLength); return FEAPI_kNoError; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fea...@li...> - 2006-03-14 11:16:11
|
Revision: 64 Author: alex_lerch Date: 2006-03-14 03:15:31 -0800 (Tue, 14 Mar 2006) ViewCVS: http://svn.sourceforge.net/feapi/?rev=64&view=rev Log Message: ----------- - removed dllFEAPI project - removed definition files and added __declspec(dllexport) to EntryPoints.h - updated VC6 and VC8 workspaces/projects Modified Paths: -------------- trunk/FEAPI/build/Win/ExamplePluginFindMax/ExamplePluginFindMax.dsp trunk/FEAPI/build/Win/ExamplePluginFindMax/ExamplePluginFindMax.vcproj trunk/FEAPI/build/Win/ExamplePluginFindRms/ExamplePluginFindRms.vcproj trunk/FEAPI/build/Win/ExamplePluginLoudness/ExamplePluginLoudness.dsp trunk/FEAPI/build/Win/ExamplePluginSpectral/ExamplePluginSpectral.dsp trunk/FEAPI/build/Win/ExamplePluginZeroCrossings/ExamplePluginZeroCrossings.dsp trunk/FEAPI/build/Win/FEAPI.sln trunk/FEAPI/build/Win/FEAPIHost_C/FEAPITestCL.vcproj trunk/FEAPI/sdk/plugin/include/FEAPIEntryPoints.h Added Paths: ----------- trunk/FEAPI/build/Win/ExamplePluginLoudness/ExamplePluginLoudness.vcproj trunk/FEAPI/build/Win/ExamplePluginSpectral/ExamplePluginSpectral.vcproj trunk/FEAPI/build/Win/ExamplePluginZeroCrossings/ExamplePluginZeroCrossings.vcproj Removed Paths: ------------- trunk/FEAPI/build/Win/ExamplePluginFindMax/ExamplePluginFindMax.def trunk/FEAPI/build/Win/ExamplePluginFindRms/FEAPIExamplePluginFindRms.def trunk/FEAPI/build/Win/ExamplePluginLoudness/ExamplePluginLoudness.def trunk/FEAPI/build/Win/ExamplePluginSpectral/ExamplePluginSpectral.def trunk/FEAPI/build/Win/ExamplePluginZeroCrossings/ExamplePluginZeroCrossings.def trunk/FEAPI/build/Win/dllFEAPI/ Deleted: trunk/FEAPI/build/Win/ExamplePluginFindMax/ExamplePluginFindMax.def =================================================================== --- trunk/FEAPI/build/Win/ExamplePluginFindMax/ExamplePluginFindMax.def 2006-03-09 20:42:36 UTC (rev 63) +++ trunk/FEAPI/build/Win/ExamplePluginFindMax/ExamplePluginFindMax.def 2006-03-14 11:15:31 UTC (rev 64) @@ -1,102 +0,0 @@ -;//////////////////////////////////////////////////////////////////////////////////// -;// /*! \file FEAPI.def: \brief declares the module parameters -;// for the DLL */ -;// -;// Copyright (c) 2004-2005, Alexander Lerch, zplane.development GbR -;// All rights reserved. -;// -;// Redistribution and use in source and binary forms, with or without -;// modification, are permitted provided that the following conditions -;// are met: -;// -;// * Redistributions of source code must retain the above copyright -;// notice, this list of conditions and the following disclaimer. -;// * Redistributions in binary form must link to the feapi website -;// http://www.sf.net/projects/feapi, -;// reproduce this list of conditions and the following -;// disclaimer in the documentation and/or other materials -;// provided with the distribution. -;// * The name of the contributors to this software must not be used -;// to endorse or promote products derived from this software -;// without specific prior written permission. -;// -;// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -;// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -;// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -;// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -;// COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -;// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -;// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -;// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -;// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -;// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -;// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -;// POSSIBILITY OF SUCH DAMAGE. -;// -;//////////////////////////////////////////////////////////////////////////////////// -;// CVS INFORMATION -;// -;// $RCSfile$ -;// $Author$ -;// $Date$ -;// -;// $Log$ -;// Revision 1.1.2.1 2006/01/19 13:52:07 remymuller -;// directory reorganization -;// -;// Revision 1.2 2005/05/20 17:09:21 alex_lerch -;// - changed function PluginCanDo to PluginGetProperty and changed the function itself to return values instead of bools -;// - cosmetic changes -;// -;// Revision 1.1.1.1 2005/03/30 14:54:40 alex_lerch -;// first draft version requiring several updates: -;// - interface check -;// - check of plugin base class -;// - implementation of host base class -;// - update of outdated documentation -;// -;// Revision 1.1 2004/11/12 20:54:28 lerch -;// - added example feature FindAbsoluteMax -;// -;// -;// -;//////////////////////////////////////////////////////////////////////////////////// - -LIBRARY "FindAbsoluteMax" -DESCRIPTION 'FEAPI FEAPI Example PlugIn' - -EXPORTS - ; Explicit exports can go here - FEAPI_CreatePluginInstance @01 - FEAPI_DestroyPluginInstance @02 - FEAPI_GetPluginAPIVersion @03 - FEAPI_InitializePlugin @04 - - FEAPI_GetPluginProperty @11 - FEAPI_GetPluginName @12 - FEAPI_GetPluginVendor @13 - FEAPI_GetPluginVendorVersion @14 - FEAPI_GetPluginDescription @15 - FEAPI_GetPluginCopyright @16 - FEAPI_GetPluginId @17 - - FEAPI_GetPluginNumOfInputs @21 - FEAPI_GetPluginInputDescription @22 - - FEAPI_GetPluginNumOfParameters @31 - FEAPI_GetPluginParameterDescription @32 - FEAPI_SetPluginParameter @33 - FEAPI_GetPluginParameter @34 - - FEAPI_GetPluginNumOfResults @41 - FEAPI_GetPluginResultDescription @42 - FEAPI_GetPluginResultLatency @43 - FEAPI_GetPluginSizeOfResult @44 - FEAPI_GetPluginResult @45 - - FEAPI_ProcessPlugin @51 - FEAPI_ProcessPluginDone @52 - - FEAPI_ResetPlugin @61 - - Modified: trunk/FEAPI/build/Win/ExamplePluginFindMax/ExamplePluginFindMax.dsp =================================================================== --- trunk/FEAPI/build/Win/ExamplePluginFindMax/ExamplePluginFindMax.dsp 2006-03-09 20:42:36 UTC (rev 63) +++ trunk/FEAPI/build/Win/ExamplePluginFindMax/ExamplePluginFindMax.dsp 2006-03-14 11:15:31 UTC (rev 64) @@ -108,14 +108,6 @@ # PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" # End Group -# Begin Group "Definition Files" - -# PROP Default_Filter "def" -# Begin Source File - -SOURCE=.\ExamplePluginFindMax.def -# End Source File -# End Group # Begin Group "FEAPI" # PROP Default_Filter "" @@ -135,6 +127,10 @@ # PROP Default_Filter "" # Begin Source File +SOURCE=..\..\..\include\FEAPI.h +# End Source File +# Begin Source File + SOURCE=..\..\..\sdk\plugin\include\FEAPIEntryPoints.h # End Source File # Begin Source File Modified: trunk/FEAPI/build/Win/ExamplePluginFindMax/ExamplePluginFindMax.vcproj =================================================================== --- trunk/FEAPI/build/Win/ExamplePluginFindMax/ExamplePluginFindMax.vcproj 2006-03-09 20:42:36 UTC (rev 63) +++ trunk/FEAPI/build/Win/ExamplePluginFindMax/ExamplePluginFindMax.vcproj 2006-03-14 11:15:31 UTC (rev 64) @@ -1,144 +1,207 @@ <?xml version="1.0" encoding="Windows-1252"?> <VisualStudioProject ProjectType="Visual C++" - Version="7.10" + Version="8,00" Name="FindAbsoluteMax" - ProjectGUID="{7C9FA11F-720B-4611-B926-8F68B2386B36}" - RootNamespace="FindAbsoluteMax" - SccProjectName="" - SccLocalPath=""> + ProjectGUID="{EA9113DD-E1D4-4449-93A4-C31E13F87B1D}" + > <Platforms> <Platform - Name="Win32"/> + Name="Win32" + /> </Platforms> + <ToolFiles> + </ToolFiles> <Configurations> <Configuration - Name="Release|Win32" - OutputDirectory=".\..\..\..\bin\$(ConfigurationName)" - IntermediateDirectory=".\..\..\..\tmp\$(ConfigurationName)" + Name="Debug|Win32" + OutputDirectory=".\../../../lib/Debug" + IntermediateDirectory=".\../../../tmp/Debug" ConfigurationType="2" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" UseOfMFC="0" - ATLMinimizesCRunTimeLibraryUsage="FALSE"> + ATLMinimizesCRunTimeLibraryUsage="false" + > <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + PreprocessorDefinitions="_DEBUG" + MkTypLibCompatible="true" + SuppressStartupBanner="true" + TargetEnvironment="1" + TypeLibraryName=".\../../../lib/Debug/ExamplePluginFIndMax.tlb" + HeaderFileName="" + /> + <Tool Name="VCCLCompilerTool" - Optimization="2" - InlineFunctionExpansion="2" - AdditionalIncludeDirectories="..\..\..\include;..\..\..\sdk\plugin\include;..\..\..\examples\plugin\FEAPIExamplePluginFindMax" - PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;" - StringPooling="TRUE" - RuntimeLibrary="0" - EnableFunctionLevelLinking="TRUE" - PrecompiledHeaderFile=".\../../../tmp/FindAbsoluteMax.pch" - AssemblerListingLocation=".\../../../tmp/" - ObjectFile=".\../../../tmp/" - ProgramDataBaseFileName=".\../../../tmp/" + Optimization="0" + AdditionalIncludeDirectories="../../../include,../../../sdk/plugin/include,../../../examples/plugin/FEAPIExamplePluginFindMax" + PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS" + MinimalRebuild="true" + RuntimeLibrary="1" + PrecompiledHeaderFile=".\../../../tmp/Debug/ExamplePluginFIndMax.pch" + AssemblerListingLocation=".\../../../tmp/Debug/" + ObjectFile=".\../../../tmp/Debug/" + ProgramDataBaseFileName=".\../../../tmp/Debug/" WarningLevel="3" - SuppressStartupBanner="TRUE" - CompileAs="0"/> + SuppressStartupBanner="true" + DebugInformationFormat="4" + /> <Tool - Name="VCCustomBuildTool"/> + Name="VCManagedResourceCompilerTool" + /> <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="_DEBUG" + Culture="1031" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool Name="VCLinkerTool" - IgnoreImportLibrary="TRUE" - LinkIncremental="1" - SuppressStartupBanner="TRUE" - ModuleDefinitionFile="ExamplePluginFindMax.def" - ProgramDatabaseFile=".\../../../lib/FindAbsoluteMax.pdb" + IgnoreImportLibrary="true" + OutputFile="../../../bin/Debug/FindAbsoluteMax.dll" + LinkIncremental="2" + SuppressStartupBanner="true" + GenerateDebugInformation="true" + ProgramDatabaseFile=".\../../../lib/Debug/FindAbsoluteMax.pdb" SubSystem="2" - ImportLibrary=".\../../../lib/FindAbsoluteMax.lib" - TargetMachine="1"/> + ImportLibrary=".\../../../lib/Debug/FindAbsoluteMax.lib" + TargetMachine="1" + /> <Tool - Name="VCMIDLTool" - PreprocessorDefinitions="NDEBUG" - MkTypLibCompatible="TRUE" - SuppressStartupBanner="TRUE" - TargetEnvironment="1" - TypeLibraryName=".\../../../lib/FindAbsoluteMax.tlb" - HeaderFileName=""/> + Name="VCALinkTool" + /> <Tool - Name="VCPostBuildEventTool"/> + Name="VCManifestTool" + /> <Tool - Name="VCPreBuildEventTool"/> + Name="VCXDCMakeTool" + /> <Tool - Name="VCPreLinkEventTool"/> + Name="VCBscMakeTool" + SuppressStartupBanner="true" + OutputFile=".\../../../lib/Debug/ExamplePluginFIndMax.bsc" + /> <Tool - Name="VCResourceCompilerTool" - PreprocessorDefinitions="NDEBUG" - Culture="1031"/> + Name="VCFxCopTool" + /> <Tool - Name="VCWebServiceProxyGeneratorTool"/> + Name="VCAppVerifierTool" + /> <Tool - Name="VCXMLDataGeneratorTool"/> + Name="VCWebDeploymentTool" + /> <Tool - Name="VCWebDeploymentTool"/> - <Tool - Name="VCManagedWrapperGeneratorTool"/> - <Tool - Name="VCAuxiliaryManagedWrapperGeneratorTool"/> + Name="VCPostBuildEventTool" + /> </Configuration> <Configuration - Name="Debug|Win32" - OutputDirectory=".\..\..\..\bin\$(ConfigurationName)" - IntermediateDirectory=".\..\..\..\tmp\$(ConfigurationName)" + Name="Release|Win32" + OutputDirectory=".\../../../lib" + IntermediateDirectory=".\../../../tmp" ConfigurationType="2" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" UseOfMFC="0" - ATLMinimizesCRunTimeLibraryUsage="FALSE"> + ATLMinimizesCRunTimeLibraryUsage="false" + > <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + PreprocessorDefinitions="NDEBUG" + MkTypLibCompatible="true" + SuppressStartupBanner="true" + TargetEnvironment="1" + TypeLibraryName=".\../../../lib/ExamplePluginFIndMax.tlb" + HeaderFileName="" + /> + <Tool Name="VCCLCompilerTool" - Optimization="0" - AdditionalIncludeDirectories="..\..\..\include;..\..\..\sdk\plugin\include;..\..\..\examples\plugin\FEAPIExamplePluginFindMax" - PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS; " - RuntimeLibrary="1" - UsePrecompiledHeader="2" - PrecompiledHeaderFile=".\../../../tmp/Debug/FindAbsoluteMax.pch" - AssemblerListingLocation=".\../../../tmp/Debug/" - ObjectFile=".\../../../tmp/Debug/" - ProgramDataBaseFileName=".\../../../tmp/Debug/" + Optimization="2" + InlineFunctionExpansion="2" + AdditionalIncludeDirectories="../../../include,../../../sdk/plugin/include,../../../examples/plugin/FEAPIExamplePluginFindMax" + PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS" + StringPooling="true" + RuntimeLibrary="0" + EnableFunctionLevelLinking="true" + PrecompiledHeaderFile=".\../../../tmp/ExamplePluginFIndMax.pch" + AssemblerListingLocation=".\../../../tmp/" + ObjectFile=".\../../../tmp/" + ProgramDataBaseFileName=".\../../../tmp/" WarningLevel="3" - SuppressStartupBanner="TRUE" - DebugInformationFormat="4" - CompileAs="0"/> + SuppressStartupBanner="true" + /> <Tool - Name="VCCustomBuildTool"/> + Name="VCManagedResourceCompilerTool" + /> <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="NDEBUG" + Culture="1031" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool Name="VCLinkerTool" - IgnoreImportLibrary="TRUE" + IgnoreImportLibrary="true" + OutputFile="../../../bin/FindAbsoluteMax.dll" LinkIncremental="1" - SuppressStartupBanner="TRUE" - ModuleDefinitionFile="ExamplePluginFindMax.def" - GenerateDebugInformation="TRUE" - ProgramDatabaseFile=".\../../../lib/Debug/FindAbsoluteMax.pdb" + SuppressStartupBanner="true" + ProgramDatabaseFile=".\../../../lib/FindAbsoluteMax.pdb" SubSystem="2" - ImportLibrary=".\../../../lib/Debug/FindAbsoluteMax.lib" - TargetMachine="1"/> + ImportLibrary=".\../../../lib/FindAbsoluteMax.lib" + TargetMachine="1" + /> <Tool - Name="VCMIDLTool" - PreprocessorDefinitions="_DEBUG" - MkTypLibCompatible="TRUE" - SuppressStartupBanner="TRUE" - TargetEnvironment="1" - TypeLibraryName=".\../../../lib/Debug/FindAbsoluteMax.tlb" - HeaderFileName=""/> + Name="VCALinkTool" + /> <Tool - Name="VCPostBuildEventTool"/> + Name="VCManifestTool" + /> <Tool - Name="VCPreBuildEventTool"/> + Name="VCXDCMakeTool" + /> <Tool - Name="VCPreLinkEventTool"/> + Name="VCBscMakeTool" + SuppressStartupBanner="true" + OutputFile=".\../../../lib/ExamplePluginFIndMax.bsc" + /> <Tool - Name="VCResourceCompilerTool" - PreprocessorDefinitions="_DEBUG" - Culture="1031"/> + Name="VCFxCopTool" + /> <Tool - Name="VCWebServiceProxyGeneratorTool"/> + Name="VCAppVerifierTool" + /> <Tool - Name="VCXMLDataGeneratorTool"/> + Name="VCWebDeploymentTool" + /> <Tool - Name="VCWebDeploymentTool"/> - <Tool - Name="VCManagedWrapperGeneratorTool"/> - <Tool - Name="VCAuxiliaryManagedWrapperGeneratorTool"/> + Name="VCPostBuildEventTool" + /> </Configuration> </Configurations> <References> @@ -146,58 +209,108 @@ <Files> <Filter Name="Source Files" - Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"> + Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" + > <File - RelativePath="..\..\..\examples\plugin\FEAPIExamplePluginFindMax\FEAPIExamplePluginFindMax.cpp"> + RelativePath="..\..\..\examples\plugin\FEAPIExamplePluginFindMax\FEAPIExamplePluginFindMax.cpp" + > + <FileConfiguration + Name="Debug|Win32" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + /> + </FileConfiguration> </File> </Filter> <Filter Name="Header Files" - Filter="h;hpp;hxx;hm;inl"> + Filter="h;hpp;hxx;hm;inl" + > <File - RelativePath="..\..\..\examples\plugin\FEAPIExamplePluginFindMax\FEAPIExamplePluginFindMax.h"> + RelativePath="..\..\..\examples\plugin\FEAPIExamplePluginFindMax\FEAPIExamplePluginFindMax.h" + > </File> </Filter> <Filter + Name="FEAPI" + > + <Filter + Name="sdk" + > + <Filter + Name="src" + > + <File + RelativePath="..\..\..\sdk\plugin\src\FEAPIPluginBase.cpp" + > + <FileConfiguration + Name="Debug|Win32" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + /> + </FileConfiguration> + </File> + </Filter> + <Filter + Name="include" + > + <File + RelativePath="..\..\..\include\FEAPI.h" + > + </File> + <File + RelativePath="..\..\..\sdk\plugin\include\FEAPIEntryPoints.h" + > + </File> + <File + RelativePath="..\..\..\sdk\plugin\include\FEAPIPluginBase.h" + > + </File> + </Filter> + </Filter> + </Filter> + <Filter Name="Documentation Files" - Filter="txt"> + Filter=".txt" + > <File - RelativePath="..\..\..\doc\docugenAPI.txt"> + RelativePath="..\..\..\doc\docugenPlug.txt" + > </File> <File - RelativePath="..\..\..\doc\docugenHost.txt"> + RelativePath="..\..\..\license\license.txt" + > </File> - <File - RelativePath="..\..\..\doc\docugenPlug.txt"> - </File> - <File - RelativePath="..\..\..\license.txt"> - </File> </Filter> <Filter - Name="Definition Files" - Filter="def"> - <File - RelativePath=".\ExamplePluginFindMax.def"> - </File> - </Filter> - <Filter Name="Resource Files" - Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"> + Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" + > </Filter> - <Filter - Name="sdk" - Filter=""> - <File - RelativePath="..\..\..\sdk\plugin\include\FEAPIEntryPoints.h"> - </File> - <File - RelativePath="..\..\..\sdk\plugin\src\FEAPIPluginBase.cpp"> - </File> - <File - RelativePath="..\..\..\sdk\plugin\include\FEAPIPluginBase.h"> - </File> - </Filter> </Files> <Globals> </Globals> Modified: trunk/FEAPI/build/Win/ExamplePluginFindRms/ExamplePluginFindRms.vcproj =================================================================== --- trunk/FEAPI/build/Win/ExamplePluginFindRms/ExamplePluginFindRms.vcproj 2006-03-09 20:42:36 UTC (rev 63) +++ trunk/FEAPI/build/Win/ExamplePluginFindRms/ExamplePluginFindRms.vcproj 2006-03-14 11:15:31 UTC (rev 64) @@ -1,202 +1,319 @@ <?xml version="1.0" encoding="Windows-1252"?> <VisualStudioProject ProjectType="Visual C++" - Version="7.10" - Name="ExamplePluginFindRms" - ProjectGUID="{E04A5387-2BE4-4D8E-9CBB-67AF259436C6}" - RootNamespace="ExamplePluginFindRms" - SccProjectName="" - SccLocalPath=""> + Version="8,00" + Name="FindRms" + ProjectGUID="{824AAC8B-288B-42EC-95EF-BCFD72DDA556}" + > <Platforms> <Platform - Name="Win32"/> + Name="Win32" + /> </Platforms> + <ToolFiles> + </ToolFiles> <Configurations> <Configuration - Name="Release|Win32" - OutputDirectory=".\../../../bin/$(ConfigurationName)" - IntermediateDirectory=".\../../../tmp/$(ConfigurationName)" + Name="Debug|Win32" + OutputDirectory=".\../../../lib/Debug" + IntermediateDirectory=".\../../../tmp/Debug" ConfigurationType="2" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" UseOfMFC="0" - ATLMinimizesCRunTimeLibraryUsage="FALSE"> + ATLMinimizesCRunTimeLibraryUsage="false" + > <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + PreprocessorDefinitions="_DEBUG" + MkTypLibCompatible="true" + SuppressStartupBanner="true" + TargetEnvironment="1" + TypeLibraryName=".\../../../lib/Debug/ExamplePluginFindRms.tlb" + HeaderFileName="" + /> + <Tool Name="VCCLCompilerTool" - Optimization="2" - InlineFunctionExpansion="2" - AdditionalIncludeDirectories="..\..\..\include;..\..\..\sdk\plugin\include;..\..\..\examples\plugin\FEAPIExamplePluginFindRms" - PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS" - StringPooling="TRUE" - RuntimeLibrary="0" - EnableFunctionLevelLinking="TRUE" - PrecompiledHeaderFile=".\../../../tmp/ExamplePluginFindRms.pch" - AssemblerListingLocation=".\../../../tmp/" - ObjectFile=".\../../../tmp/" - ProgramDataBaseFileName=".\../../../tmp/" + Optimization="0" + AdditionalIncludeDirectories="../../../include,../../../sdk/plugin/include,../../../examples/plugin/FEAPIExamplePluginFindRms" + PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS" + MinimalRebuild="true" + RuntimeLibrary="1" + PrecompiledHeaderFile=".\../../../tmp/Debug/ExamplePluginFindRms.pch" + AssemblerListingLocation=".\../../../tmp/Debug/" + ObjectFile=".\../../../tmp/Debug/" + ProgramDataBaseFileName=".\../../../tmp/Debug/" WarningLevel="3" - SuppressStartupBanner="TRUE" - CompileAs="0"/> + SuppressStartupBanner="true" + DebugInformationFormat="4" + /> <Tool - Name="VCCustomBuildTool"/> + Name="VCManagedResourceCompilerTool" + /> <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="_DEBUG" + Culture="1031" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool Name="VCLinkerTool" - IgnoreImportLibrary="TRUE" - LinkIncremental="1" - SuppressStartupBanner="TRUE" + IgnoreImportLibrary="true" + OutputFile="../../../bin/Debug/FindRms.dll" + LinkIncremental="2" + SuppressStartupBanner="true" ModuleDefinitionFile=".\FEAPIExamplePluginFindRms.def" - ProgramDatabaseFile=".\../../../lib/FindAbsoluteRms.pdb" + GenerateDebugInformation="true" + ProgramDatabaseFile=".\../../../lib/Debug/FindRms.pdb" SubSystem="2" - ImportLibrary=".\../../../lib/FindAbsoluteRms.lib" - TargetMachine="1"/> + ImportLibrary=".\../../../lib/Debug/FindRms.lib" + TargetMachine="1" + /> <Tool - Name="VCMIDLTool" - PreprocessorDefinitions="NDEBUG" - MkTypLibCompatible="TRUE" - SuppressStartupBanner="TRUE" - TargetEnvironment="1" - TypeLibraryName=".\../../../lib/ExamplePluginFindRms.tlb" - HeaderFileName=""/> + Name="VCALinkTool" + /> <Tool - Name="VCPostBuildEventTool"/> + Name="VCManifestTool" + /> <Tool - Name="VCPreBuildEventTool"/> + Name="VCXDCMakeTool" + /> <Tool - Name="VCPreLinkEventTool"/> + Name="VCBscMakeTool" + SuppressStartupBanner="true" + OutputFile=".\../../../lib/Debug/ExamplePluginFindRms.bsc" + /> <Tool - Name="VCResourceCompilerTool" - PreprocessorDefinitions="NDEBUG" - Culture="1031"/> + Name="VCFxCopTool" + /> <Tool - Name="VCWebServiceProxyGeneratorTool"/> + Name="VCAppVerifierTool" + /> <Tool - Name="VCXMLDataGeneratorTool"/> + Name="VCWebDeploymentTool" + /> <Tool - Name="VCWebDeploymentTool"/> - <Tool - Name="VCManagedWrapperGeneratorTool"/> - <Tool - Name="VCAuxiliaryManagedWrapperGeneratorTool"/> + Name="VCPostBuildEventTool" + /> </Configuration> <Configuration - Name="Debug|Win32" - OutputDirectory=".\../../../bin/$(ConfigurationName)" - IntermediateDirectory=".\../../../tmp/$(ConfigurationName)" + Name="Release|Win32" + OutputDirectory=".\../../../lib" + IntermediateDirectory=".\../../../tmp" ConfigurationType="2" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" UseOfMFC="0" - ATLMinimizesCRunTimeLibraryUsage="FALSE"> + ATLMinimizesCRunTimeLibraryUsage="false" + > <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + PreprocessorDefinitions="NDEBUG" + MkTypLibCompatible="true" + SuppressStartupBanner="true" + TargetEnvironment="1" + TypeLibraryName=".\../../../lib/ExamplePluginFindRms.tlb" + HeaderFileName="" + /> + <Tool Name="VCCLCompilerTool" - Optimization="0" - AdditionalIncludeDirectories="..\..\..\include;..\..\..\sdk\plugin\include;..\..\..\examples\plugin\FEAPIExamplePluginFindRms" - PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS" - RuntimeLibrary="1" - UsePrecompiledHeader="2" - PrecompiledHeaderFile=".\../../../tmp/Debug/ExamplePluginFindRms.pch" - AssemblerListingLocation=".\../../../tmp/Debug/" - ObjectFile=".\../../../tmp/Debug/" - ProgramDataBaseFileName=".\../../../tmp/Debug/" + Optimization="2" + InlineFunctionExpansion="2" + AdditionalIncludeDirectories="../../../include,../../../sdk/plugin/include,../../../examples/plugin/FEAPIExamplePluginFindRms" + PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS" + StringPooling="true" + RuntimeLibrary="0" + EnableFunctionLevelLinking="true" + PrecompiledHeaderFile=".\../../../tmp/ExamplePluginFindRms.pch" + AssemblerListingLocation=".\../../../tmp/" + ObjectFile=".\../../../tmp/" + ProgramDataBaseFileName=".\../../../tmp/" WarningLevel="3" - SuppressStartupBanner="TRUE" - DebugInformationFormat="4" - CompileAs="0"/> + SuppressStartupBanner="true" + /> <Tool - Name="VCCustomBuildTool"/> + Name="VCManagedResourceCompilerTool" + /> <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="NDEBUG" + Culture="1031" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool Name="VCLinkerTool" - IgnoreImportLibrary="TRUE" + IgnoreImportLibrary="true" + OutputFile="../../../bin/FindRms.dll" LinkIncremental="1" - SuppressStartupBanner="TRUE" + SuppressStartupBanner="true" ModuleDefinitionFile=".\FEAPIExamplePluginFindRms.def" - GenerateDebugInformation="TRUE" - ProgramDatabaseFile=".\../../../lib/Debug/FindRms.pdb" + ProgramDatabaseFile=".\../../../lib/FindRms.pdb" SubSystem="2" - ImportLibrary=".\../../../lib/Debug/FindRms.lib" - TargetMachine="1"/> + ImportLibrary=".\../../../lib/FindRms.lib" + TargetMachine="1" + /> <Tool - Name="VCMIDLTool" - PreprocessorDefinitions="_DEBUG" - MkTypLibCompatible="TRUE" - SuppressStartupBanner="TRUE" - TargetEnvironment="1" - TypeLibraryName=".\../../../lib/Debug/ExamplePluginFindRms.tlb" - HeaderFileName=""/> + Name="VCALinkTool" + /> <Tool - Name="VCPostBuildEventTool"/> + Name="VCManifestTool" + /> <Tool - Name="VCPreBuildEventTool"/> + Name="VCXDCMakeTool" + /> <Tool - Name="VCPreLinkEventTool"/> + Name="VCBscMakeTool" + SuppressStartupBanner="true" + OutputFile=".\../../../lib/ExamplePluginFindRms.bsc" + /> <Tool - Name="VCResourceCompilerTool" - PreprocessorDefinitions="_DEBUG" - Culture="1031"/> + Name="VCFxCopTool" + /> <Tool - Name="VCWebServiceProxyGeneratorTool"/> + Name="VCAppVerifierTool" + /> <Tool - Name="VCXMLDataGeneratorTool"/> + Name="VCWebDeploymentTool" + /> <Tool - Name="VCWebDeploymentTool"/> - <Tool - Name="VCManagedWrapperGeneratorTool"/> - <Tool - Name="VCAuxiliaryManagedWrapperGeneratorTool"/> + Name="VCPostBuildEventTool" + /> </Configuration> </Configurations> <References> </References> <Files> <Filter - Name="Source Files" - Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"> - <File - RelativePath="..\..\..\examples\plugin\FEAPIExamplePluginFindRms\FEAPIExamplePluginFindRms.cpp"> - </File> - </Filter> - <Filter Name="Header Files" - Filter="h;hpp;hxx;hm;inl"> + Filter="h;hpp;hxx;hm;inl" + > <File - RelativePath="..\..\..\examples\plugin\FEAPIExamplePluginFindRms\FEAPIExamplePluginFindRms.h"> + RelativePath="..\..\..\examples\plugin\FEAPIExamplePluginFindRms\FEAPIExamplePluginFindRms.h" + > </File> </Filter> <Filter Name="Documentation Files" - Filter="txt"> + Filter="txt" + > <File - RelativePath="..\..\..\doc\docugenAPI.txt"> + RelativePath="..\..\..\doc\docugenPlug.txt" + > </File> <File - RelativePath="..\..\..\doc\docugenHost.txt"> + RelativePath="..\..\..\license\license.txt" + > </File> - <File - RelativePath="..\..\..\doc\docugenPlug.txt"> - </File> - <File - RelativePath="..\..\..\license.txt"> - </File> </Filter> <Filter Name="Definition Files" - Filter="def"> + Filter="def" + > <File - RelativePath=".\FEAPIExamplePluginFindRms.def"> + RelativePath="FEAPIExamplePluginFindRms.def" + > </File> </Filter> <Filter - Name="Resource Files" - Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"> + Name="FEAPI" + > + <Filter + Name="sdk" + > + <Filter + Name="src" + > + <File + RelativePath="..\..\..\sdk\plugin\src\FEAPIPluginBase.cpp" + > + <FileConfiguration + Name="Debug|Win32" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + /> + </FileConfiguration> + </File> + </Filter> + <Filter + Name="include" + > + <File + RelativePath="..\..\..\sdk\plugin\include\FEAPIPluginBase.h" + > + </File> + </Filter> + </Filter> </Filter> <Filter - Name="sdk"> + Name="Source Files" + Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" + > <File - RelativePath="..\..\..\sdk\plugin\include\FEAPIEntryPoints.h"> + RelativePath="..\..\..\examples\plugin\FEAPIExamplePluginFindRms\FEAPIExamplePluginFindRms.cpp" + > + <FileConfiguration + Name="Debug|Win32" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + /> + </FileConfiguration> </File> - <File - RelativePath="..\..\..\sdk\plugin\src\FEAPIPluginBase.cpp"> - </File> - <File - RelativePath="..\..\..\sdk\plugin\include\FEAPIPluginBase.h"> - </File> </Filter> + <Filter + Name="Resource Files" + Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" + > + </Filter> </Files> <Globals> </Globals> Deleted: trunk/FEAPI/build/Win/ExamplePluginFindRms/FEAPIExamplePluginFindRms.def =================================================================== --- trunk/FEAPI/build/Win/ExamplePluginFindRms/FEAPIExamplePluginFindRms.def 2006-03-09 20:42:36 UTC (rev 63) +++ trunk/FEAPI/build/Win/ExamplePluginFindRms/FEAPIExamplePluginFindRms.def 2006-03-14 11:15:31 UTC (rev 64) @@ -1,38 +0,0 @@ -LIBRARY "FindRms" -DESCRIPTION 'FEAPI Example PlugIn Rms' - -EXPORTS - ; Explicit exports can go here - FEAPI_CreatePluginInstance @01 - FEAPI_DestroyPluginInstance @02 - FEAPI_GetPluginAPIVersion @03 - FEAPI_InitializePlugin @04 - - FEAPI_GetPluginProperty @11 - FEAPI_GetPluginName @12 - FEAPI_GetPluginVendor @13 - FEAPI_GetPluginVendorVersion @14 - FEAPI_GetPluginDescription @15 - FEAPI_GetPluginCopyright @16 - FEAPI_GetPluginId @17 - - FEAPI_GetPluginNumOfInputs @21 - FEAPI_GetPluginInputDescription @22 - - FEAPI_GetPluginNumOfParameters @31 - FEAPI_GetPluginParameterDescription @32 - FEAPI_SetPluginParameter @33 - FEAPI_GetPluginParameter @34 - - FEAPI_GetPluginNumOfResults @41 - FEAPI_GetPluginResultDescription @42 - FEAPI_GetPluginResultLatency @43 - FEAPI_GetPluginSizeOfResult @44 - FEAPI_GetPluginResult @45 - - FEAPI_ProcessPlugin @51 - FEAPI_ProcessPluginDone @52 - - FEAPI_ResetPlugin @61 - - Deleted: trunk/FEAPI/build/Win/ExamplePluginLoudness/ExamplePluginLoudness.def =================================================================== --- trunk/FEAPI/build/Win/ExamplePluginLoudness/ExamplePluginLoudness.def 2006-03-09 20:42:36 UTC (rev 63) +++ trunk/FEAPI/build/Win/ExamplePluginLoudness/ExamplePluginLoudness.def 2006-03-14 11:15:31 UTC (rev 64) @@ -1,102 +0,0 @@ -;//////////////////////////////////////////////////////////////////////////////////// -;// /*! \file FEAPI.def: \brief declares the module parameters -;// for the DLL */ -;// -;// Copyright (c) 2004-2005, Alexander Lerch, zplane.development GbR -;// All rights reserved. -;// -;// Redistribution and use in source and binary forms, with or without -;// modification, are permitted provided that the following conditions -;// are met: -;// -;// * Redistributions of source code must retain the above copyright -;// notice, this list of conditions and the following disclaimer. -;// * Redistributions in binary form must link to the feapi website -;// http://www.sf.net/projects/feapi, -;// reproduce this list of conditions and the following -;// disclaimer in the documentation and/or other materials -;// provided with the distribution. -;// * The name of the contributors to this software must not be used -;// to endorse or promote products derived from this software -;// without specific prior written permission. -;// -;// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -;// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -;// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -;// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -;// COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -;// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -;// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -;// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -;// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -;// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -;// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -;// POSSIBILITY OF SUCH DAMAGE. -;// -;//////////////////////////////////////////////////////////////////////////////////// -;// CVS INFORMATION -;// -;// $RCSfile$ -;// $Author: KoenTanghe $ -;// $Date: 2006-03-08 14:59:10 +0100 (Mi, 08 Mrz 2006) $ -;// -;// $Log$ -;// Revision 1.1.2.1 2006/01/19 13:52:07 remymuller -;// directory reorganization -;// -;// Revision 1.2 2005/05/20 17:09:21 alex_lerch -;// - changed function PluginCanDo to PluginGetProperty and changed the function itself to return values instead of bools -;// - cosmetic changes -;// -;// Revision 1.1.1.1 2005/03/30 14:54:40 alex_lerch -;// first draft version requiring several updates: -;// - interface check -;// - check of plugin base class -;// - implementation of host base class -;// - update of outdated documentation -;// -;// Revision 1.1 2004/11/12 20:54:28 lerch -;// - added example feature FindAbsoluteMax -;// -;// -;// -;//////////////////////////////////////////////////////////////////////////////////// - -LIBRARY "Loudness" -DESCRIPTION 'FEAPI FEAPI Example PlugIn' - -EXPORTS - ; Explicit exports can go here - FEAPI_CreatePluginInstance @01 - FEAPI_DestroyPluginInstance @02 - FEAPI_GetPluginAPIVersion @03 - FEAPI_InitializePlugin @04 - - FEAPI_GetPluginProperty @11 - FEAPI_GetPluginName @12 - FEAPI_GetPluginVendor @13 - FEAPI_GetPluginVendorVersion @14 - FEAPI_GetPluginDescription @15 - FEAPI_GetPluginCopyright @16 - FEAPI_GetPluginId @17 - - FEAPI_GetPluginNumOfInputs @21 - FEAPI_GetPluginInputDescription @22 - - FEAPI_GetPluginNumOfParameters @31 - FEAPI_GetPluginParameterDescription @32 - FEAPI_SetPluginParameter @33 - FEAPI_GetPluginParameter @34 - - FEAPI_GetPluginNumOfResults @41 - FEAPI_GetPluginResultDescription @42 - FEAPI_GetPluginResultLatency @43 - FEAPI_GetPluginSizeOfResult @44 - FEAPI_GetPluginResult @45 - - FEAPI_ProcessPlugin @51 - FEAPI_ProcessPluginDone @52 - - FEAPI_ResetPlugin @61 - - Modified: trunk/FEAPI/build/Win/ExamplePluginLoudness/ExamplePluginLoudness.dsp =================================================================== --- trunk/FEAPI/build/Win/ExamplePluginLoudness/ExamplePluginLoudness.dsp 2006-03-09 20:42:36 UTC (rev 63) +++ trunk/FEAPI/build/Win/ExamplePluginLoudness/ExamplePluginLoudness.dsp 2006-03-14 11:15:31 UTC (rev 64) @@ -140,14 +140,6 @@ # PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" # End Group -# Begin Group "Definition Files" - -# PROP Default_Filter "def" -# Begin Source File - -SOURCE=.\ExamplePluginLoudness.def -# End Source File -# End Group # Begin Group "FEAPI" # PROP Default_Filter "" @@ -167,6 +159,10 @@ # PROP Default_Filter "" # Begin Source File +SOURCE=..\..\..\include\FEAPI.h +# End Source File +# Begin Source File + SOURCE=..\..\..\sdk\plugin\include\FEAPIEntryPoints.h # End Source File # Begin Source File Added: trunk/FEAPI/build/Win/ExamplePluginLoudness/ExamplePluginLoudness.vcproj =================================================================== --- trunk/FEAPI/build/Win/ExamplePluginLoudness/ExamplePluginLoudness.vcproj (rev 0) +++ trunk/FEAPI/build/Win/ExamplePluginLoudness/ExamplePluginLoudness.vcproj 2006-03-14 11:15:31 UTC (rev 64) @@ -0,0 +1,439 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8,00" + Name="Loudness" + ProjectGUID="{0FE4C80F-795D-4DF1-934F-821EA97CCB1F}" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Release|Win32" + OutputDirectory=".\../../../lib" + IntermediateDirectory=".\../../../tmp" + ConfigurationType="2" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="false" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + PreprocessorDefinitions="NDEBUG" + MkTypLibCompatible="true" + SuppressStartupBanner="true" + TargetEnvironment="1" + TypeLibraryName=".\../../../lib/ExamplePluginLoudness.tlb" + HeaderFileName="" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="2" + AdditionalIncludeDirectories="../../../include,../../../sdk/plugin/include,../../../examples/plugin/FEAPIExamplePluginLoudness" + PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS" + StringPooling="true" + RuntimeLibrary="0" + EnableFunctionLevelLinking="true" + PrecompiledHeaderFile=".\../../../tmp/ExamplePluginLoudness.pch" + AssemblerListingLocation=".\../../../tmp/" + ObjectFile=".\../../../tmp/" + ProgramDataBaseFileName=".\../../../tmp/" + WarningLevel="3" + SuppressStartupBanner="true" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="NDEBUG" + Culture="1031" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + IgnoreImportLibrary="true" + OutputFile="../../../bin/Loudness.dll" + LinkIncremental="1" + SuppressStartupBanner="true" + ProgramDatabaseFile=".\../../../lib/Loudness.pdb" + SubSystem="2" + ImportLibrary=".\../../../lib/Loudness.lib" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + SuppressStartupBanner="true" + OutputFile=".\../../../lib/ExamplePluginLoudness.bsc" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Debug|Win32" + OutputDirectory=".\../../../lib/Debug" + IntermediateDirectory=".\../../../tmp/Debug" + ConfigurationType="2" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="false" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + PreprocessorDefinitions="_DEBUG" + MkTypLibCompatible="true" + SuppressStartupBanner="true" + TargetEnvironment="1" + TypeLibraryName=".\../../../lib/Debug/ExamplePluginLoudness.tlb" + HeaderFileName="" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="../../../include,../../../sdk/plugin/include,../../../examples/plugin/FEAPIExamplePluginLoudness" + PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS" + MinimalRebuild="true" + RuntimeLibrary="1" + PrecompiledHeaderFile=".\../../../tmp/Debug/ExamplePluginLoudness.pch" + AssemblerListingLocation=".\../../../tmp/Debug/" + ObjectFile=".\../../../tmp/Debug/" + ProgramDataBaseFileName=".\../../../tmp/Debug/" + WarningLevel="3" + SuppressStartupBanner="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="_DEBUG" + Culture="1031" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + IgnoreImportLibrary="true" + OutputFile="../../../bin/Debug/Loudness.dll" + LinkIncremental="2" + SuppressStartupBanner="true" + GenerateDebugInformation="true" + ProgramDatabaseFile=".\../../../lib/Debug/Loudness.pdb" + SubSystem="2" + ImportLibrary=".\../../../lib/Debug/Loudness.lib" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + SuppressStartupBanner="true" + OutputFile=".\../../../lib/Debug/ExamplePluginLoudness.bsc" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Source Files" + Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" + > + <File + RelativePath="..\..\..\examples\plugin\FEAPIExamplePluginLoudness\FEAPIExamplePluginLoudness.cpp" + > + <FileConfiguration + Name="Release|Win32" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\..\..\examples\plugin\FEAPIExamplePluginLoudness\zplFFT_If.cpp" + > + <FileConfiguration + Name="Release|Win32" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\..\..\examples\plugin\FEAPIExamplePluginLoudness\zplFFTGen.cpp" + > + <FileConfiguration + Name="Release|Win32" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\..\..\examples\plugin\FEAPIExamplePluginLoudness\zplFFTGenCore.cpp" + > + <FileConfiguration + Name="Release|Win32" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\..\..\examples\plugin\FEAPIExamplePluginLoudness\zplVecLibDispatch.cpp" + > + <FileConfiguration + Name="Release|Win32" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + /> + </FileConfiguration> + </File> + <File + RelativePath="..\..\..\examples\plugin\FEAPIExamplePluginLoudness\zplVecLibGen.cpp" + > + <FileConfiguration + Name="Release|Win32" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + /> + </FileConfiguration> + </File> + </Filter> + <Filter + Name="Header Files" + Filter="h;hpp;hxx;hm;inl" + > + <File + RelativePath="..\..\..\examples\plugin\FEAPIExamplePluginLoudness\FEAPIExamplePluginLoudness.h" + > + </File> + <File + RelativePath="..\..\..\examples\plugin\FEAPIExamplePluginLoudness\fft.h" + > + </File> + <File + RelativePath="..\..\..\examples\plugin\FEAPIExamplePluginLoudness\RingBuffer.h" + > + </File> + <File + RelativePath="..\..\..\examples\plugin\FEAPIExamplePluginLoudness\zplVecLib.h" + > + </File> + </Filter> + <Filter + Name="FEAPI" + > + <Filter + Name="sdk" + > + <Filter + Name="src" + > + <File + RelativePath="..\..\..\sdk\plugin\src\FEAPIPluginBase.cpp" + > + <FileConfiguration + Name="Release|Win32" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + /> + </FileConfiguration> + </File> + </Filter> + <Filter + Name="include" + > + <File + RelativePath="..\..\..\include\FEAPI.h" + > + </File> + <File + RelativePath="..\..\..\sdk\plugin\include\FEAPIEntryPoints.h" + > + </File> + <File + RelativePath="..\..\..\sdk\plugin\include\FEAPIPluginBase.h" + > + </File> + </Filter> + </Filter> + </Filter> + <Filter + Name="Documentation Files" + Filter=".txt" + > + <File + RelativePath="..\..\..\doc\docugenPlug.txt" + > + </File> + <File + RelativePath="..\..\..\license\license.txt" + > + </File> + </Filter> + <Filter + Name="Resource Files" + Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" + > + </Filter> + </Files> + <Globals> + </Globals> +</VisualStudioProject> Deleted: trunk/FEAPI/build/Win/ExamplePluginSpectral/ExamplePluginSpectral.def =================================================================== --- trunk/FEAPI/build/Win/ExamplePluginSpectral/ExamplePluginSpectral.def 2006-03-09 20:42:36 UTC (rev 63) +++ trunk/FEAPI/build/Win/ExamplePluginSpectral/ExamplePluginSpectral.def 2006-03-14 11:15:31 UTC (rev 64) @@ -1,75 +0,0 @@ -;//////////////////////////////////////////////////////////////////////////////////// -;// /*! \file FEAPI.def: \brief declares the module parameters -;// for the DLL */ -;// -;// Copyright (c) 2004-2005, Alexander Lerch, zplane.development GbR -;// All rights reserved. -;// -;// Redistribution and use in source and binary forms, with or without -;// modification, are permitted provided that the following conditions -;// are met: -;// -;// * Redistributions of source code must retain the above copyright -;// notice, this list of conditions and the following disclaimer. -;// * Redistributions in binary form must link to the feapi website -;// http://www.sf.net/projects/feapi, -;// reproduce this list of conditions and the following -;// disclaimer in the documentation and/or other materials -;// provided with the distribution. -;// * The name of the contributors to this software must not be used -;// to endorse or promote products derived from this software -;// without specific prior written permission. -;// -;// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -;// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -;// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -;// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -;// COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -;// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -;// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -;// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -;// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -;// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -;// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -;// POSSIBILITY OF SUCH DAMAGE. -;// -;//////////////////////////////////////////////////////////////////////////////////// - -LIBRARY "Spectral" -DESCRIPTION 'FEAPI FEAPI Example PlugIn' - -EXPORTS - ; Explicit exports can go here - FEAPI_CreatePluginInstance @01 - FEAPI_DestroyPluginInstance @02 - FEAPI_GetPluginAPIVersion @03 - FEAPI_InitializePlugin @04 - - FEAPI_GetPluginProperty @11 - FEAPI_GetPluginName @12 - FEAPI_GetPluginVendor @13 - FEAPI_GetPluginVendorVersion @14 - FEAPI_GetPluginDescription @15 - FEAPI_GetPluginCopyright @16 - FEAPI_GetPluginId @17 - - FEAPI_GetPluginNumOfInputs @21 - FEAPI_GetPluginInputDescription @22 - - FEAPI_GetPluginNumOfParameters @31 - FEAPI_GetPluginParameterDescription @32 - FEAPI_SetPluginParameter @33 - FEAPI_GetPluginParameter @34 - - FEAPI_GetPluginNumOfResults @41 - FEAPI_GetPluginResultDescription @42 - FEAPI_GetPluginResultLatency @43 - FEAPI_GetPluginSizeOfResult @44 - FEAPI_GetPluginResult @45 - - FEAPI_ProcessPlugin @51 - FEAPI_ProcessPluginDone @52 - - FEAPI_ResetPlugin @61 - - Modified: trunk/FEAPI/build/Win/ExamplePluginSpectral/ExamplePluginSpectral.dsp =================================================================== --- trunk/FEAPI/build/Win/ExamplePluginSpectral/ExamplePluginSpectral.dsp 2006-03-09 20:42:36 UTC (rev 63) +++ trunk/FEAPI/build/Win/ExamplePluginSpectral/ExamplePluginSpectral.dsp 2006-03-14 11:15:31 UTC (rev 64) @@ -140,14 +140,6 @@ # PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" # End Group -# Begin Group "Definition Files" - -# PROP Default_Filter "def" -# Begin Source File - -SOURCE=.\ExamplePluginSpectral.def -# End Source File -# End Group # Begin Group "FEAPI" # PROP Default_Filter "" @@ -167,6 +159,10 @@ # PROP Default_Filter "" # Begin Source File +SOURCE=..\..\..\include\FEAPI.h +# End Source File +# Begin Source File + SOURCE=..\..\..\sdk\plugin\include\FEAPIEntryPoints.h # End Source File # Begin Source File Added: trunk/FEAPI/build/Win/ExamplePluginSpectral/ExamplePluginSpectral.vcproj =================================================================== --- trunk/FEAPI/build/Win/ExamplePluginSpectral/ExamplePluginSpectral.vcproj (rev 0) +++ trunk/FEAPI/build/Win/ExamplePluginSpectral/ExamplePluginSpectral.vcproj 2006-03-14 11:15:31 UTC (rev 64) @@ -0,0 +1,439 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8,00" + Name="Spectral" + ProjectGUID="{F1D180D5-ACCA-490D-9603-5432A381449C}" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Release|Win32" + OutputDirectory=".\../../../lib" + IntermediateDirectory=".\../../../tmp" + ConfigurationType="2" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="false" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + PreprocessorDefinitions="NDEBUG" + MkTypLibCompatible="true" + SuppressStartupBanner="true" + TargetEnvironment="1" + TypeLibraryName=".\../../../lib/ExamplePluginSpectral.tlb" + HeaderFileName="" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="2" + AdditionalIncludeDirectories="../../../include,../../../sdk/plugin/include,../../../examples/plugin/FEAPIExamplePluginSpectral" + PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS" + StringPooling="true" + RuntimeLibrary="0" + EnableFunctionLevelLinking="true" + PrecompiledHeaderFile=".\../../../tmp/ExamplePluginSpectral.pch" + AssemblerListingLocation=".\../../../tmp/" + ObjectFile=".\../../../tmp/" + ProgramDataBaseFileName=".\../../../tmp/" + WarningLevel="3" + SuppressStartupBanner="true" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="NDEBUG" + Culture="1031" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + IgnoreImportLibrary="true" + OutputFile="../../../bin/Spectral.dll" + LinkIncremental="1" + SuppressStartupBanner="true" + ProgramDatabaseFile=".\../../../lib/Spectral.pdb" + SubSystem="2" + ImportLibrary=".\../../../lib/Spectral.lib" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + SuppressStartupBanner="true" + OutputFile=".\../../../lib/ExamplePluginSpectral.bsc" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Debug|Win32" + OutputDirectory=".\../../../lib/Debug" + IntermediateDirectory=".\../../../tmp/Debug" + ConfigurationType="2" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="false" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + PreprocessorDefinitions="_DEBUG" + MkTypLibCompatible="true" + SuppressStartupBanner="true" + TargetEnvironment="1" + TypeLibraryName=".\../../../lib/Debug/ExamplePluginSpectral.tlb" + HeaderFileName="" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="../../../include,../../../sdk/plugin/include,../../../examples/plugin/FEAPIExamplePluginSpectral" + PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS" + MinimalRebuild="true" + RuntimeLibrary="1" + PrecompiledHeaderFile=".\../../../tmp/Debug/ExamplePluginSpectral.pch" + AssemblerListingLocation=".\../../../tmp/Debug/" + ObjectFile=".\../../../tmp/Debug/" + ProgramDataBaseFileName=".\../../../tmp/Debug/" + WarningLevel="3" + SuppressStartupBanner="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="_DEBUG" + Culture="1031" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + IgnoreImportLibrary="true" + OutputFile="../../../bin/Debug/Spectral.dll" + LinkIncremental="2" + SuppressStartupBanner="true" + GenerateDebugInformation="true" + ProgramDatabaseFile=".\../../../lib/Debug/Spectral.pdb" + SubSystem="2" + ImportLibrary=".\../../../lib/Debug/Spectral.lib" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + SuppressStartupBanner="true" + OutputFile=".\../../../lib/Debug/ExamplePluginSpectral.bsc" + /> + <Tool + Name="VCFxCopTool" + ... [truncated message content] |
From: <fea...@li...> - 2006-03-09 20:43:28
|
Revision: 63 Author: alex_lerch Date: 2006-03-09 12:42:36 -0800 (Thu, 09 Mar 2006) ViewCVS: http://svn.sourceforge.net/feapi/?rev=63&view=rev Log Message: ----------- - added loudness plugin to examples - added spectral features plugin to examples - added HostUtilities and HostDeclarations to Host_C examples/host/Host_C/FEAPIExampleHost_C.cpp - changed some license headers in examples Modified Paths: -------------- trunk/FEAPI/build/Win/FEAPI.dsw trunk/FEAPI/build/Win/FEAPIHost_C/FEAPITestCL.dsp trunk/FEAPI/examples/host/Host_C/FEAPIExampleHost_C.cpp trunk/FEAPI/examples/plugin/FEAPIExamplePluginFindMax/FEAPIExamplePluginFindMax.cpp trunk/FEAPI/examples/plugin/FEAPIExamplePluginZeroCrossings/FEAPIExamplePluginZeroCrossings.cpp trunk/FEAPI/examples/plugin/FEAPIExamplePluginZeroCrossings/RingBuffer.h trunk/FEAPI/examples/plugin/FEAPIExamplePluginZeroCrossings/fft.h trunk/FEAPI/examples/plugin/FEAPIExamplePluginZeroCrossings/zplFFTGen.cpp trunk/FEAPI/examples/plugin/FEAPIExamplePluginZeroCrossings/zplFFT_If.cpp trunk/FEAPI/examples/plugin/FEAPIExamplePluginZeroCrossings/zplVecLib.h trunk/FEAPI/examples/plugin/FEAPIExamplePluginZeroCrossings/zplVecLibDispatch.cpp trunk/FEAPI/examples/plugin/FEAPIExamplePluginZeroCrossings/zplVecLibGen.cpp trunk/FEAPI/sdk/host/src/FEAPIHostUtilities.cpp Added Paths: ----------- trunk/FEAPI/build/Win/ExamplePluginLoudness/ trunk/FEAPI/build/Win/ExamplePluginLoudness/ExamplePluginLoudness.def trunk/FEAPI/build/Win/ExamplePluginLoudness/ExamplePluginLoudness.dsp trunk/FEAPI/build/Win/ExamplePluginSpectral/ trunk/FEAPI/build/Win/ExamplePluginSpectral/ExamplePluginSpectral.def trunk/FEAPI/build/Win/ExamplePluginSpectral/ExamplePluginSpectral.dsp trunk/FEAPI/examples/plugin/FEAPIExamplePluginLoudness/ trunk/FEAPI/examples/plugin/FEAPIExamplePluginLoudness/FEAPIExamplePluginLoudness.cpp trunk/FEAPI/examples/plugin/FEAPIExamplePluginLoudness/FEAPIExamplePluginLoudness.h trunk/FEAPI/examples/plugin/FEAPIExamplePluginLoudness/RingBuffer.h trunk/FEAPI/examples/plugin/FEAPIExamplePluginLoudness/fft.h trunk/FEAPI/examples/plugin/FEAPIExamplePluginLoudness/zplFFTGen.cpp trunk/FEAPI/examples/plugin/FEAPIExamplePluginLoudness/zplFFTGenCore.cpp trunk/FEAPI/examples/plugin/FEAPIExamplePluginLoudness/zplFFT_If.cpp trunk/FEAPI/examples/plugin/FEAPIExamplePluginLoudness/zplVecLib.h trunk/FEAPI/examples/plugin/FEAPIExamplePluginLoudness/zplVecLibDispatch.cpp trunk/FEAPI/examples/plugin/FEAPIExamplePluginLoudness/zplVecLibGen.cpp trunk/FEAPI/examples/plugin/FEAPIExamplePluginSpectral/ trunk/FEAPI/examples/plugin/FEAPIExamplePluginSpectral/FEAPIExamplePluginSpectral.cpp trunk/FEAPI/examples/plugin/FEAPIExamplePluginSpectral/FEAPIExamplePluginSpectral.h trunk/FEAPI/examples/plugin/FEAPIExamplePluginSpectral/RingBuffer.h trunk/FEAPI/examples/plugin/FEAPIExamplePluginSpectral/fft.h trunk/FEAPI/examples/plugin/FEAPIExamplePluginSpectral/zplFFTGen.cpp trunk/FEAPI/examples/plugin/FEAPIExamplePluginSpectral/zplFFTGenCore.cpp trunk/FEAPI/examples/plugin/FEAPIExamplePluginSpectral/zplFFT_If.cpp trunk/FEAPI/examples/plugin/FEAPIExamplePluginSpectral/zplVecLib.h trunk/FEAPI/examples/plugin/FEAPIExamplePluginSpectral/zplVecLibDispatch.cpp trunk/FEAPI/examples/plugin/FEAPIExamplePluginSpectral/zplVecLibGen.cpp Added: trunk/FEAPI/build/Win/ExamplePluginLoudness/ExamplePluginLoudness.def =================================================================== --- trunk/FEAPI/build/Win/ExamplePluginLoudness/ExamplePluginLoudness.def (rev 0) +++ trunk/FEAPI/build/Win/ExamplePluginLoudness/ExamplePluginLoudness.def 2006-03-09 20:42:36 UTC (rev 63) @@ -0,0 +1,102 @@ +;//////////////////////////////////////////////////////////////////////////////////// +;// /*! \file FEAPI.def: \brief declares the module parameters +;// for the DLL */ +;// +;// Copyright (c) 2004-2005, Alexander Lerch, zplane.development GbR +;// All rights reserved. +;// +;// Redistribution and use in source and binary forms, with or without +;// modification, are permitted provided that the following conditions +;// are met: +;// +;// * Redistributions of source code must retain the above copyright +;// notice, this list of conditions and the following disclaimer. +;// * Redistributions in binary form must link to the feapi website +;// http://www.sf.net/projects/feapi, +;// reproduce this list of conditions and the following +;// disclaimer in the documentation and/or other materials +;// provided with the distribution. +;// * The name of the contributors to this software must not be used +;// to endorse or promote products derived from this software +;// without specific prior written permission. +;// +;// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +;// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +;// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +;// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +;// COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +;// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +;// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +;// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +;// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +;// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +;// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +;// POSSIBILITY OF SUCH DAMAGE. +;// +;//////////////////////////////////////////////////////////////////////////////////// +;// CVS INFORMATION +;// +;// $RCSfile$ +;// $Author: KoenTanghe $ +;// $Date: 2006-03-08 14:59:10 +0100 (Mi, 08 Mrz 2006) $ +;// +;// $Log$ +;// Revision 1.1.2.1 2006/01/19 13:52:07 remymuller +;// directory reorganization +;// +;// Revision 1.2 2005/05/20 17:09:21 alex_lerch +;// - changed function PluginCanDo to PluginGetProperty and changed the function itself to return values instead of bools +;// - cosmetic changes +;// +;// Revision 1.1.1.1 2005/03/30 14:54:40 alex_lerch +;// first draft version requiring several updates: +;// - interface check +;// - check of plugin base class +;// - implementation of host base class +;// - update of outdated documentation +;// +;// Revision 1.1 2004/11/12 20:54:28 lerch +;// - added example feature FindAbsoluteMax +;// +;// +;// +;//////////////////////////////////////////////////////////////////////////////////// + +LIBRARY "Loudness" +DESCRIPTION 'FEAPI FEAPI Example PlugIn' + +EXPORTS + ; Explicit exports can go here + FEAPI_CreatePluginInstance @01 + FEAPI_DestroyPluginInstance @02 + FEAPI_GetPluginAPIVersion @03 + FEAPI_InitializePlugin @04 + + FEAPI_GetPluginProperty @11 + FEAPI_GetPluginName @12 + FEAPI_GetPluginVendor @13 + FEAPI_GetPluginVendorVersion @14 + FEAPI_GetPluginDescription @15 + FEAPI_GetPluginCopyright @16 + FEAPI_GetPluginId @17 + + FEAPI_GetPluginNumOfInputs @21 + FEAPI_GetPluginInputDescription @22 + + FEAPI_GetPluginNumOfParameters @31 + FEAPI_GetPluginParameterDescription @32 + FEAPI_SetPluginParameter @33 + FEAPI_GetPluginParameter @34 + + FEAPI_GetPluginNumOfResults @41 + FEAPI_GetPluginResultDescription @42 + FEAPI_GetPluginResultLatency @43 + FEAPI_GetPluginSizeOfResult @44 + FEAPI_GetPluginResult @45 + + FEAPI_ProcessPlugin @51 + FEAPI_ProcessPluginDone @52 + + FEAPI_ResetPlugin @61 + + Added: trunk/FEAPI/build/Win/ExamplePluginLoudness/ExamplePluginLoudness.dsp =================================================================== --- trunk/FEAPI/build/Win/ExamplePluginLoudness/ExamplePluginLoudness.dsp (rev 0) +++ trunk/FEAPI/build/Win/ExamplePluginLoudness/ExamplePluginLoudness.dsp 2006-03-09 20:42:36 UTC (rev 63) @@ -0,0 +1,192 @@ +# Microsoft Developer Studio Project File - Name="Loudness" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=Loudness - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "ExamplePluginLoudness.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "ExamplePluginLoudness.mak" CFG="Loudness - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "Loudness - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "Loudness - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=xicl6.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "Loudness - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "../../../lib" +# PROP Intermediate_Dir "../../../tmp/" +# PROP Ignore_Export_Lib 1 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /Ob2 /I "../../../include" /I "../../../sdk/plugin/include" /I "../../../examples/plugin/FEAPIExamplePluginLoudness" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c +# SUBTRACT CPP /YX +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x407 /d "NDEBUG" +# ADD RSC /l 0x407 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=xilink6.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 /out:"../../../bin/Loudness.dll" + +!ELSEIF "$(CFG)" == "Loudness - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "../../../lib/Debug" +# PROP Intermediate_Dir "../../../tmp/Debug" +# PROP Ignore_Export_Lib 1 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../include" /I "../../../sdk/plugin/include" /I "../../../examples/plugin/FEAPIExamplePluginLoudness" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x407 /d "_DEBUG" +# ADD RSC /l 0x407 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=xilink6.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /out:"../../../bin/Debug/Loudness.dll" /pdbtype:sept + +!ENDIF + +# Begin Target + +# Name "Loudness - Win32 Release" +# Name "Loudness - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\examples\plugin\FEAPIExamplePluginLoudness\FEAPIExamplePluginLoudness.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\examples\plugin\FEAPIExamplePluginLoudness\zplFFT_If.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\examples\plugin\FEAPIExamplePluginLoudness\zplFFTGen.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\examples\plugin\FEAPIExamplePluginLoudness\zplFFTGenCore.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\examples\plugin\FEAPIExamplePluginLoudness\zplVecLibDispatch.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\examples\plugin\FEAPIExamplePluginLoudness\zplVecLibGen.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\examples\plugin\FEAPIExamplePluginLoudness\FEAPIExamplePluginLoudness.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\examples\plugin\FEAPIExamplePluginLoudness\fft.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\examples\plugin\FEAPIExamplePluginLoudness\RingBuffer.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\examples\plugin\FEAPIExamplePluginLoudness\zplVecLib.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# End Group +# Begin Group "Definition Files" + +# PROP Default_Filter "def" +# Begin Source File + +SOURCE=.\ExamplePluginLoudness.def +# End Source File +# End Group +# Begin Group "FEAPI" + +# PROP Default_Filter "" +# Begin Group "sdk" + +# PROP Default_Filter "" +# Begin Group "src" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\..\sdk\plugin\src\FEAPIPluginBase.cpp +# End Source File +# End Group +# Begin Group "include" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\..\sdk\plugin\include\FEAPIEntryPoints.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\sdk\plugin\include\FEAPIPluginBase.h +# End Source File +# End Group +# End Group +# End Group +# Begin Group "Documentation Files" + +# PROP Default_Filter ".txt" +# Begin Source File + +SOURCE=..\..\..\doc\docugenPlug.txt +# End Source File +# Begin Source File + +SOURCE=..\..\..\license\license.txt +# End Source File +# End Group +# End Target +# End Project Added: trunk/FEAPI/build/Win/ExamplePluginSpectral/ExamplePluginSpectral.def =================================================================== --- trunk/FEAPI/build/Win/ExamplePluginSpectral/ExamplePluginSpectral.def (rev 0) +++ trunk/FEAPI/build/Win/ExamplePluginSpectral/ExamplePluginSpectral.def 2006-03-09 20:42:36 UTC (rev 63) @@ -0,0 +1,75 @@ +;//////////////////////////////////////////////////////////////////////////////////// +;// /*! \file FEAPI.def: \brief declares the module parameters +;// for the DLL */ +;// +;// Copyright (c) 2004-2005, Alexander Lerch, zplane.development GbR +;// All rights reserved. +;// +;// Redistribution and use in source and binary forms, with or without +;// modification, are permitted provided that the following conditions +;// are met: +;// +;// * Redistributions of source code must retain the above copyright +;// notice, this list of conditions and the following disclaimer. +;// * Redistributions in binary form must link to the feapi website +;// http://www.sf.net/projects/feapi, +;// reproduce this list of conditions and the following +;// disclaimer in the documentation and/or other materials +;// provided with the distribution. +;// * The name of the contributors to this software must not be used +;// to endorse or promote products derived from this software +;// without specific prior written permission. +;// +;// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +;// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +;// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +;// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +;// COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +;// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +;// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +;// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +;// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +;// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +;// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +;// POSSIBILITY OF SUCH DAMAGE. +;// +;//////////////////////////////////////////////////////////////////////////////////// + +LIBRARY "Spectral" +DESCRIPTION 'FEAPI FEAPI Example PlugIn' + +EXPORTS + ; Explicit exports can go here + FEAPI_CreatePluginInstance @01 + FEAPI_DestroyPluginInstance @02 + FEAPI_GetPluginAPIVersion @03 + FEAPI_InitializePlugin @04 + + FEAPI_GetPluginProperty @11 + FEAPI_GetPluginName @12 + FEAPI_GetPluginVendor @13 + FEAPI_GetPluginVendorVersion @14 + FEAPI_GetPluginDescription @15 + FEAPI_GetPluginCopyright @16 + FEAPI_GetPluginId @17 + + FEAPI_GetPluginNumOfInputs @21 + FEAPI_GetPluginInputDescription @22 + + FEAPI_GetPluginNumOfParameters @31 + FEAPI_GetPluginParameterDescription @32 + FEAPI_SetPluginParameter @33 + FEAPI_GetPluginParameter @34 + + FEAPI_GetPluginNumOfResults @41 + FEAPI_GetPluginResultDescription @42 + FEAPI_GetPluginResultLatency @43 + FEAPI_GetPluginSizeOfResult @44 + FEAPI_GetPluginResult @45 + + FEAPI_ProcessPlugin @51 + FEAPI_ProcessPluginDone @52 + + FEAPI_ResetPlugin @61 + + Added: trunk/FEAPI/build/Win/ExamplePluginSpectral/ExamplePluginSpectral.dsp =================================================================== --- trunk/FEAPI/build/Win/ExamplePluginSpectral/ExamplePluginSpectral.dsp (rev 0) +++ trunk/FEAPI/build/Win/ExamplePluginSpectral/ExamplePluginSpectral.dsp 2006-03-09 20:42:36 UTC (rev 63) @@ -0,0 +1,192 @@ +# Microsoft Developer Studio Project File - Name="Spectral" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=Spectral - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "ExamplePluginSpectral.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "ExamplePluginSpectral.mak" CFG="Spectral - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "Spectral - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "Spectral - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=xicl6.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "Spectral - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "../../../lib" +# PROP Intermediate_Dir "../../../tmp/" +# PROP Ignore_Export_Lib 1 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /Ob2 /I "../../../include" /I "../../../sdk/plugin/include" /I "../../../examples/plugin/FEAPIExamplePluginSpectral" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c +# SUBTRACT CPP /YX +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x407 /d "NDEBUG" +# ADD RSC /l 0x407 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=xilink6.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 /out:"../../../bin/Spectral.dll" + +!ELSEIF "$(CFG)" == "Spectral - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "../../../lib/Debug" +# PROP Intermediate_Dir "../../../tmp/Debug" +# PROP Ignore_Export_Lib 1 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../include" /I "../../../sdk/plugin/include" /I "../../../examples/plugin/FEAPIExamplePluginSpectral" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x407 /d "_DEBUG" +# ADD RSC /l 0x407 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=xilink6.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /out:"../../../bin/Debug/Spectral.dll" /pdbtype:sept + +!ENDIF + +# Begin Target + +# Name "Spectral - Win32 Release" +# Name "Spectral - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\examples\plugin\FEAPIExamplePluginSpectral\FEAPIExamplePluginSpectral.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\examples\plugin\FEAPIExamplePluginSpectral\zplFFT_If.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\examples\plugin\FEAPIExamplePluginSpectral\zplFFTGen.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\examples\plugin\FEAPIExamplePluginSpectral\zplFFTGenCore.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\examples\plugin\FEAPIExamplePluginSpectral\zplVecLibDispatch.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\examples\plugin\FEAPIExamplePluginSpectral\zplVecLibGen.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\examples\plugin\FEAPIExamplePluginSpectral\FEAPIExamplePluginSpectral.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\examples\plugin\FEAPIExamplePluginSpectral\fft.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\examples\plugin\FEAPIExamplePluginSpectral\RingBuffer.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\examples\plugin\FEAPIExamplePluginSpectral\zplVecLib.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# End Group +# Begin Group "Definition Files" + +# PROP Default_Filter "def" +# Begin Source File + +SOURCE=.\ExamplePluginSpectral.def +# End Source File +# End Group +# Begin Group "FEAPI" + +# PROP Default_Filter "" +# Begin Group "sdk" + +# PROP Default_Filter "" +# Begin Group "src" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\..\sdk\plugin\src\FEAPIPluginBase.cpp +# End Source File +# End Group +# Begin Group "include" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\..\sdk\plugin\include\FEAPIEntryPoints.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\sdk\plugin\include\FEAPIPluginBase.h +# End Source File +# End Group +# End Group +# End Group +# Begin Group "Documentation Files" + +# PROP Default_Filter ".txt" +# Begin Source File + +SOURCE=..\..\..\doc\docugenPlug.txt +# End Source File +# Begin Source File + +SOURCE=..\..\..\license\license.txt +# End Source File +# End Group +# End Target +# End Project Modified: trunk/FEAPI/build/Win/FEAPI.dsw =================================================================== (Binary files differ) Modified: trunk/FEAPI/build/Win/FEAPIHost_C/FEAPITestCL.dsp =================================================================== (Binary files differ) Modified: trunk/FEAPI/examples/host/Host_C/FEAPIExampleHost_C.cpp =================================================================== --- trunk/FEAPI/examples/host/Host_C/FEAPIExampleHost_C.cpp 2006-03-09 18:18:47 UTC (rev 62) +++ trunk/FEAPI/examples/host/Host_C/FEAPIExampleHost_C.cpp 2006-03-09 20:42:36 UTC (rev 63) @@ -22,6 +22,8 @@ // include project specific headers #include "sndfile.h" // libsndfile is used for audio file parsing #include "FEAPI.h" // Feature Extraction API +#include "FEAPIHostDeclarations.h" +#include "FEAPIHostUtilities.h" ///////////////////////////////////////////////////////////////////////////////// @@ -32,51 +34,6 @@ -//////////////////////////////////////////////////////////////////////////////// -// local structures -/*! structure containing the pointers to the functions of one plug-in */ -typedef struct PluginFunctions_ -{ - - // declare function pointers - FEAPI_CreatePluginInstance_t pFunCreateInstance; - FEAPI_DestroyPluginInstance_t pFunDestroyInstance; - FEAPI_GetPluginAPIVersion_t pFunGetApiVersion; - FEAPI_InitializePlugin_t pFunInitializePlugin; - FEAPI_GetPluginName_t pFunGetPluginName; - FEAPI_GetPluginVendor_t pFunGetPluginVendor; - FEAPI_GetPluginProperty_t pFunGetPluginProperty; - FEAPI_GetPluginId_t pFunGetPluginId; - FEAPI_GetPluginVendorVersion_t pFunGetPluginVendorVersion; - FEAPI_GetPluginDescription_t pFunGetPluginDescription; - FEAPI_GetPluginCopyright_t pFunGetPluginCopyright; - FEAPI_GetPluginNumOfInputs_t pFunGetNumberOfInputs; - FEAPI_GetPluginInputDescription_t pFunGetInputDescription; - FEAPI_GetPluginNumOfResults_t pFunGetNumberOfResults; - FEAPI_GetPluginResultDescription_t pFunGetResultDescription; - FEAPI_GetPluginNumOfParameters_t pFunGetNumberOfParameters; - FEAPI_GetPluginParameterDescription_t pFunGetParameterDescription; - FEAPI_SetPluginParameter_t pFunSetParameter; - FEAPI_GetPluginParameter_t pFunGetParameter; - FEAPI_ProcessPlugin_t pFunProcess; - FEAPI_ProcessPluginDone_t pFunProcessDone; - FEAPI_GetPluginSizeOfResult_t pFunGetSizeOfResult; - FEAPI_GetPluginResult_t pFunGetResult; - FEAPI_GetPluginResultLatency_t pFunGetResultLatency; - FEAPI_ResetPlugin_t pFunReset; -} PluginFunctions_t; - - -typedef struct PluginFileNames_ PluginFileNames_t; -/*! structure containing all detected plug-in dlls names in a list */ -struct PluginFileNames_ -{ - char acFilename[4096]; - int iMajorVersion; - PluginFileNames_t *pNextPlugin; -}; - - ///////////////////////////////////////////////////////////////////////////////// // local function declarations @@ -109,27 +66,6 @@ */ static void CLShowProcessedTime (clock_t clTime); -/*! - * retrieve function pointers from a plug-in dll \todo update docu - * - * @param *phDllHandle : dll handle - * @param *pstPluginFunctions : structure with function pointers, to be written - * - * @return static bool : - */ -#ifdef WIN32 -static bool GetFunctionPointers (HMODULE *phDllHandle, PluginFunctions_t *pstPluginFunctions); -#elif MAC -static bool GetFunctionPointers (CFBundleRef cfBundle, PluginFunctions_t *pstPluginFunctions); -#endif -/*! - * parse the current working directory for plug-ins - * - * @param *pstFileNames : list of detected plug-ins, to be written - * - * @return static int : number of detected plug-ins - */ -static int FindPlugins (PluginFileNames_t *pstFileNames); @@ -169,17 +105,13 @@ float *pfDataInterleaved = 0, **ppfDataSorted = 0, **ppfResult = 0; -#ifdef WIN32 - HMODULE hDllHandle = 0; -#elif MAC - CFBundleRef cfBundle; -#endif - PluginFileNames_t *pCurrentPlugin = 0; + FEAPI_ModuleHandle_t hDllHandle = 0; + FEAPI_PluginFileNames_t *pCurrentPlugin = 0; FEAPI_PluginInstance_t hPluginInstance; - PluginFunctions_t stPluginFunctions; - PluginFileNames_t stPluginFileNames; + FEAPI_PluginFunctions_t stPluginFunctions; + FEAPI_PluginFileNames_t stPluginFileNames; FEAPI_SignalDescription_t stSignalDescription; FEAPI_ParameterDescription_t stParameterDescription; @@ -254,36 +186,13 @@ } // load plugin dll -#ifdef WIN32 - hDllHandle = LoadLibrary (pCurrentPlugin->acFilename); - - // get pointers to API functions - if (!GetFunctionPointers (&hDllHandle, &stPluginFunctions)) - { - if (hDllHandle) - FreeLibrary (hDllHandle); + hDllHandle = 0; + LoadPluginModule (pCurrentPlugin->acFilename, &hDllHandle); + if (!hDllHandle) return -1; - } -#elif MAC - CFStringRef bundlePath = CFStringCreateWithCString(kCFAllocatorDefault,pCurrentPlugin->acFilename,kCFStringEncodingMacRoman); - CFURLRef bundleURL = CFURLCreateWithFileSystemPath(kCFAllocatorDefault,bundlePath,kCFURLPOSIXPathStyle,true); - cfBundle = CFBundleCreate(kCFAllocatorDefault,bundleURL); - CFRelease(bundlePath); - CFRelease(bundleURL); + else + GetFunctionPointers (hDllHandle, &stPluginFunctions); - // get pointers to API functions - if (!GetFunctionPointers (cfBundle, &stPluginFunctions)) - { - if (cfBundle) - { - CFBundleUnloadExecutable(cfBundle); - CFRelease(cfBundle); - } - return -1; - } -#endif - - // open input audio file if (pcInputPath == 0) return -1; @@ -581,17 +490,9 @@ fprintf (stdout, " Succeeded\n"); else fprintf (stdout, " Failed\n"); -#ifdef WIN32 - if (hDllHandle) - FreeLibrary (hDllHandle); -#elif MAC - if (cfBundle) - { - CFBundleUnloadExecutable(cfBundle); - CFRelease(cfBundle); - } -#endif + UnloadPluginModule (hDllHandle); + // free allocated memory for (i = 0; i < iNumResults; i++) if (ppfResult[i]) @@ -611,7 +512,7 @@ // delete plug-in list while (stPluginFileNames.pNextPlugin) { - PluginFileNames_t *pLastPlugin = &stPluginFileNames; + FEAPI_PluginFileNames_t *pLastPlugin = &stPluginFileNames; pCurrentPlugin = stPluginFileNames.pNextPlugin; while (pCurrentPlugin) { @@ -684,282 +585,4 @@ return; } -#ifdef WIN32 -static bool GetFunctionPointers(HMODULE *phDllHandle, PluginFunctions_t *pstPluginFunctions) -{ - // get exports from dll - pstPluginFunctions->pFunCreateInstance = (FEAPI_CreatePluginInstance_t) GetProcAddress (*phDllHandle, "FEAPI_CreatePluginInstance"); - if (!pstPluginFunctions->pFunCreateInstance) - return false; - pstPluginFunctions->pFunDestroyInstance = (FEAPI_DestroyPluginInstance_t) GetProcAddress (*phDllHandle, "FEAPI_DestroyPluginInstance"); - if (!pstPluginFunctions->pFunDestroyInstance) - return false; - pstPluginFunctions->pFunGetApiVersion = (FEAPI_GetPluginAPIVersion_t) GetProcAddress (*phDllHandle, "FEAPI_GetPluginAPIVersion"); - if (!pstPluginFunctions->pFunGetApiVersion) - return false; - pstPluginFunctions->pFunInitializePlugin = (FEAPI_InitializePlugin_t) GetProcAddress (*phDllHandle, "FEAPI_InitializePlugin"); - if (!pstPluginFunctions->pFunInitializePlugin) - return false; - pstPluginFunctions->pFunGetPluginName = (FEAPI_GetPluginName_t) GetProcAddress (*phDllHandle, "FEAPI_GetPluginName"); ; - if (!pstPluginFunctions->pFunGetPluginName) - return false; - pstPluginFunctions->pFunGetPluginVendor = (FEAPI_GetPluginVendor_t) GetProcAddress (*phDllHandle, "FEAPI_GetPluginVendor"); ; - if (!pstPluginFunctions->pFunGetPluginVendor) - return false; - pstPluginFunctions->pFunGetPluginProperty = (FEAPI_GetPluginProperty_t) GetProcAddress (*phDllHandle, "FEAPI_GetPluginProperty"); ; - if (!pstPluginFunctions->pFunGetPluginVendor) - return false; - pstPluginFunctions->pFunGetPluginId = (FEAPI_GetPluginId_t) GetProcAddress (*phDllHandle, "FEAPI_GetPluginId"); ; - if (!pstPluginFunctions->pFunGetPluginId) - return false; - pstPluginFunctions->pFunGetPluginVendorVersion = (FEAPI_GetPluginVendorVersion_t) GetProcAddress (*phDllHandle, "FEAPI_GetPluginVendorVersion"); ; - if (!pstPluginFunctions->pFunGetPluginVendorVersion) - return false; - pstPluginFunctions->pFunGetPluginDescription = (FEAPI_GetPluginDescription_t) GetProcAddress (*phDllHandle, "FEAPI_GetPluginDescription"); ; - if (!pstPluginFunctions->pFunGetPluginDescription) - return false; - pstPluginFunctions->pFunGetPluginCopyright = (FEAPI_GetPluginCopyright_t) GetProcAddress (*phDllHandle, "FEAPI_GetPluginCopyright"); ; - if (!pstPluginFunctions->pFunGetPluginCopyright) - return false; - pstPluginFunctions->pFunGetNumberOfInputs = (FEAPI_GetPluginNumOfInputs_t) GetProcAddress (*phDllHandle, "FEAPI_GetPluginNumOfInputs"); ; - if (!pstPluginFunctions->pFunGetNumberOfInputs) - return false; - pstPluginFunctions->pFunGetInputDescription = (FEAPI_GetPluginInputDescription_t) GetProcAddress (*phDllHandle, "FEAPI_GetPluginInputDescription"); ; - if (!pstPluginFunctions->pFunGetInputDescription) - return false; - pstPluginFunctions->pFunGetNumberOfResults = (FEAPI_GetPluginNumOfResults_t) GetProcAddress (*phDllHandle, "FEAPI_GetPluginNumOfResults"); ; - if (!pstPluginFunctions->pFunGetNumberOfResults) - return false; - pstPluginFunctions->pFunGetResultDescription = (FEAPI_GetPluginResultDescription_t) GetProcAddress (*phDllHandle, "FEAPI_GetPluginResultDescription"); ; - if (!pstPluginFunctions->pFunGetResultDescription) - return false; - pstPluginFunctions->pFunGetNumberOfParameters = (FEAPI_GetPluginNumOfParameters_t) GetProcAddress (*phDllHandle, "FEAPI_GetPluginNumOfParameters"); ; - if (!pstPluginFunctions->pFunGetNumberOfParameters) - return false; - pstPluginFunctions->pFunGetParameterDescription = (FEAPI_GetPluginParameterDescription_t) GetProcAddress (*phDllHandle, "FEAPI_GetPluginParameterDescription"); ; - if (!pstPluginFunctions->pFunGetParameterDescription) - return false; - pstPluginFunctions->pFunSetParameter = (FEAPI_SetPluginParameter_t) GetProcAddress (*phDllHandle, "FEAPI_SetPluginParameter"); ; - if (!pstPluginFunctions->pFunSetParameter) - return false; - pstPluginFunctions->pFunGetParameter = (FEAPI_GetPluginParameter_t) GetProcAddress (*phDllHandle, "FEAPI_GetPluginParameter"); ; - if (!pstPluginFunctions->pFunGetParameter) - return false; - pstPluginFunctions->pFunProcess = (FEAPI_ProcessPlugin_t) GetProcAddress (*phDllHandle, "FEAPI_ProcessPlugin"); ; - if (!pstPluginFunctions->pFunProcess) - return false; - pstPluginFunctions->pFunProcessDone = (FEAPI_ProcessPluginDone_t) GetProcAddress (*phDllHandle, "FEAPI_ProcessPluginDone"); ; - if (!pstPluginFunctions->pFunProcessDone) - return false; - pstPluginFunctions->pFunGetSizeOfResult = (FEAPI_GetPluginSizeOfResult_t) GetProcAddress (*phDllHandle, "FEAPI_GetPluginSizeOfResult"); ; - if (!pstPluginFunctions->pFunGetSizeOfResult) - return false; - pstPluginFunctions->pFunGetResult = (FEAPI_GetPluginResult_t) GetProcAddress (*phDllHandle, "FEAPI_GetPluginResult"); ; - if (!pstPluginFunctions->pFunGetResult) - return false; - pstPluginFunctions->pFunGetResultLatency = (FEAPI_GetPluginResultLatency_t) GetProcAddress (*phDllHandle, "FEAPI_GetPluginResultLatency"); ; - if (!pstPluginFunctions->pFunGetResultLatency) - return false; - pstPluginFunctions->pFunReset = (FEAPI_ResetPlugin_t) GetProcAddress (*phDllHandle, "FEAPI_ResetPlugin"); ; - if (!pstPluginFunctions->pFunReset) - return false; - return true; -} -#elif MAC -static bool GetFunctionPointers(CFBundleRef cfBundle, PluginFunctions_t *pstPluginFunctions) -{ - // get exports from dll - pstPluginFunctions->pFunCreateInstance = (FEAPI_CreatePluginInstance_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_CreatePluginInstance")); - if (!pstPluginFunctions->pFunCreateInstance) - return false; - pstPluginFunctions->pFunDestroyInstance = (FEAPI_DestroyPluginInstance_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_DestroyPluginInstance")); - if (!pstPluginFunctions->pFunDestroyInstance) - return false; - pstPluginFunctions->pFunGetApiVersion = (FEAPI_GetPluginAPIVersion_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginAPIVersion")); - if (!pstPluginFunctions->pFunGetApiVersion) - return false; - pstPluginFunctions->pFunInitializePlugin = (FEAPI_InitializePlugin_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_InitializePlugin")); - if (!pstPluginFunctions->pFunInitializePlugin) - return false; - pstPluginFunctions->pFunGetPluginName = (FEAPI_GetPluginName_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginName")); - if (!pstPluginFunctions->pFunGetPluginName) - return false; - pstPluginFunctions->pFunGetPluginVendor = (FEAPI_GetPluginVendor_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginVendor")); - if (!pstPluginFunctions->pFunGetPluginVendor) - return false; - pstPluginFunctions->pFunGetPluginProperty = (FEAPI_GetPluginProperty_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginProperty")); - if (!pstPluginFunctions->pFunGetPluginVendor) - return false; - pstPluginFunctions->pFunGetPluginId = (FEAPI_GetPluginId_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginId")); - if (!pstPluginFunctions->pFunGetPluginId) - return false; - pstPluginFunctions->pFunGetPluginVendorVersion = (FEAPI_GetPluginVendorVersion_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginVendorVersion")); - if (!pstPluginFunctions->pFunGetPluginVendorVersion) - return false; - pstPluginFunctions->pFunGetPluginDescription = (FEAPI_GetPluginDescription_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginDescription")); - if (!pstPluginFunctions->pFunGetPluginDescription) - return false; - pstPluginFunctions->pFunGetPluginCopyright = (FEAPI_GetPluginCopyright_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginCopyright")); - if (!pstPluginFunctions->pFunGetPluginCopyright) - return false; - pstPluginFunctions->pFunGetNumberOfInputs = (FEAPI_GetPluginNumOfInputs_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginNumOfInputs")); - if (!pstPluginFunctions->pFunGetNumberOfInputs) - return false; - pstPluginFunctions->pFunGetInputDescription = (FEAPI_GetPluginInputDescription_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginInputDescription")); - if (!pstPluginFunctions->pFunGetInputDescription) - return false; - pstPluginFunctions->pFunGetNumberOfResults = (FEAPI_GetPluginNumOfResults_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginNumOfResults")); - if (!pstPluginFunctions->pFunGetNumberOfResults) - return false; - pstPluginFunctions->pFunGetResultDescription = (FEAPI_GetPluginResultDescription_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginResultDescription")); - if (!pstPluginFunctions->pFunGetResultDescription) - return false; - pstPluginFunctions->pFunGetNumberOfParameters = (FEAPI_GetPluginNumOfParameters_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginNumOfParameters")); - if (!pstPluginFunctions->pFunGetNumberOfParameters) - return false; - pstPluginFunctions->pFunGetParameterDescription = (FEAPI_GetPluginParameterDescription_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginParameterDescription")); - if (!pstPluginFunctions->pFunGetParameterDescription) - return false; - pstPluginFunctions->pFunSetParameter = (FEAPI_SetPluginParameter_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_SetPluginParameter")); - if (!pstPluginFunctions->pFunSetParameter) - return false; - pstPluginFunctions->pFunGetParameter = (FEAPI_GetPluginParameter_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginParameter")); - if (!pstPluginFunctions->pFunGetParameter) - return false; - pstPluginFunctions->pFunProcess = (FEAPI_ProcessPlugin_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_ProcessPlugin")); - if (!pstPluginFunctions->pFunProcess) - return false; - pstPluginFunctions->pFunProcessDone = (FEAPI_ProcessPluginDone_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_ProcessPluginDone")); - if (!pstPluginFunctions->pFunProcessDone) - return false; - pstPluginFunctions->pFunGetSizeOfResult = (FEAPI_GetPluginSizeOfResult_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginSizeOfResult")); - if (!pstPluginFunctions->pFunGetSizeOfResult) - return false; - pstPluginFunctions->pFunGetResult = (FEAPI_GetPluginResult_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginResult")); - if (!pstPluginFunctions->pFunGetResult) - return false; - pstPluginFunctions->pFunGetResultLatency = (FEAPI_GetPluginResultLatency_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginResultLatency")); - if (!pstPluginFunctions->pFunGetResultLatency) - return false; - pstPluginFunctions->pFunReset = (FEAPI_ResetPlugin_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_ResetPlugin")); - if (!pstPluginFunctions->pFunReset) - return false; - - return true; -} -#endif - -#ifdef WIN32 -int FindPlugins (PluginFileNames_t *pstFileNames) -{ - struct _finddata_t DllFile; - long hFile; - int iNumOfPlugins = 0; - PluginFileNames_t *pCurrentStruct = pstFileNames; - PluginFunctions_t stPluginFunctions; - - /* Find first .dll file in current directory */ - if( (hFile = _findfirst( "*.dll", &DllFile )) == -1L ) - return iNumOfPlugins; - else - { - HMODULE hDllHandle; - - hDllHandle = LoadLibrary (DllFile.name); - - if (GetFunctionPointers(&hDllHandle, &stPluginFunctions)) - { - // add to list - strcpy(pCurrentStruct->acFilename, DllFile.name); - pCurrentStruct->iMajorVersion = stPluginFunctions.pFunGetApiVersion (FEAPI_kMajorVersion); - pCurrentStruct->pNextPlugin = new PluginFileNames_t; - pCurrentStruct = pCurrentStruct->pNextPlugin; - pCurrentStruct->pNextPlugin = 0; - iNumOfPlugins++; - } - - if (hDllHandle) - FreeLibrary (hDllHandle); - - /* Find the rest of the .dll files */ - while( _findnext( hFile, &DllFile ) == 0 ) - { - hDllHandle = LoadLibrary (DllFile.name); - - if (GetFunctionPointers(&hDllHandle, &stPluginFunctions)) - { - // add to list - strcpy(pCurrentStruct->acFilename, DllFile.name); - pCurrentStruct->iMajorVersion = stPluginFunctions.pFunGetApiVersion (FEAPI_kMajorVersion); - pCurrentStruct->pNextPlugin = new PluginFileNames_t; - pCurrentStruct = pCurrentStruct->pNextPlugin; - pCurrentStruct->pNextPlugin = 0; - iNumOfPlugins++; - } - if (hDllHandle) - FreeLibrary (hDllHandle); - } - - _findclose( hFile ); - } - - return iNumOfPlugins; -} - -#elif MAC - -int FindPlugins (PluginFileNames_t *pstFileNames) -{ - int iNumOfPlugins = 0; - PluginFileNames_t *pCurrentStruct = pstFileNames; - PluginFunctions_t stPluginFunctions; - - char acFeapiPath[1024]; - strcpy(acFeapiPath,getenv("HOME")); - strcat(acFeapiPath,"/library/Audio/Plug-Ins/FEAPI"); - - CFStringRef cfFeapiPlugInPath = CFStringCreateWithCString(kCFAllocatorDefault,acFeapiPath,kCFStringEncodingMacRoman); - CFURLRef cfFeapiPluginsURL = CFURLCreateWithFileSystemPath(kCFAllocatorDefault,cfFeapiPlugInPath,kCFURLPOSIXPathStyle,true); - - // do we need to release and/or unload the bundles when created like that? - CFArrayRef bundleArray = CFBundleCreateBundlesFromDirectory(kCFAllocatorDefault,cfFeapiPluginsURL,NULL); - CFIndex iNumOfBundles = CFArrayGetCount(bundleArray); - - if( iNumOfBundles <= 0 ) - { - CFRelease(cfFeapiPlugInPath); - CFRelease(cfFeapiPluginsURL); - CFRelease(bundleArray); - return iNumOfPlugins; - } - - // search all bundles for FEAPI plugins - for(int i=0; i<iNumOfBundles; ++i) - { - CFBundleRef cfBundle = (CFBundleRef) CFArrayGetValueAtIndex(bundleArray,i); - - if (GetFunctionPointers(cfBundle, &stPluginFunctions)) - { - // add to list - CFURLRef cfBundleURL = CFBundleCopyBundleURL(cfBundle); - char acBundlePath[1024]; - CFURLGetFileSystemRepresentation(cfBundleURL,true,(UInt8 *)acBundlePath,1024); - strcpy(pCurrentStruct->acFilename, (const char*)acBundlePath); - - pCurrentStruct->iMajorVersion = stPluginFunctions.pFunGetApiVersion (FEAPI_kMajorVersion); - pCurrentStruct->pNextPlugin = new PluginFileNames_t; - pCurrentStruct = pCurrentStruct->pNextPlugin; - pCurrentStruct->pNextPlugin = 0; - iNumOfPlugins++; - } - } - - CFRelease(cfFeapiPlugInPath); - CFRelease(cfFeapiPluginsURL); - CFRelease(bundleArray); - - return iNumOfPlugins; -} - -#endif Modified: trunk/FEAPI/examples/plugin/FEAPIExamplePluginFindMax/FEAPIExamplePluginFindMax.cpp =================================================================== --- trunk/FEAPI/examples/plugin/FEAPIExamplePluginFindMax/FEAPIExamplePluginFindMax.cpp 2006-03-09 18:18:47 UTC (rev 62) +++ trunk/FEAPI/examples/plugin/FEAPIExamplePluginFindMax/FEAPIExamplePluginFindMax.cpp 2006-03-09 20:42:36 UTC (rev 63) @@ -359,6 +359,7 @@ return -1; } + /////////////////////////////////////// // entry points #ifdef __cplusplus Added: trunk/FEAPI/examples/plugin/FEAPIExamplePluginLoudness/FEAPIExamplePluginLoudness.cpp =================================================================== --- trunk/FEAPI/examples/plugin/FEAPIExamplePluginLoudness/FEAPIExamplePluginLoudness.cpp (rev 0) +++ trunk/FEAPI/examples/plugin/FEAPIExamplePluginLoudness/FEAPIExamplePluginLoudness.cpp 2006-03-09 20:42:36 UTC (rev 63) @@ -0,0 +1,1263 @@ +//////////////////////////////////////////////////////////////////////////////////// +// /*! \file FEAPIExamplePluginLoudness.cpp: \brief implementation of the CLoudnessFeatures class. */ +// +// Copyright (c) 2004-2006 +// zplane.development +// Flohrer Lerch Schwerdtfeger GbR +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must link to the FEAPI_ website +// http://www.sf.net/projects/FEAPI_, +// reproduce this list of conditions and the following +// disclaimer in the documentation and/or other materials +// provided with the distribution. +// * The name of the contributors to this software must not be used +// to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +// +//////////////////////////////////////////////////////////////////////////////////// + + +#include <string> +#include <iostream> +#include <math.h> + +#include "zplVecLib.h" + +#include "FEAPI.h" +#include "FEAPIExamplePluginLoudness.h" + +#ifndef FLT_MAX +#define FLT_MAX 3.402823466e+38F +#endif + +///////////////////////////////////////////////////////////////////////////// +#if !defined(_PI) +#define _PI (float)(3.1415926535897932384626433832795) //!< pi +#endif +#if !defined(_PI2) +#define _PI2 (float)(1.570796326794897) //!< pi/2 +#endif +#if !defined(_PI4) +#define _PI4 (float)(7.853981633974483e-001) //!< pi/4 +#endif +#if !defined(_2PI) +#define _2PI (float)(6.283185307179586476925286766559) //!< 2*pi +#endif +#if !defined(_LN10) +#define _LN10 (float)(2.30258509299405) //!< ln(10) +#endif +#if !defined(_INVLN10) +#define _INVLN10 (float)(0.4342944819032518) //!< 1/ln(10) +#endif +#if !defined(_10INVLN10) +#define _10INVLN10 (float)(4.342944819032518) //!< 10/ln(10) +#endif +#if !defined(_20INVLN10) +#define _20INVLN10 (float)(8.685889638065035) //!< 20/ln(10) +#endif +#if !defined(_INVLN2) +#define _INVLN2 (float)(1.442695040888963) //!< 1/ln(2) +#endif +#if !defined(_SQRT2) +#define _SQRT2 (float)(1.4142135623730950488016887242097) //!< sqrt(2) +#endif +#if !defined(_INVSQRT2) +#define _INVSQRT2 (float)(0.70710678118654752440084436210485) //!< 1/sqrt(2) +#endif +#if !defined(_SQRT10) +#define _SQRT10 (float)(3.162277660168380) //!< sqrt(10) +#endif +#if !defined(_SQRT3) +#define _SQRT3 (float)(1.732050807568877) //!< sqrt(3) +#endif +#if !defined(_SQRT5) +#define _SQRT5 (float)(2.236067977499790) //!< sqrt(5) +#endif +#if !defined(_SQRT4) +#define _SQRT4 (float)(2.0) //!< sqrt(4) +#endif + //! returns the absolute value of a +#define ZABS(a) (((a) > (0)) ? (a) : -(a)) + //! find minimum of a and b +#define ZMIN(a,b) (((a) < (b)) ? (a) : (b)) + //! find maxmimum of a and b +#define ZMAX(a,b) (((a) > (b)) ? (a) : (b)) + //! calc sqr(a) +#define ZSQR(a) (float)((a)*(a)) + //! calc sqrt(a) +#define ZSQRT(a) (float)(sqrt(a)) + //! calc 10^a +#define ZPOW10(a) (float)(exp(_LN10*(a))) + //! swap values of a and b +#define SWAPINT(a,b) {zINT iTmp = (a); (a) = (b); (b) = (iTmp);} +///////////////////////////////////////////////////////////////////////////////// + + +#define kDefaultNumOfResults 8 +#define kDefaultRollOff 0.85F + +/*! this defines the version of the PlugIn itself */ +#define _MY_MAJOR_VERSION 0x00000000 +#define _MY_MINOR_VERSION 0x00000000 +#define _MY_SUB_VERSION 0x00000001 + + +// defines for plug in name etc. +#define _MY_PLUGIN_NAME "Loudness" +#define _MY_PLUGIN_VENDOR "zplane.development" +#define _MY_PLUGIN_DESCRIPTION "This PlugIn calculates the zwicker loundess per channel. " +#define _MY_PLUGIN_COPYRIGHT "(c) 2005-2006 by zplane.development" +#define _MY_PLUGIN_ID "zplLoudness" + + + + +enum LoudnessParameters_t +{ + kParamBlockSize = 0, + kParamHopSize = 1, + kParamChannelMode = 2, + kParamWindowType = 3, + kParamLowFreqBound = 4, + kParamZeroPad = 5, + + kNumParameters +}; + +enum LoudnessFeatures_t +{ + kLoudness1 = 0, + kLoudness2 = 1, + + kNumFeatures +}; + +#define kReferenceLevel (.5F*_SQRT2/20e-6F) + +#define kNumMidFreqs 28 +static const float fMidFreqs[kNumMidFreqs] = +{ + 25, + 31.5, + 40, + 50, + 63, + 80, + 100, + 125, + 160, + 200, + 250, + 315, + 400, + 500, + 630, + 800, + 1000, + 1250, + 1600, + 2000, + 2500, + 3150, + 4000, + 5000, + 6300, + 8000, + 10000, + 12500 +}; + +static const FEAPI_ParameterDescription_t LoudnessParameterDescription[kNumParameters] = +{ + //Name, Unit, Description, RangeMin, RangeMax, Default, Quantized, Realtime + {"Analysis Block Length", "Frames", "Length of analysis window for one result", 4, (float)((1<<30)-1), 32768, 4, false}, + {"Analysis Hop-Size", "ms", "Distance between two analysis block beginnings", 1, (float)((1<<30)-1), 10, -1, false}, + {"Individual Channels or Sum Channel", "", "Determines wether the calculation should be done on the sum of all input channels ('0') or on each individual channel ('1')", 0, 1, 0, 1, false}, + {"FFT Window", "", "Window Type for FFT analysis (0: rectangular, 1: hanning, 2: hamming, 3: blackman)", 0, 3, 1, 1, false}, + {"Low Frequency Cutoff", "Hz", "Only take into account frequencies above this frequency", 0, (float)((1<<30)-1), 0, -1, true}, + {"Zero Pad Factor", "", "Factor for zeropadding the FFT, has to be pow of two", 1, 256, 1, -1, false}, + +}; + +static const FEAPI_SignalDescription_t LoudnessFeatureDescription[kNumFeatures] = +{ + //Name, Unit, Description, RangeMin, RangeMax, Quantized SampleRate + {"Loudness 1", "", "loudness roughly after DIN standard", ... [truncated message content] |
From: <fea...@li...> - 2006-03-09 18:18:52
|
Revision: 62 Author: alex_lerch Date: 2006-03-09 10:18:47 -0800 (Thu, 09 Mar 2006) ViewCVS: http://svn.sourceforge.net/feapi/?rev=62&view=rev Log Message: ----------- removed branch lerch Removed Paths: ------------- branches/lerch/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fea...@li...> - 2006-03-09 18:17:58
|
Revision: 61 Author: alex_lerch Date: 2006-03-09 10:17:39 -0800 (Thu, 09 Mar 2006) ViewCVS: http://svn.sourceforge.net/feapi/?rev=61&view=rev Log Message: ----------- added zerocrossings example plugin Modified Paths: -------------- trunk/FEAPI/build/Win/FEAPI.dsw Added Paths: ----------- trunk/FEAPI/build/Win/ExamplePluginZeroCrossings/ trunk/FEAPI/build/Win/ExamplePluginZeroCrossings/ExamplePluginZeroCrossings.def trunk/FEAPI/build/Win/ExamplePluginZeroCrossings/ExamplePluginZeroCrossings.dsp trunk/FEAPI/examples/plugin/FEAPIExamplePluginZeroCrossings/ trunk/FEAPI/examples/plugin/FEAPIExamplePluginZeroCrossings/FEAPIExamplePluginZeroCrossings.cpp trunk/FEAPI/examples/plugin/FEAPIExamplePluginZeroCrossings/FEAPIExamplePluginZeroCrossings.h trunk/FEAPI/examples/plugin/FEAPIExamplePluginZeroCrossings/RingBuffer.h trunk/FEAPI/examples/plugin/FEAPIExamplePluginZeroCrossings/fft.h trunk/FEAPI/examples/plugin/FEAPIExamplePluginZeroCrossings/zplFFTGen.cpp trunk/FEAPI/examples/plugin/FEAPIExamplePluginZeroCrossings/zplFFTGenCore.cpp trunk/FEAPI/examples/plugin/FEAPIExamplePluginZeroCrossings/zplFFT_If.cpp trunk/FEAPI/examples/plugin/FEAPIExamplePluginZeroCrossings/zplVecLib.h trunk/FEAPI/examples/plugin/FEAPIExamplePluginZeroCrossings/zplVecLibDispatch.cpp trunk/FEAPI/examples/plugin/FEAPIExamplePluginZeroCrossings/zplVecLibGen.cpp Added: trunk/FEAPI/build/Win/ExamplePluginZeroCrossings/ExamplePluginZeroCrossings.def =================================================================== --- trunk/FEAPI/build/Win/ExamplePluginZeroCrossings/ExamplePluginZeroCrossings.def (rev 0) +++ trunk/FEAPI/build/Win/ExamplePluginZeroCrossings/ExamplePluginZeroCrossings.def 2006-03-09 18:17:39 UTC (rev 61) @@ -0,0 +1,102 @@ +;//////////////////////////////////////////////////////////////////////////////////// +;// /*! \file FEAPI.def: \brief declares the module parameters +;// for the DLL */ +;// +;// Copyright (c) 2004-2005, Alexander Lerch, zplane.development GbR +;// All rights reserved. +;// +;// Redistribution and use in source and binary forms, with or without +;// modification, are permitted provided that the following conditions +;// are met: +;// +;// * Redistributions of source code must retain the above copyright +;// notice, this list of conditions and the following disclaimer. +;// * Redistributions in binary form must link to the feapi website +;// http://www.sf.net/projects/feapi, +;// reproduce this list of conditions and the following +;// disclaimer in the documentation and/or other materials +;// provided with the distribution. +;// * The name of the contributors to this software must not be used +;// to endorse or promote products derived from this software +;// without specific prior written permission. +;// +;// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +;// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +;// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +;// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +;// COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +;// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +;// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +;// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +;// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +;// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +;// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +;// POSSIBILITY OF SUCH DAMAGE. +;// +;//////////////////////////////////////////////////////////////////////////////////// +;// CVS INFORMATION +;// +;// $RCSfile$ +;// $Author: KoenTanghe $ +;// $Date: 2006-03-08 14:59:10 +0100 (Mi, 08 Mrz 2006) $ +;// +;// $Log$ +;// Revision 1.1.2.1 2006/01/19 13:52:07 remymuller +;// directory reorganization +;// +;// Revision 1.2 2005/05/20 17:09:21 alex_lerch +;// - changed function PluginCanDo to PluginGetProperty and changed the function itself to return values instead of bools +;// - cosmetic changes +;// +;// Revision 1.1.1.1 2005/03/30 14:54:40 alex_lerch +;// first draft version requiring several updates: +;// - interface check +;// - check of plugin base class +;// - implementation of host base class +;// - update of outdated documentation +;// +;// Revision 1.1 2004/11/12 20:54:28 lerch +;// - added example feature FindAbsoluteMax +;// +;// +;// +;//////////////////////////////////////////////////////////////////////////////////// + +LIBRARY "ZeroCrossings" +DESCRIPTION 'FEAPI FEAPI Example PlugIn' + +EXPORTS + ; Explicit exports can go here + FEAPI_CreatePluginInstance @01 + FEAPI_DestroyPluginInstance @02 + FEAPI_GetPluginAPIVersion @03 + FEAPI_InitializePlugin @04 + + FEAPI_GetPluginProperty @11 + FEAPI_GetPluginName @12 + FEAPI_GetPluginVendor @13 + FEAPI_GetPluginVendorVersion @14 + FEAPI_GetPluginDescription @15 + FEAPI_GetPluginCopyright @16 + FEAPI_GetPluginId @17 + + FEAPI_GetPluginNumOfInputs @21 + FEAPI_GetPluginInputDescription @22 + + FEAPI_GetPluginNumOfParameters @31 + FEAPI_GetPluginParameterDescription @32 + FEAPI_SetPluginParameter @33 + FEAPI_GetPluginParameter @34 + + FEAPI_GetPluginNumOfResults @41 + FEAPI_GetPluginResultDescription @42 + FEAPI_GetPluginResultLatency @43 + FEAPI_GetPluginSizeOfResult @44 + FEAPI_GetPluginResult @45 + + FEAPI_ProcessPlugin @51 + FEAPI_ProcessPluginDone @52 + + FEAPI_ResetPlugin @61 + + Added: trunk/FEAPI/build/Win/ExamplePluginZeroCrossings/ExamplePluginZeroCrossings.dsp =================================================================== --- trunk/FEAPI/build/Win/ExamplePluginZeroCrossings/ExamplePluginZeroCrossings.dsp (rev 0) +++ trunk/FEAPI/build/Win/ExamplePluginZeroCrossings/ExamplePluginZeroCrossings.dsp 2006-03-09 18:17:39 UTC (rev 61) @@ -0,0 +1,192 @@ +# Microsoft Developer Studio Project File - Name="ZeroCrossings" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=ZeroCrossings - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "ExamplePluginZeroCrossings.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "ExamplePluginZeroCrossings.mak" CFG="ZeroCrossings - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "ZeroCrossings - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "ZeroCrossings - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=xicl6.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "ZeroCrossings - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "../../../lib" +# PROP Intermediate_Dir "../../../tmp/" +# PROP Ignore_Export_Lib 1 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /Ob2 /I "../../../include" /I "../../../sdk/plugin/include" /I "../../../examples/plugin/FEAPIExamplePluginZeroCrossings" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c +# SUBTRACT CPP /YX +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x407 /d "NDEBUG" +# ADD RSC /l 0x407 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=xilink6.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 /out:"../../../bin/ZeroCrossings.dll" + +!ELSEIF "$(CFG)" == "ZeroCrossings - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "../../../lib/Debug" +# PROP Intermediate_Dir "../../../tmp/Debug" +# PROP Ignore_Export_Lib 1 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../include" /I "../../../sdk/plugin/include" /I "../../../examples/plugin/FEAPIExamplePluginZeroCrossings" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x407 /d "_DEBUG" +# ADD RSC /l 0x407 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=xilink6.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /out:"../../../bin/Debug/ZeroCrossings.dll" /pdbtype:sept + +!ENDIF + +# Begin Target + +# Name "ZeroCrossings - Win32 Release" +# Name "ZeroCrossings - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\examples\plugin\FEAPIExamplePluginZeroCrossings\FEAPIExamplePluginZeroCrossings.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\examples\plugin\FEAPIExamplePluginZeroCrossings\zplFFT_If.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\examples\plugin\FEAPIExamplePluginZeroCrossings\zplFFTGen.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\examples\plugin\FEAPIExamplePluginZeroCrossings\zplFFTGenCore.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\examples\plugin\FEAPIExamplePluginZeroCrossings\zplVecLibDispatch.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\examples\plugin\FEAPIExamplePluginZeroCrossings\zplVecLibGen.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\examples\plugin\FEAPIExamplePluginZeroCrossings\FEAPIExamplePluginZeroCrossings.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\examples\plugin\FEAPIExamplePluginZeroCrossings\fft.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\examples\plugin\FEAPIExamplePluginZeroCrossings\RingBuffer.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\examples\plugin\FEAPIExamplePluginZeroCrossings\zplVecLib.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# End Group +# Begin Group "Definition Files" + +# PROP Default_Filter "def" +# Begin Source File + +SOURCE=.\ExamplePluginZeroCrossings.def +# End Source File +# End Group +# Begin Group "FEAPI" + +# PROP Default_Filter "" +# Begin Group "sdk" + +# PROP Default_Filter "" +# Begin Group "src" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\..\sdk\plugin\src\FEAPIPluginBase.cpp +# End Source File +# End Group +# Begin Group "include" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\..\sdk\plugin\include\FEAPIEntryPoints.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\sdk\plugin\include\FEAPIPluginBase.h +# End Source File +# End Group +# End Group +# End Group +# Begin Group "Documentation Files" + +# PROP Default_Filter ".txt" +# Begin Source File + +SOURCE=..\..\..\doc\docugenPlug.txt +# End Source File +# Begin Source File + +SOURCE=..\..\..\license\license.txt +# End Source File +# End Group +# End Target +# End Project Modified: trunk/FEAPI/build/Win/FEAPI.dsw =================================================================== (Binary files differ) Added: trunk/FEAPI/examples/plugin/FEAPIExamplePluginZeroCrossings/FEAPIExamplePluginZeroCrossings.cpp =================================================================== --- trunk/FEAPI/examples/plugin/FEAPIExamplePluginZeroCrossings/FEAPIExamplePluginZeroCrossings.cpp (rev 0) +++ trunk/FEAPI/examples/plugin/FEAPIExamplePluginZeroCrossings/FEAPIExamplePluginZeroCrossings.cpp 2006-03-09 18:17:39 UTC (rev 61) @@ -0,0 +1,660 @@ +//////////////////////////////////////////////////////////////////////////////////// +// /*! \file FEAPIZeroCrossings.cpp: \brief implementation of the CZeroCrossings class. */ +// +// Copyright (c) 2005, Alexander Lerch, zplane.development GbR +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must link to the feapi website +// http://www.sf.net/projects/feapi, +// reproduce this list of conditions and the following +// disclaimer in the documentation and/or other materials +// provided with the distribution. +// * The name of the contributors to this software must not be used +// to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +// +//////////////////////////////////////////////////////////////////////////////////// +// CVS INFORMATION +// +// $RCSfile$ +// $Author$ +// $Date$ +// +// $Log$ +// +//////////////////////////////////////////////////////////////////////////////////// + + + +#include <string> +#include <iostream> +#include <math.h> + +#include "zplVecLib.h" + +#include "FEAPI.h" +#include "FEAPIExamplePluginZeroCrossings.h" + +#ifndef FLT_MAX +#define FLT_MAX 3.402823466e+38F +#endif + +#define kDefaultNumOfResults 8 + +/*! this defines the version of the PlugIn itself */ +#define _MY_MAJOR_VERSION 0x00000000 +#define _MY_MINOR_VERSION 0x00000000 +#define _MY_SUB_VERSION 0x00000001 + + +// defines for plug in name etc. +#define _MY_PLUGIN_NAME "ZeroCrossings" +#define _MY_PLUGIN_VENDOR "zplane.development" +#define _MY_PLUGIN_DESCRIPTION "This PlugIn calculates the relative number of zero crossings per channel. A zero crossing is a sign change of two neibourghed samples." +#define _MY_PLUGIN_COPYRIGHT "(c) 2005 by zplane.development" +#define _MY_PLUGIN_ID "zplZeroCrossings" + + +// defines for description of result +#define kFeatureName "Relative number of Zero-Crossings" +#define kFeatureUnit "-" +#define kFeatureDescription "The number of zero crossings in the analysis block divided by the analysis block length" +#define kFeatureRangeMin 0.0F +#define kFeatureRangeMax 1.0F +#define kFeatureIsQuantized -1 // value is not quantized + +#define kParam1Name "Analysis Block Length" +#define kParam1Unit "Frames" +#define kParam1Description "Length of analysis window for one result" +#define kParam1RangeMin 4 +#define kParam1RangeMax (float)((1<<30)-1) +#define kParam1DefaultValue 1024 +#define kParam1QuantizedTo 4 +#define kParam1IsChangeableInRealTime false + +#define kParam2Name "Analysis Hop-Size" +#define kParam2Unit "ms" +#define kParam2Description "Distance between two analysis block beginnings" +#define kParam2RangeMin 1 +#define kParam2RangeMax (float)((1<<30)-1) +#define kParam2DefaultValue 10 +#define kParam2QuantizedTo -1 +#define kParam2IsChangeableInRealTime false + +#define kParam3Name "Individual Channels or Sum Channel" +#define kParam3Unit "" +#define kParam3Description "Determines wether the calculation should be done on the sum of all input channels ('0') or on each individual channel ('1')" +#define kParam3RangeMin 0 +#define kParam3RangeMax 1 +#define kParam3DefaultValue 0 +#define kParam3QuantizedTo 1 +#define kParam3IsChangeableInRealTime false + +enum MyParameters_t +{ + kBlockSize = 0, + kHopSize = 1, + kChannelMode = 2, + + kNumParameters +}; + +_THE_PLUGIN_CLASS::_THE_PLUGIN_CLASS () : CFeatureExtractBase() +{ + + zplVecLibDispatcher (); + + m_ppCRingBuffer = 0; + m_ppResults = 0; + m_pfProcessBuffer = 0; + m_ptLocalTimeStamp = 0; + + m_iNumberOfParameters = kNumParameters; + m_iSizeOfResultBuffer = kDefaultNumOfResults; + + // set strings that will be returned by the default methods + m_cPluginName = _MY_PLUGIN_NAME; + m_cPluginVendor = _MY_PLUGIN_VENDOR; + m_cPluginDescription = _MY_PLUGIN_DESCRIPTION; + m_cPluginId = _MY_PLUGIN_ID; + m_cPluginCopyRight = _MY_PLUGIN_COPYRIGHT; + + // set plug in version info + m_iMajorVersion = _MY_MAJOR_VERSION; + m_iMinorVersion = _MY_MINOR_VERSION; + m_iSubVersion = _MY_SUB_VERSION; + + m_afParameters[kBlockSize] = kParam1DefaultValue; + m_afParameters[kHopSize] = kParam2DefaultValue; + m_afParameters[kChannelMode]= kParam3DefaultValue; +} + + +_THE_PLUGIN_CLASS::~_THE_PLUGIN_CLASS () +{ + int iCh; + if (m_ppCRingBuffer) + { + for (iCh = 0; iCh < m_iNumberOfChannels; iCh++) + { + if (m_ppCRingBuffer[iCh]) + delete m_ppCRingBuffer[iCh]; + m_ppCRingBuffer[iCh] = 0; + } + delete [] m_ppCRingBuffer; + m_ppCRingBuffer = 0; + } + if (m_ppResults) + { + for (iCh = 0; iCh < m_iNumberOfResults; iCh++) + { + if (m_ppResults[iCh]) + delete [] m_ppResults[iCh]; + m_ppResults[iCh] = 0; + } + delete [] m_ppResults; + m_ppResults = 0; + } + if (m_ptLocalTimeStamp) + delete [] m_ptLocalTimeStamp; + m_ptLocalTimeStamp = 0; + + zplfFree (m_pfProcessBuffer); +} + + +FEAPI_Error_t _THE_PLUGIN_CLASS::InitializePlugin (float fInputSampleRate, + int iNumberOfAudioChannels, + int iHostApiMajorVersion, + FEAPI_UserData_t *pstUserData) +{ + FEAPI_Error_t rErr; + int iCh; + + // free already allocated memory + if (m_ppCRingBuffer) + { + for (iCh = 0; iCh < m_iNumberOfChannels; iCh++) + { + if (m_ppCRingBuffer[iCh]) + delete m_ppCRingBuffer[iCh]; + m_ppCRingBuffer[iCh] = 0; + } + delete [] m_ppCRingBuffer; + m_ppCRingBuffer = 0; + } + if (m_ppResults) + { + for (iCh = 0; iCh < m_iNumberOfResults; iCh++) + { + if (m_ppResults[iCh]) + delete [] m_ppResults[iCh]; + m_ppResults[iCh] = 0; + } + delete [] m_ppResults; + m_ppResults = 0; + } + if (m_ptLocalTimeStamp) + delete [] m_ptLocalTimeStamp; + m_ptLocalTimeStamp = 0; + zplfFree (m_pfProcessBuffer); + + rErr = CFeatureExtractBase::InitializePlugin ( fInputSampleRate, + iNumberOfAudioChannels, + iHostApiMajorVersion, + pstUserData); + + + if (rErr != FEAPI_kNoError) + return rErr; + + // allocate ringbuffers and memory for results and temp memory for processing + m_pfProcessBuffer = zplfMalloc ((int)(m_afParameters[kBlockSize])); + m_ptLocalTimeStamp = new FEAPI_TimeStamp_t [iNumberOfAudioChannels]; + m_ppCRingBuffer = new CRingBuffer<float>*[iNumberOfAudioChannels]; + m_ppResults = new InternalResults_t*[iNumberOfAudioChannels]; + for (iCh = 0; iCh < iNumberOfAudioChannels; iCh++) + { + m_ppCRingBuffer[iCh] = new CRingBuffer<float>((unsigned int)(m_afParameters[kBlockSize])<<1); + m_ppResults[iCh] = new InternalResults_t[m_iSizeOfResultBuffer]; + memset (m_ppResults[iCh], 0, sizeof (InternalResults_t) * m_iSizeOfResultBuffer); + } + memset (m_ptLocalTimeStamp, 0, sizeof(FEAPI_TimeStamp_t)*iNumberOfAudioChannels); + + m_iNumberOfResults = 1; + + return FEAPI_kNoError; +} + + +FEAPI_Error_t _THE_PLUGIN_CLASS::GetPluginResultDescription (int iResultIndex, FEAPI_SignalDescription_t *pstResultDescription) +{ + // the description is for all results identical in this case + // only the channel number changes (channel number equals feature number for this plugin) + + if ((iResultIndex >= m_iNumberOfResults) || (iResultIndex < 0)) + return FEAPI_kUnspecifiedError; + + strcpy (pstResultDescription->acName, kFeatureName); + strcpy (pstResultDescription->acUnit, kFeatureUnit); + strcpy (pstResultDescription->acDescription, kFeatureDescription); + pstResultDescription->fRangeMin = kFeatureRangeMin; + pstResultDescription->fRangeMax = kFeatureRangeMax; + pstResultDescription->fQuantizedTo = kFeatureIsQuantized; + pstResultDescription->fSampleRate = 0.001F / m_afParameters[kHopSize]; + + return FEAPI_kNoError; +} + + +FEAPI_Error_t _THE_PLUGIN_CLASS::GetPluginInputDescription (int iInputIndex, FEAPI_SignalDescription_t *pstInputDescription) +{ + // the description is for all inputs identical in this case + // only the channel number changes (channel number equals feature number for this plugin) + + if (iInputIndex >= m_iNumberOfChannels) + return FEAPI_kUnspecifiedError; + + std::string tmp = "Channel: "; + char actmp[100] ; + sprintf(actmp,"%d",iInputIndex); + tmp.append (actmp); + tmp.copy (pstInputDescription->acName, FEAPI_uiMaxNameLength); + + tmp.erase (0, tmp.length ()); + tmp.copy (pstInputDescription->acUnit, FEAPI_uiMaxNameLength); + + tmp.erase (0, tmp.length ()); + strcpy (pstInputDescription->acDescription, pstInputDescription->acName); + + pstInputDescription->fRangeMin = -1; + pstInputDescription->fRangeMax = 1; + pstInputDescription->fQuantizedTo = -1; + pstInputDescription->fSampleRate = m_fSampleRate; + + return FEAPI_kNoError; +} + + +FEAPI_Error_t _THE_PLUGIN_CLASS::GetPluginParameterDescription (int iParameterIndex, FEAPI_ParameterDescription_t *pstParameterDescription) +{ + if ((iParameterIndex >= m_iNumberOfParameters) || (iParameterIndex < 0)) + return FEAPI_kUnspecifiedError; + + switch (iParameterIndex) + { + case kBlockSize: + { + strcpy (pstParameterDescription->acName, kParam1Name); + strcpy (pstParameterDescription->acUnit, kParam1Unit); + strcpy (pstParameterDescription->acDescription, kParam1Description); + pstParameterDescription->fRangeMin = kParam1RangeMin; + pstParameterDescription->fRangeMax = kParam1RangeMax; + pstParameterDescription->fDefaultValue = kParam1DefaultValue; + pstParameterDescription->fQuantizedTo = kParam1QuantizedTo; + pstParameterDescription->bIsChangeableInRealTime= kParam1IsChangeableInRealTime; + break; + } + case kHopSize: + { + strcpy (pstParameterDescription->acName, kParam2Name); + strcpy (pstParameterDescription->acUnit, kParam2Unit); + strcpy (pstParameterDescription->acDescription, kParam2Description); + pstParameterDescription->fRangeMin = kParam2RangeMin; + pstParameterDescription->fRangeMax = kParam2RangeMax; + pstParameterDescription->fDefaultValue = kParam2DefaultValue; + pstParameterDescription->fQuantizedTo = kParam2QuantizedTo; + pstParameterDescription->bIsChangeableInRealTime= kParam2IsChangeableInRealTime; + break; + } + case kChannelMode: + { + strcpy (pstParameterDescription->acName, kParam3Name); + strcpy (pstParameterDescription->acUnit, kParam3Unit); + strcpy (pstParameterDescription->acDescription, kParam3Description); + pstParameterDescription->fRangeMin = kParam3RangeMin; + pstParameterDescription->fRangeMax = kParam3RangeMax; + pstParameterDescription->fDefaultValue = kParam3DefaultValue; + pstParameterDescription->fQuantizedTo = kParam3QuantizedTo; + pstParameterDescription->bIsChangeableInRealTime= kParam3IsChangeableInRealTime; + break; + } + default: + return FEAPI_kUnspecifiedError; + } + + return FEAPI_kNoError; +} + + +FEAPI_Error_t _THE_PLUGIN_CLASS::SetPluginParameter (int iParameterIndex, float fValue) +{ + float fMinValue, + fMaxValue; + + if ((iParameterIndex >= m_iNumberOfParameters) || (iParameterIndex < 0)) + return FEAPI_kUnspecifiedError; + + // check range + switch (iParameterIndex) + { + case kBlockSize: + fMinValue = kParam1RangeMin; + fMaxValue = kParam1RangeMax; + break; + case kHopSize: + fMinValue = kParam2RangeMin; + fMaxValue = kParam2RangeMax; + break; + case kChannelMode: + fMinValue = kParam3RangeMin; + fMaxValue = kParam3RangeMax; + break; + default: + return FEAPI_kUnspecifiedError; + } + + if ((fValue < fMinValue) || (fValue > fMaxValue)) + return FEAPI_kUnspecifiedError; + + m_afParameters[iParameterIndex] = fValue; + m_iNumberOfResults = (m_afParameters[kChannelMode] == 0) ? 1 : m_iNumberOfChannels; + + // since all parameters are non-realtime parameters, we can call initialize her for simplicity + this->InitializePlugin (m_fSampleRate, m_iNumberOfChannels, 1, 0); + + return FEAPI_kUnknownError; +} + + +float _THE_PLUGIN_CLASS::GetPluginParameter (int iParameterIndex) +{ + if ((iParameterIndex >= m_iNumberOfParameters) || (iParameterIndex < 0)) + return FEAPI_kUnspecifiedError; + + return m_afParameters[iParameterIndex]; +} + + +int _THE_PLUGIN_CLASS::GetPluginResultLatency (int iResultIndex) +{ + return m_afParameters[kBlockSize]; +} + + +FEAPI_Error_t _THE_PLUGIN_CLASS::ProcessPluginDone () +{ + int iNumProcessChannels = m_iNumberOfChannels, + iProcessBlockSize = (int)(m_afParameters[kBlockSize]), + iSamplesInBuffer = m_ppCRingBuffer[0]->GetSamplesInBuffer (); + + for (int iCh = 0; iCh < iNumProcessChannels; iCh++) + { + int iTempResult = 0; + + m_ppCRingBuffer[iCh]->GetPostInc (m_pfProcessBuffer, iSamplesInBuffer); + memset (&m_pfProcessBuffer[iSamplesInBuffer], 0, sizeof(float)*(iProcessBlockSize - iSamplesInBuffer)); + + iTempResult = zplfZeroCrossings (m_pfProcessBuffer, iProcessBlockSize); + + m_ptLocalTimeStamp[iCh] = m_ptLocalTimeStamp[iCh] + m_afParameters[kHopSize]*0.001F; + this->WriteResult (iCh, iTempResult * 1.0F / iSamplesInBuffer, m_ptLocalTimeStamp[iCh]); + } + + return FEAPI_kNoError; +} + +FEAPI_Error_t _THE_PLUGIN_CLASS::ProcessPlugin (const float **ppfInputBuffer, const FEAPI_TimeStamp_t *ptTimeStamps, int iNumberOfFrames) +{ + bool bDownmixToMono = (m_afParameters[kChannelMode] == 0)? true : false; + int iCh, + iIdx, + iProcessBlockSize = (int)(m_afParameters[kBlockSize]), + iHopSize = (int)(m_afParameters[kHopSize]*0.001F * m_fSampleRate + .5F), + iNumFramesLeft = iNumberOfFrames, + iNumProcessChannels = m_iNumberOfChannels, + iSamplesInBuffer = 0; + + if (!m_bIsInitialized) + return FEAPI_kUnspecifiedError; + + // do time stamp handling, in both cases: no/defined time stamp + if (ptTimeStamps) + { + for (iCh = 0; iCh < m_iNumberOfChannels; iCh++) + m_ptLocalTimeStamp[iCh] = ptTimeStamps[iCh] + iNumberOfFrames/m_fSampleRate; + } + else + { + for (iCh = 0; iCh < m_iNumberOfChannels; iCh++) + m_ptLocalTimeStamp[iCh] += iNumberOfFrames/m_fSampleRate; + } + + // if there are sufficient frames to process, do it! + while (m_ppCRingBuffer[0]->GetSamplesInBuffer () + iNumFramesLeft >= iProcessBlockSize) + { + // check if we have to downmix to mono or not + if (bDownmixToMono) + { + iNumProcessChannels = 1; + // downmix and write to buffer, decr numframesleft + memcpy (m_pfProcessBuffer, ppfInputBuffer[0], sizeof(float) * iHopSize); + for (iCh = 1; iCh < m_iNumberOfChannels; iCh++) + { + const float *pfBuffer = &ppfInputBuffer[iCh][iNumberOfFrames - iNumFramesLeft]; + + for (iIdx = 0; iIdx < iHopSize; iIdx++) + m_pfProcessBuffer[iIdx] += pfBuffer[iIdx]; + + // just a comment: scaling does not have any influence on zero crossings... + } + m_ppCRingBuffer[0]->PutPostInc (m_pfProcessBuffer, iHopSize); + } + else + { + for (iCh = 0; iCh < m_iNumberOfChannels; iCh++) + m_ppCRingBuffer[iCh]->PutPostInc (&ppfInputBuffer[iCh][iNumberOfFrames - iNumFramesLeft], iHopSize); + } + + // decrement number of frames left in ppfInputBuffer + iNumFramesLeft -= iHopSize; + + // get the current number of sample in ring buffer + iSamplesInBuffer = m_ppCRingBuffer[0]->GetSamplesInBuffer (); + + // if there are not enough sample in ring buffer, go on (note that this is not really possible...) + if (iSamplesInBuffer < iProcessBlockSize) + continue; + + // now do the processing + for (iCh = 0; iCh < iNumProcessChannels; iCh++) + { + int iTempResult = 0; + + // get data from ring bufffer and oncrement read pointer + m_ppCRingBuffer[iCh]->GetOff (m_pfProcessBuffer, iProcessBlockSize, 0); + m_ppCRingBuffer[iCh]->SetReadPos (m_ppCRingBuffer[iCh]->GetReadPos () + iHopSize); + + // calculation the number of zero crossings: pseudo: length(find((a(1:iBlockSize-1).*a(0:iBlockSize-2)) < 0)) + iTempResult = zplfZeroCrossings (m_pfProcessBuffer, iProcessBlockSize); + + // adjust time stamp and write result to output buffer + m_ptLocalTimeStamp[iCh] = m_ptLocalTimeStamp[iCh] - iSamplesInBuffer/m_fSampleRate; + this->WriteResult (iCh, iTempResult * 1.0F / iProcessBlockSize, m_ptLocalTimeStamp[iCh]); + } + } + + // if there are frames left in ppfInputBuffer, handle them here + if (iNumFramesLeft > 0) + { + // write remaining frames to ringbuffer (distinguish downmix or not..., decr numframesleft) + if (bDownmixToMono) + { + // downmix and write to buffer + memcpy (m_pfProcessBuffer, ppfInputBuffer[0], sizeof(float) * iHopSize); + for (iCh = 1; iCh < m_iNumberOfChannels; iCh++) + { + const float *pfBuffer = &ppfInputBuffer[iCh][iNumberOfFrames - iNumFramesLeft]; + + for (iIdx = 0; iIdx < iNumFramesLeft; iIdx++) + m_pfProcessBuffer[iIdx] += pfBuffer[iIdx]; + } + m_ppCRingBuffer[0]->PutPostInc (m_pfProcessBuffer, iNumFramesLeft); + } + else + { + for (iCh = 0; iCh < m_iNumberOfChannels; iCh++) + m_ppCRingBuffer[iCh]->PutPostInc (&ppfInputBuffer[iCh][iNumberOfFrames - iNumFramesLeft], iHopSize); + } + } + + return FEAPI_kNoError; +} + +int _THE_PLUGIN_CLASS::GetPluginSizeOfResult (int iResultIndex) +{ + if ((iResultIndex >= m_iNumberOfResults) || (iResultIndex < 0)) + return -1; + + if (m_ppResults[iResultIndex][0].bHoldsResult == true) + return 1; + else + return 0; +} + + +FEAPI_Error_t _THE_PLUGIN_CLASS::GetPluginResult (int iResultIndex, float *pfResult, FEAPI_TimeStamp_t *ptTimeStamp) +{ + if ((iResultIndex >= m_iNumberOfResults) || (iResultIndex < 0)) + return FEAPI_kUnspecifiedError; + + if (m_ppResults[iResultIndex][0].bHoldsResult == false) + return FEAPI_kUnspecifiedError; + + pfResult[0] = m_ppResults[iResultIndex][0].fResult; + ptTimeStamp[0] = m_ppResults[iResultIndex][0].tTimeStamp; + + memmove (&m_ppResults[iResultIndex][0], &m_ppResults[iResultIndex][1], (m_iSizeOfResultBuffer - 1)*sizeof(InternalResults_t)); + m_ppResults[iResultIndex][m_iSizeOfResultBuffer-1].bHoldsResult = false; + + return FEAPI_kNoError; +} + + +FEAPI_Error_t _THE_PLUGIN_CLASS::ResetPlugin () +{ + for (int iCh = 0; iCh < m_iNumberOfChannels; iCh++) + { + m_ppCRingBuffer[iCh]->Reset (); + m_ptLocalTimeStamp[iCh] = 0; + } + return FEAPI_kNoError; +} + + +float _THE_PLUGIN_CLASS::GetPluginProperty ( FEAPI_PluginProperty_t ePluginProperty) +{ + switch (ePluginProperty) + { + case FEAPI_kMinSampleRate: + { + return 1; + } + case FEAPI_kMaxSampleRate: + { + return 1e38F; + } + case FEAPI_kMinChannels: + { + return 1; + } + case FEAPI_kMaxChannels: + { + return (float)((1<<30)-1); + } + case FEAPI_kMinFrameSize: + { + return 1; + } + case FEAPI_kMaxFrameSize: + { + return (float)((1<<30)-1); + } + case FEAPI_kOptFrameSize: + { + return (int)(m_afParameters[kHopSize] * 0.001F * m_fSampleRate + .5F); + } + default: + { + // this shall never happen ... + return -1; + } + } + return -1; +} + +void CZeroCrossings::WriteResult (int iResultIdx, float fValue, FEAPI_TimeStamp_t tTimeStamp) +{ + int iCurrentIdx = 0; + + for (iCurrentIdx = 0; iCurrentIdx < m_iSizeOfResultBuffer; iCurrentIdx++) + { + ZASSERT (!m_ppResults[iCurrentIdx]); + if (m_ppResults[iResultIdx][iCurrentIdx].bHoldsResult == false) + break; + } + if (iCurrentIdx == m_iSizeOfResultBuffer) + { + // alloc new memory + m_iSizeOfResultBuffer <<= 1; + for (int i = 0; i < m_iNumberOfResults; i++) + { + InternalResults_t *pTmp = new InternalResults_t[m_iSizeOfResultBuffer]; + memcpy (pTmp, m_ppResults[i], (m_iSizeOfResultBuffer>>1) * sizeof(InternalResults_t)); + memset (&pTmp[(m_iSizeOfResultBuffer>>1)], 0, (m_iSizeOfResultBuffer>>1) * sizeof(InternalResults_t)); + delete [] m_ppResults[i]; + m_ppResults[i] = 0; + m_ppResults[i] = pTmp; + } + } + + m_ppResults[iResultIdx][iCurrentIdx].bHoldsResult = true; + m_ppResults[iResultIdx][iCurrentIdx].fResult = fValue; + m_ppResults[iResultIdx][iCurrentIdx].tTimeStamp = tTimeStamp; + + return; +} + +/////////////////////////////////////// +// entry points +#include "FEAPIEntryPoints.h" + +#ifdef __cplusplus +extern "C" { +#endif + +FEAPI_ENTRY_POINTS(CZeroCrossings) + +#ifdef __cplusplus +} +#endif +/////////////////////////////////////// Added: trunk/FEAPI/examples/plugin/FEAPIExamplePluginZeroCrossings/FEAPIExamplePluginZeroCrossings.h =================================================================== --- trunk/FEAPI/examples/plugin/FEAPIExamplePluginZeroCrossings/FEAPIExamplePluginZeroCrossings.h (rev 0) +++ trunk/FEAPI/examples/plugin/FEAPIExamplePluginZeroCrossings/FEAPIExamplePluginZeroCrossings.h 2006-03-09 18:17:39 UTC (rev 61) @@ -0,0 +1,141 @@ +//////////////////////////////////////////////////////////////////////////////////// +// /*! \file FEAPIZeroCrossings.h: \brief interface of the CZeroCrossings class. */ +// +// Copyright (c) 2005, Alexander Lerch, zplane.development GbR +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must link to the feapi website +// http://www.sf.net/projects/feapi, +// reproduce this list of conditions and the following +// disclaimer in the documentation and/or other materials +// provided with the distribution. +// * The name of the contributors to this software must not be used +// to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +// +//////////////////////////////////////////////////////////////////////////////////// +// CVS INFORMATION +// +// $RCSfile$ +// $Author$ +// $Date$ +// +// $Log$ +// +//////////////////////////////////////////////////////////////////////////////////// + +#if !defined(ZERO_CROSSINGS_HEADER_INCLUDED__) +#define ZERO_CROSSINGS_HEADER_INCLUDED__ + + +#include "FEAPIPluginBase.h" + +#define _THE_PLUGIN_CLASS CZeroCrossings // change this class name to your class + +template <class T> class CRingBuffer; + +/*! +*/ +class _THE_PLUGIN_CLASS : public CFeatureExtractBase +{ +public: + + _THE_PLUGIN_CLASS (); + + virtual ~_THE_PLUGIN_CLASS (); + + + //////////////////////////////////////////////////////////////////////////////////////// + // method declaration + // if you do not intend to use some of these functions, just delete them and the default + // values will be returned + + FEAPI_Error_t GetPluginResultDescription ( int iResultIndex, + FEAPI_SignalDescription_t *pstResultDescription); + + FEAPI_Error_t GetPluginInputDescription ( int iInputIndex, + FEAPI_SignalDescription_t *pstInputDescription); + + FEAPI_Error_t GetPluginParameterDescription ( int iParameterIndex, + FEAPI_ParameterDescription_t *pstParameterDescription); + + FEAPI_Error_t SetPluginParameter ( int iParameterIndex, + float fValue); + + float GetPluginParameter ( int iParameterIndex); + + + int GetPluginResultLatency (int iResultIndex); + + float GetPluginProperty ( FEAPI_PluginProperty_t ePluginProperty); + + FEAPI_Error_t InitializePlugin ( float fInputSampleRate, + int iNumberOfAudioChannels, + int iHostApiMajorVersion, + FEAPI_UserData_t *pstUserData); + + FEAPI_Error_t ProcessPlugin ( const float **ppfInputBuffer, + const FEAPI_TimeStamp_t *ptFEAPI_TimeStamp, + int iNumberOfFrames); + + FEAPI_Error_t ProcessPluginDone (); + + + int GetPluginSizeOfResult (int iResultIndex); + + FEAPI_Error_t GetPluginResult ( int iResultIndex, + float *pfResult, + FEAPI_TimeStamp_t *ptFEAPI_TimeStamp); + + + FEAPI_Error_t ResetPlugin (); + +private: + + struct InternalResults_t + { + bool bHoldsResult; + float fResult; + FEAPI_TimeStamp_t tTimeStamp; + }; + + void WriteResult (int iResultIdx, float fValue, FEAPI_TimeStamp_t tTimStamp); + + // remove and add variables acc. your needs + FEAPI_SignalDescription_t m_stResultDescription; + FEAPI_TimeStamp_t *m_ptLocalTimeStamp; + + + float m_afParameters[3], + *m_pfProcessBuffer; + + CRingBuffer<float> **m_ppCRingBuffer; + + InternalResults_t **m_ppResults; + + int m_iSizeOfResultBuffer; +}; + +#endif // #if !defined(ZERO_CROSSINGS_HEADER_INCLUDED__) + + + Added: trunk/FEAPI/examples/plugin/FEAPIExamplePluginZeroCrossings/RingBuffer.h =================================================================== --- trunk/FEAPI/examples/plugin/FEAPIExamplePluginZeroCrossings/RingBuffer.h (rev 0) +++ trunk/FEAPI/examples/plugin/FEAPIExamplePluginZeroCrossings/RingBuffer.h 2006-03-09 18:17:39 UTC (rev 61) @@ -0,0 +1,615 @@ +//////////////////////////////////////////////////////////////////////////////////// +// /*! \file RingBuffer.h: \brief interface of the CRingBuffer class. */ +// +// Copyright (c) 2003-2005 +// zplane.development +// Flohrer Lerch Schwerdtfeger GbR +// +// CONFIDENTIALITY: +// +// This file is the property of zplane.development. +// It contains information that is regarded as privilege +// and confidential by zplane.development. +// It may not be publicly disclosed or communicated in any way without +// prior written authorization by zplane.development. +// It cannot be copied, used, or modified without obtaining +// an authorization from zplane.development. +// If such an authorization is provided, any modified version or +// copy of the software has to contain this header. +// +// WARRANTIES: +// This software is provided as << is >>, zplane.development +// makes no warranty express or implied with respect to this software, +// its fitness for a particular purpose or its merchantability. +// In no case, shall zplane.development be liable for any +// incidental or consequential damages, including but not limited +// to lost profits. +// +// zplane.development shall be under no obligation or liability in respect of +// any infringement of statutory monopoly or intellectual property +// rights of third parties by the use of elements of such software +// and User shall in any case be entirely responsible for the use +// to which he puts such elements. +// +//////////////////////////////////////////////////////////////////////////////////// +// CVS INFORMATION +// +// $RCSfile: RingBuffer.h,v $ +// $Author: lerch $ +// $Date: 2005/07/01 13:00:19 $ +// +// $Log: RingBuffer.h,v $ +// Revision 1.4 2005/07/01 13:00:19 lerch +// - replaced inline by INLINE +// +// Revision 1.3 2005/03/02 17:02:42 lerch +// - added dispatcher as well as SSE2 functions for FFT and other functions +// !!! STILL UNTESTED !!! +// +// Revision 1.2 2005/02/11 18:43:18 lerch +// - replace INLINE with INLINE +// +// Revision 1.1 2005/02/10 20:13:44 lerch +// - !UNTESTED! +// - first generic implementation of zplane vector lib and fft class +// - some complex operations are missing yet +// - should the FFT Windows be symmetric or periodic? +// +// +// +//////////////////////////////////////////////////////////////////////////////////// + +// RingBuffer.h: interface for the CRingBuffer class. +// +////////////////////////////////////////////////////////////////////// + +#if !defined(__RINGBUFFER_HEADER_INCLUDED__) +#define __RINGBUFFER_HEADER_INCLUDED__ + +#ifdef WIN32 +#define INLINE __forceinline +#else +#define INLINE +#endif + +//!< \todo update documentation +INLINE unsigned int Int2PowTwo (int iValue) +{ + unsigned int iOrder = 0; + + while (iValue>>iOrder) + iOrder++; + + if (!(iValue%(1<<(iOrder-1)))) + iOrder--; + + return (1<<(iOrder)); +} + +//******************************************************************** +// @class: CRingBuffer <template> +// @author: Tim Flohrer +// @notes: implements a Ringbuffer +// @creation date: 18.7.2001 +// @last modified: +//******************************************************************** + +template <class T> class CRingBuffer +{ + +private: + + unsigned int m_uiReadIndex, + m_uiWriteIndex, + m_uiTmpIndex; + + unsigned int m_uiSize, + m_uiMask; + + T *m_ptBuffer; + + +public: + static int CreateInstance (CRingBuffer*& pCRingBuffer, unsigned int uiLength) + { + int rErr = _NO_ERROR; + pCRingBuffer = 0; + + // create instance + pCRingBuffer = new CRingBuffer (uiLength); + + if (pCRingBuffer == NULL) + rErr = _MEM_ALLOC_FAILED; + else if (!pCRingBuffer->m_ptBuffer) + { + rErr = _MEM_ALLOC_FAILED; + delete pCRingBuffer; + pCRingBuffer= 0; + } + + return rErr; + }; + + static int DestroyInstance (CRingBuffer*& pCRingBuffer) + { + if (!pCRingBuffer) + return _INVALID_FUNCTION_ARGS; + + delete pCRingBuffer; + pCRingBuffer = 0; + + return _NO_ERROR; + }; + +//******************************************************************** +// @method: CRingBuffer +// @parameter: unsigned int uiNewSize desired size of the ring buffer +// @result: +// @author: Tim Flohrer +// @notes: constructor of the CRingbuffer class +// @creation date: 18.7.2001 +// @last modified: +//******************************************************************** + CRingBuffer(unsigned int uiNewSize) + { +// m_uiSize = (unsigned int)pow(2,1+(int)(log(uiNewSize)/log(2))); + m_uiSize = Int2PowTwo(uiNewSize); + m_uiMask = m_uiSize-1; + m_uiReadIndex = 0; + m_uiWriteIndex = 0; + m_uiTmpIndex = 0; + m_ptBuffer = 0; + m_ptBuffer = new T[m_uiSize]; + for( int i=0; i<m_uiSize; m_ptBuffer[i++] = 0); + } + + +//******************************************************************** +// @method: ~CRingBuffer +// @parameter: +// @result: +// @author: Tim Flohrer +// @notes: destructor +// @creation date: 18.7.2001 +// @last modified: +//******************************************************************** + ~CRingBuffer() + { + if (m_ptBuffer) + delete [] m_ptBuffer; + } + + +//******************************************************************** +// @method: GetOff +// @parameter: int iIndex +// @result: T +// @author: Tim Flohrer +// @notes: gets an item at offset iIndex from the +// current read pointer, without modifying +// @creation date: 18.7.2001 +// @last modified: +//******************************************************************** +INLINE T GetOff(int iIndex) + { + return m_ptBuffer[(m_uiReadIndex + iIndex + m_uiSize) & m_uiMask]; + } + +INLINE T GetOffW(int iIndex) + { + return m_ptBuffer[(m_uiWriteIndex + iIndex + m_uiSize) & m_uiMask]; + } + + +//******************************************************************** +// @method: PutOff +// @parameter: T tItem +// int iIndex +// @result: +// @author: Tim Flohrer +// @notes: puts an item at offset iIndex from the +// current write pointer, without modifying +// @creation date: 18.7.2001 +// @last modified: +//******************************************************************** +INLINE void PutOff(T tItem,int iIndex) + { + m_ptBuffer[(m_uiWriteIndex + iIndex + m_uiSize) & m_uiMask] = tItem; + } + +//******************************************************************** +// @method: GetOffMod +// @parameter: int iIndex +// @result: T +// @author: Tim Flohrer +// @notes: gets an item at offset iIndex from the +// current read pointer, with modifying +// @creation date: 18.7.2001 +// @last modified: +//******************************************************************** +INLINE T GetOffMod(int iIndex) + { + m_uiReadIndex = ((m_uiReadIndex + iIndex + m_uiSize) & m_uiMask); + return m_ptBuffer[ m_uiReadIndex ]; + } + + +//******************************************************************** +// @method: PutOffMod +// @parameter: T tItem +// int iIndex +// @result: +// @author: Tim Flohrer +// @notes: puts an item at offset iIndex from the +// current write pointer, with modifying +// @creation date: 18.7.2001 +// @last modified: +//******************************************************************** +INLINE void PutOffMod(T tItem,int iIndex) + { + m_uiWriteIndex = (m_uiWriteIndex + iIndex + m_uiSize) & m_uiMask; + m_ptBuffer[m_uiWriteIndex] = tItem; + } + + +//******************************************************************** +// @method: Get +// @parameter: +// @result: T +// @author: Tim Flohrer +// @notes: gets an item at current read pointer +// @creation date: 18.7.2001 +// @last modified: +//******************************************************************** +INLINE T Get() + { + return m_ptBuffer[ m_uiReadIndex ]; + } + + +//******************************************************************** +// @method: Put +// @parameter: T tItem +// @result: +// @author: Tim Flohrer +// @notes: puts an item at current read pointer +// @creation date: 18.7.2001 +// @last modified: +//******************************************************************** +INLINE void Put(T tItem) + { + m_ptBuffer[ m_uiWriteIndex ] = tItem; + } + + +//******************************************************************** +// @method: GetPostInc +// @parameter: +// @result: T +// @author: Tim Flohrer +// @notes: gets an item at the current read pointer +// and increments the read pointer afterwards +// @creation date: 18.7.2001 +// @last modified: +//******************************************************************** +INLINE T GetPostInc() + { + m_uiTmpIndex = m_uiReadIndex; + m_uiReadIndex = (m_uiReadIndex + 1) & m_uiMask; + return m_ptBuffer[ m_uiTmpIndex ]; + } + +INLINE void GetPostInc (T* ptBuffer, int iNumOfItems) + { + if (iNumOfItems <= 0) + return; + m_uiTmpIndex = m_uiReadIndex; + m_uiReadIndex = (m_uiReadIndex + iNumOfItems) & m_uiMask; + if (m_uiTmpIndex + iNumOfItems <= m_uiSize) + { + memcpy (ptBuffer, &m_ptBuffer[ m_uiTmpIndex ], sizeof(T) * iNumOfItems); + return; + } + else + { + ZASSERT (m_uiSize - m_uiTmpIndex <= 0); + ZASSERT (iNumOfItems - m_uiSize + m_uiTmpIndex <= 0); + memcpy (ptBuffer, &m_ptBuffer[ m_uiTmpIndex ], sizeof(T) * (m_uiSize - m_uiTmpIndex)); + memcpy (&ptBuffer[m_uiSize - m_uiTmpIndex], m_ptBuffer, sizeof(T) * (iNumOfItems - m_uiSize + m_uiTmpIndex)); + return; + } + } +INLINE void GetOffPostInc(T* ptBuffer, int iNumOfItems, int iIndex) + { + if (iNumOfItems <= 0) + return; + m_uiTmpIndex = ((m_uiReadIndex + iIndex + m_uiSize) & m_uiMask); + m_uiReadIndex = (m_uiReadIndex + iNumOfItems) & m_uiMask; + if (m_uiTmpIndex + iNumOfItems <= m_uiSize) + { + memcpy (ptBuffer, &m_ptBuffer[ m_uiTmpIndex ], sizeof(T) * iNumOfItems); + return; + } + else + { + ZASSERT (m_uiSize - m_uiTmpIndex <= 0); + ZASSERT (iNumOfItems - m_uiSize + m_uiTmpIndex <= 0); + memcpy (ptBuffer, &m_ptBuffer[ m_uiTmpIndex ], sizeof(T) * (m_uiSize - m_uiTmpIndex)); + memcpy (&ptBuffer[m_uiSize - m_uiTmpIndex], m_ptBuffer, sizeof(T) * (iNumOfItems - m_uiSize + m_uiTmpIndex)); + return; + } + } +INLINE void GetOff(T* ptBuffer, int iNumOfItems, int iIndex) + { + if (iNumOfItems <= 0) + return; + m_uiTmpIndex = ((m_uiReadIndex + iIndex + m_uiSize) & m_uiMask); + if (m_uiTmpIndex + iNumOfItems <= m_uiSize) + { + memcpy (ptBuffer, &m_ptBuffer[ m_uiTmpIndex ], sizeof(T) * iNumOfItems); + return; + } + else + { + ZASSERT (m_uiSize - m_uiTmpIndex <= 0); + ZASSERT (iNumOfItems - m_uiSize + m_uiTmpIndex <= 0); + memcpy (ptBuffer, &m_ptBuffer[ m_uiTmpIndex ], sizeof(T) * (m_uiSize - m_uiTmpIndex)); + memcpy (&ptBuffer[m_uiSize - m_uiTmpIndex], m_ptBuffer, sizeof(T) * (iNumOfItems - m_uiSize + m_uiTmpIndex)); + return; + } + } +INLINE void GetOffW(T* ptBuffer, int iNumOfItems, int iIndex) + { + if (iNumOfItems <= 0) + return; + m_uiTmpIndex = ((m_uiWriteIndex + iIndex + m_uiSize) & m_uiMask); + if (m_uiTmpIndex + iNumOfItems <= m_uiSize) + { + memcpy (ptBuffer, &m_ptBuffer[ m_uiTmpIndex ], sizeof(T) * iNumOfItems); + return; + } + else + { + ZASSERT (m_uiSize - m_uiTmpIndex <= 0); + ZASSERT (iNumOfItems - m_uiSize + m_uiTmpIndex <= 0); + memcpy (ptBuffer, &m_ptBuffer[ m_uiTmpIndex ], sizeof(T) * (m_uiSize - m_uiTmpIndex)); + memcpy (&ptBuffer[m_uiSize - m_uiTmpIndex], m_ptBuffer, sizeof(T) * (iNumOfItems - m_uiSize + m_uiTmpIndex)); + return; + } + } + +//******************************************************************** +// @method: PutPostInc +// @parameter: T tItem +// @result: +// @author: Tim Flohrer +// @notes: puts an item at the current read pointer +// and increments the write pointer afterwards +// @creation date: 18.7.2001 +// @last modified: +//******************************************************************** +INLINE void PutPostInc(T tItem) + { + m_uiTmpIndex = m_uiWriteIndex; + m_uiWriteIndex = (m_uiWriteIndex + 1) & m_uiMask; + m_ptBuffer[ m_uiTmpIndex ] = tItem; + } + + +INLINE void PutPostInc(const T *ptItem, int iNumOfItems) + { + if (iNumOfItems <= 0) + return; + m_uiTmpIndex = m_uiWriteIndex; + m_uiWriteIndex = (m_uiWriteIndex + iNumOfItems) & m_uiMask; + if (m_uiTmpIndex + iNumOfItems <= m_uiSize) + { + memcpy (&m_ptBuffer[ m_uiTmpIndex ], ptItem, sizeof(T) * iNumOfItems); + return; + } + else + { + ZASSERT (m_uiSize - m_uiTmpIndex <= 0); + ZASSERT (iNumOfItems - m_uiSize + m_uiTmpIndex <= 0); + memcpy (&m_ptBuffer[ m_uiTmpIndex ], ptItem, sizeof(T) * (m_uiSize - m_uiTmpIndex)); + memcpy (m_ptBuffer, &ptItem[m_uiSize - m_uiTmpIndex], sizeof(T) * (iNumOfItems - m_uiSize + m_uiTmpIndex)); + return; + } +} + + +//******************************************************************** +// @method: GetPreInc +// @parameter: +// @result: T +// @author: Tim Flohrer +// @notes: increments the read pointer and +// gets an item at the current read pointer +// @creation date: 18.7.2001 +// @last modified: +//******************************************************************** +INLINE T GetPreInc() + { + m_uiReadIndex = (m_uiReadIndex + 1) & m_uiMask; + return m_ptBuffer[ m_uiReadIndex ]; + } + + +//******************************************************************** +// @method: PutPreInc +// @parameter: T tItem +// @result: +// @author: Tim Flohrer +// @notes: increments the write pointer and +// puts an item at the current write pointer +// @creation date: 18.7.2001 +// @last modified: +//******************************************************************** +INLINE void PutPreInc(T tItem) + { + m_uiWriteIndex = (m_uiWriteIndex + 1) & m_uiMask; + m_ptBuffer[ m_uiWriteIndex ] = tItem; + } + + +//******************************************************************** +// @method: GetPostDec +// @parameter: +// @result: T +// @author: Tim Flohrer +// @notes: gets an item at the current read pointer +// and Decrements the read pointer afterwards +// @creation date: 18.7.2001 +// @last modified: +//******************************************************************** +INLINE T GetPostDec() + { + m_uiTmpIndex = m_uiReadIndex; + m_uiReadIndex = (m_uiReadIndex - 1 + m_uiSize) & m_uiMask; + return m_ptBuffer[ m_uiTmpIndex ]; + } + +//******************************************************************** +// @method: PutPostDec +// @parameter: T tItem +// @result: +// @author: Tim Flohrer +// @notes: puts an item at the current read pointer +// and Decrements the write pointer afterwards +// @creation date: 18.7.2001 +// @last modified: +//******************************************************************** +INLINE void PutPostDec(T tItem) + { + m_uiTmpIndex = m_uiWriteIndex; + m_uiWriteIndex = (m_uiWriteIndex - 1 + m_uiSize) & m_uiMask; + m_ptBuffer[ m_uiTmpIndex ] = tItem; + } + + +//******************************************************************** +// @method: ... [truncated message content] |
From: <fea...@li...> - 2006-03-09 18:16:10
|
Revision: 60 Author: alex_lerch Date: 2006-03-09 10:15:49 -0800 (Thu, 09 Mar 2006) ViewCVS: http://svn.sourceforge.net/feapi/?rev=60&view=rev Log Message: ----------- rename HostUtils to HostUtilities Modified Paths: -------------- trunk/FEAPI/sdk/host/include/FEAPIHostDeclarations.h trunk/FEAPI/sdk/host/include/FEAPIPluginProxy.h trunk/FEAPI/sdk/host/src/FEAPIPluginProxy.cpp Added Paths: ----------- trunk/FEAPI/sdk/host/include/FEAPIHostUtilities.h trunk/FEAPI/sdk/host/src/FEAPIHostUtilities.cpp Removed Paths: ------------- trunk/FEAPI/sdk/host/include/FEAPIHostUtils.h trunk/FEAPI/sdk/host/src/FEAPIHostUtils.cpp Modified: trunk/FEAPI/sdk/host/include/FEAPIHostDeclarations.h =================================================================== --- trunk/FEAPI/sdk/host/include/FEAPIHostDeclarations.h 2006-03-09 15:49:54 UTC (rev 59) +++ trunk/FEAPI/sdk/host/include/FEAPIHostDeclarations.h 2006-03-09 18:15:49 UTC (rev 60) @@ -1,5 +1,5 @@ //////////////////////////////////////////////////////////////////////////////////// -// /*! \file FEAPIHost.h +// /*! \file FEAPIHostDeclarations.h // \brief host interface for Feature Extraction // Plug-In API (FEAPI). */ // Copied: trunk/FEAPI/sdk/host/include/FEAPIHostUtilities.h (from rev 58, trunk/FEAPI/sdk/host/include/FEAPIHostUtils.h) =================================================================== --- trunk/FEAPI/sdk/host/include/FEAPIHostUtilities.h (rev 0) +++ trunk/FEAPI/sdk/host/include/FEAPIHostUtilities.h 2006-03-09 18:15:49 UTC (rev 60) @@ -0,0 +1,85 @@ +//////////////////////////////////////////////////////////////////////////////////// +// /*! \file FEAPIHostUtilities.h +// \brief host utilities interface for Feature Extraction +// Plug-In API (FEAPI). */ +// +// Copyright (c) 2006, Ircam-Centre Pomidou +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must link to the FEAPI website +// http://www.sf.net/projects/feapi, +// reproduce this list of conditions and the following +// disclaimer in the documentation and/or other materials +// provided with the distribution. +// * The name of the contributors to this software must not be used +// to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +// +////////////////////////////////////////////////////////////////////////////////// + +/*! \brief avoid multiple header includes */ +#ifndef FEAPI_HOST_UTILS_HEADER_H +#define FEAPI_HOST_UTILS_HEADER_H + + +#include "FEAPI.h" // Feature Extraction API +#include "FEAPIHostDeclarations.h" // Feature Extraction API + +/*! + * get FEAPI function pointer from module + * + * @param *hModule : FEAPI Plugin Module (HMODULE on windows or CBundleRef on mac) + * @param *pstPluginFunctions : list of FEAPI function pointer to be filled + * + * @return static bool : return true on success false otherwise + */ +FEAPI_Error_t GetFunctionPointers (FEAPI_ModuleHandle_t hModule, FEAPI_PluginFunctions_t *pstPluginFunctions); + +/*! + * parse the current working directory for plug-ins + * + * @param *pstFileNames : list of detected plug-ins, to be written + * + * @return static int : number of detected plug-ins + */ +int FindPlugins(FEAPI_PluginFileNames_t *pstFileNames); + +/*! + * load a plugin specified by its filename + * + * @param *pcFilename : full path to plugin + * @param *hModule : pointer to a FEAPI_PluginModule_t + * + * @return static int : number of detected plug-ins + */ +FEAPI_Error_t LoadPluginModule(const char *pcFilename,FEAPI_ModuleHandle_t *phModule); + +/*! + * parse the current working directory for plug-ins + * + * @param *pstFileNames : list of detected plug-ins, to be written + * + * @return static int : number of detected plug-ins + */ +FEAPI_Error_t UnloadPluginModule(FEAPI_ModuleHandle_t hModule); + +#endif //FEAPI_HOST_UTILS_HEADER_H \ No newline at end of file Deleted: trunk/FEAPI/sdk/host/include/FEAPIHostUtils.h =================================================================== --- trunk/FEAPI/sdk/host/include/FEAPIHostUtils.h 2006-03-09 15:49:54 UTC (rev 59) +++ trunk/FEAPI/sdk/host/include/FEAPIHostUtils.h 2006-03-09 18:15:49 UTC (rev 60) @@ -1,85 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////////// -// /*! \file FEAPIHostUtils.h -// \brief host utilities interface for Feature Extraction -// Plug-In API (FEAPI). */ -// -// Copyright (c) 2006, Ircam-Centre Pomidou -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must link to the FEAPI website -// http://www.sf.net/projects/feapi, -// reproduce this list of conditions and the following -// disclaimer in the documentation and/or other materials -// provided with the distribution. -// * The name of the contributors to this software must not be used -// to endorse or promote products derived from this software -// without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -// COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. -// -////////////////////////////////////////////////////////////////////////////////// - -/*! \brief avoid multiple header includes */ -#ifndef FEAPI_HOST_UTILS_HEADER_H -#define FEAPI_HOST_UTILS_HEADER_H - - -#include "FEAPI.h" // Feature Extraction API -#include "FEAPIHostDeclarations.h" // Feature Extraction API - -/*! - * get FEAPI function pointer from module - * - * @param *hModule : FEAPI Plugin Module (HMODULE on windows or CBundleRef on mac) - * @param *pstPluginFunctions : list of FEAPI function pointer to be filled - * - * @return static bool : return true on success false otherwise - */ -FEAPI_Error_t GetFunctionPointers (FEAPI_ModuleHandle_t hModule, FEAPI_PluginFunctions_t *pstPluginFunctions); - -/*! - * parse the current working directory for plug-ins - * - * @param *pstFileNames : list of detected plug-ins, to be written - * - * @return static int : number of detected plug-ins - */ -int FindPlugins(FEAPI_PluginFileNames_t *pstFileNames); - -/*! - * load a plugin specified by its filename - * - * @param *pcFilename : full path to plugin - * @param *hModule : pointer to a FEAPI_PluginModule_t - * - * @return static int : number of detected plug-ins - */ -FEAPI_Error_t LoadPluginModule(const char *pcFilename,FEAPI_ModuleHandle_t *phModule); - -/*! - * parse the current working directory for plug-ins - * - * @param *pstFileNames : list of detected plug-ins, to be written - * - * @return static int : number of detected plug-ins - */ -FEAPI_Error_t UnloadPluginModule(FEAPI_ModuleHandle_t hModule); - -#endif //FEAPI_HOST_UTILS_HEADER_H \ No newline at end of file Modified: trunk/FEAPI/sdk/host/include/FEAPIPluginProxy.h =================================================================== --- trunk/FEAPI/sdk/host/include/FEAPIPluginProxy.h 2006-03-09 15:49:54 UTC (rev 59) +++ trunk/FEAPI/sdk/host/include/FEAPIPluginProxy.h 2006-03-09 18:15:49 UTC (rev 60) @@ -1,5 +1,5 @@ //////////////////////////////////////////////////////////////////////////////////// -// /*! \file FEAPICPlugin.h +// /*! \file FEAPIPluginProxy.h // \brief proxy interface for a FEAPI Plugin. */ // // Copyright (c) 2006, Ircam-Centre Pomidou Copied: trunk/FEAPI/sdk/host/src/FEAPIHostUtilities.cpp (from rev 58, trunk/FEAPI/sdk/host/src/FEAPIHostUtils.cpp) =================================================================== --- trunk/FEAPI/sdk/host/src/FEAPIHostUtilities.cpp (rev 0) +++ trunk/FEAPI/sdk/host/src/FEAPIHostUtilities.cpp 2006-03-09 18:15:49 UTC (rev 60) @@ -0,0 +1,400 @@ +//////////////////////////////////////////////////////////////////////////////////// +// /*! \file FEAPIHostUtilities.cpp +// \brief host utilities for Feature Extraction +// Plug-In API (FEAPI). */ +// +// Copyright (c) 2006, Ircam-Centre Pomidou +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must link to the FEAPI website +// http://www.sf.net/projects/feapi, +// reproduce this list of conditions and the following +// disclaimer in the documentation and/or other materials +// provided with the distribution. +// * The name of the contributors to this software must not be used +// to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +// +//////////////////////////////////////////////////////////////////////////////// +// includes + +#include "FEAPIHostUtilities.h" +#include <iostream> + +#ifdef WIN32 + +FEAPI_Error_t GetFunctionPointers(FEAPI_ModuleHandle_t hModule, FEAPI_PluginFunctions_t *pstPluginFunctions) +{ + HMODULE hDllHandle = hModule; + + // get exports from dll + pstPluginFunctions->pFunCreateInstance = (FEAPI_CreatePluginInstance_t) GetProcAddress (hDllHandle, "FEAPI_CreatePluginInstance"); + if (!pstPluginFunctions->pFunCreateInstance) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunDestroyInstance = (FEAPI_DestroyPluginInstance_t) GetProcAddress (hDllHandle, "FEAPI_DestroyPluginInstance"); + if (!pstPluginFunctions->pFunDestroyInstance) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunGetApiVersion = (FEAPI_GetPluginAPIVersion_t) GetProcAddress (hDllHandle, "FEAPI_GetPluginAPIVersion"); + if (!pstPluginFunctions->pFunGetApiVersion) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunInitializePlugin = (FEAPI_InitializePlugin_t) GetProcAddress (hDllHandle, "FEAPI_InitializePlugin"); + if (!pstPluginFunctions->pFunInitializePlugin) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunGetPluginName = (FEAPI_GetPluginName_t) GetProcAddress (hDllHandle, "FEAPI_GetPluginName"); ; + if (!pstPluginFunctions->pFunGetPluginName) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunGetPluginVendor = (FEAPI_GetPluginVendor_t) GetProcAddress (hDllHandle, "FEAPI_GetPluginVendor"); ; + if (!pstPluginFunctions->pFunGetPluginVendor) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunGetPluginProperty = (FEAPI_GetPluginProperty_t) GetProcAddress (hDllHandle, "FEAPI_GetPluginProperty"); ; + if (!pstPluginFunctions->pFunGetPluginVendor) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunGetPluginId = (FEAPI_GetPluginId_t) GetProcAddress (hDllHandle, "FEAPI_GetPluginId"); ; + if (!pstPluginFunctions->pFunGetPluginId) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunGetPluginVendorVersion = (FEAPI_GetPluginVendorVersion_t) GetProcAddress (hDllHandle, "FEAPI_GetPluginVendorVersion"); ; + if (!pstPluginFunctions->pFunGetPluginVendorVersion) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunGetPluginDescription = (FEAPI_GetPluginDescription_t) GetProcAddress (hDllHandle, "FEAPI_GetPluginDescription"); ; + if (!pstPluginFunctions->pFunGetPluginDescription) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunGetPluginCopyright = (FEAPI_GetPluginCopyright_t) GetProcAddress (hDllHandle, "FEAPI_GetPluginCopyright"); ; + if (!pstPluginFunctions->pFunGetPluginCopyright) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunGetNumberOfInputs = (FEAPI_GetPluginNumOfInputs_t) GetProcAddress (hDllHandle, "FEAPI_GetPluginNumOfInputs"); ; + if (!pstPluginFunctions->pFunGetNumberOfInputs) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunGetInputDescription = (FEAPI_GetPluginInputDescription_t) GetProcAddress (hDllHandle, "FEAPI_GetPluginInputDescription"); ; + if (!pstPluginFunctions->pFunGetInputDescription) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunGetNumberOfResults = (FEAPI_GetPluginNumOfResults_t) GetProcAddress (hDllHandle, "FEAPI_GetPluginNumOfResults"); ; + if (!pstPluginFunctions->pFunGetNumberOfResults) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunGetResultDescription = (FEAPI_GetPluginResultDescription_t) GetProcAddress (hDllHandle, "FEAPI_GetPluginResultDescription"); ; + if (!pstPluginFunctions->pFunGetResultDescription) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunGetNumberOfParameters = (FEAPI_GetPluginNumOfParameters_t) GetProcAddress (hDllHandle, "FEAPI_GetPluginNumOfParameters"); ; + if (!pstPluginFunctions->pFunGetNumberOfParameters) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunGetParameterDescription = (FEAPI_GetPluginParameterDescription_t) GetProcAddress (hDllHandle, "FEAPI_GetPluginParameterDescription"); ; + if (!pstPluginFunctions->pFunGetParameterDescription) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunSetParameter = (FEAPI_SetPluginParameter_t) GetProcAddress (hDllHandle, "FEAPI_SetPluginParameter"); ; + if (!pstPluginFunctions->pFunSetParameter) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunGetParameter = (FEAPI_GetPluginParameter_t) GetProcAddress (hDllHandle, "FEAPI_GetPluginParameter"); ; + if (!pstPluginFunctions->pFunGetParameter) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunProcess = (FEAPI_ProcessPlugin_t) GetProcAddress (hDllHandle, "FEAPI_ProcessPlugin"); ; + if (!pstPluginFunctions->pFunProcess) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunProcessDone = (FEAPI_ProcessPluginDone_t) GetProcAddress (hDllHandle, "FEAPI_ProcessPluginDone"); ; + if (!pstPluginFunctions->pFunProcessDone) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunGetSizeOfResult = (FEAPI_GetPluginSizeOfResult_t) GetProcAddress (hDllHandle, "FEAPI_GetPluginSizeOfResult"); ; + if (!pstPluginFunctions->pFunGetSizeOfResult) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunGetResult = (FEAPI_GetPluginResult_t) GetProcAddress (hDllHandle, "FEAPI_GetPluginResult"); ; + if (!pstPluginFunctions->pFunGetResult) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunGetResultLatency = (FEAPI_GetPluginResultLatency_t) GetProcAddress (hDllHandle, "FEAPI_GetPluginResultLatency"); ; + if (!pstPluginFunctions->pFunGetResultLatency) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunReset = (FEAPI_ResetPlugin_t) GetProcAddress (hDllHandle, "FEAPI_ResetPlugin"); ; + if (!pstPluginFunctions->pFunReset) + return FEAPI_kUnspecifiedError; + + return FEAPI_kNoError; +} + +#elif MAC + +FEAPI_Error_t GetFunctionPointers(FEAPI_ModuleHandle_t hModule, FEAPI_PluginFunctions_t *pstPluginFunctions) +{ + CFBundleRef cfBundle = hModule; + + // get exports from dll + pstPluginFunctions->pFunCreateInstance = (FEAPI_CreatePluginInstance_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_CreatePluginInstance")); + if (!pstPluginFunctions->pFunCreateInstance) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunDestroyInstance = (FEAPI_DestroyPluginInstance_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_DestroyPluginInstance")); + if (!pstPluginFunctions->pFunDestroyInstance) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunGetApiVersion = (FEAPI_GetPluginAPIVersion_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginAPIVersion")); + if (!pstPluginFunctions->pFunGetApiVersion) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunInitializePlugin = (FEAPI_InitializePlugin_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_InitializePlugin")); + if (!pstPluginFunctions->pFunInitializePlugin) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunGetPluginName = (FEAPI_GetPluginName_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginName")); + if (!pstPluginFunctions->pFunGetPluginName) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunGetPluginVendor = (FEAPI_GetPluginVendor_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginVendor")); + if (!pstPluginFunctions->pFunGetPluginVendor) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunGetPluginProperty = (FEAPI_GetPluginProperty_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginProperty")); + if (!pstPluginFunctions->pFunGetPluginVendor) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunGetPluginId = (FEAPI_GetPluginId_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginId")); + if (!pstPluginFunctions->pFunGetPluginId) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunGetPluginVendorVersion = (FEAPI_GetPluginVendorVersion_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginVendorVersion")); + if (!pstPluginFunctions->pFunGetPluginVendorVersion) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunGetPluginDescription = (FEAPI_GetPluginDescription_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginDescription")); + if (!pstPluginFunctions->pFunGetPluginDescription) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunGetPluginCopyright = (FEAPI_GetPluginCopyright_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginCopyright")); + if (!pstPluginFunctions->pFunGetPluginCopyright) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunGetNumberOfInputs = (FEAPI_GetPluginNumOfInputs_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginNumOfInputs")); + if (!pstPluginFunctions->pFunGetNumberOfInputs) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunGetInputDescription = (FEAPI_GetPluginInputDescription_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginInputDescription")); + if (!pstPluginFunctions->pFunGetInputDescription) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunGetNumberOfResults = (FEAPI_GetPluginNumOfResults_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginNumOfResults")); + if (!pstPluginFunctions->pFunGetNumberOfResults) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunGetResultDescription = (FEAPI_GetPluginResultDescription_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginResultDescription")); + if (!pstPluginFunctions->pFunGetResultDescription) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunGetNumberOfParameters = (FEAPI_GetPluginNumOfParameters_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginNumOfParameters")); + if (!pstPluginFunctions->pFunGetNumberOfParameters) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunGetParameterDescription = (FEAPI_GetPluginParameterDescription_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginParameterDescription")); + if (!pstPluginFunctions->pFunGetParameterDescription) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunSetParameter = (FEAPI_SetPluginParameter_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_SetPluginParameter")); + if (!pstPluginFunctions->pFunSetParameter) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunGetParameter = (FEAPI_GetPluginParameter_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginParameter")); + if (!pstPluginFunctions->pFunGetParameter) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunProcess = (FEAPI_ProcessPlugin_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_ProcessPlugin")); + if (!pstPluginFunctions->pFunProcess) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunProcessDone = (FEAPI_ProcessPluginDone_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_ProcessPluginDone")); + if (!pstPluginFunctions->pFunProcessDone) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunGetSizeOfResult = (FEAPI_GetPluginSizeOfResult_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginSizeOfResult")); + if (!pstPluginFunctions->pFunGetSizeOfResult) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunGetResult = (FEAPI_GetPluginResult_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginResult")); + if (!pstPluginFunctions->pFunGetResult) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunGetResultLatency = (FEAPI_GetPluginResultLatency_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginResultLatency")); + if (!pstPluginFunctions->pFunGetResultLatency) + return FEAPI_kUnspecifiedError; + pstPluginFunctions->pFunReset = (FEAPI_ResetPlugin_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_ResetPlugin")); + if (!pstPluginFunctions->pFunReset) + return FEAPI_kUnspecifiedError; + + return FEAPI_kNoError; +} +#else +// no implementation yet for other plateforms +#endif + + + +#ifdef WIN32 +int FindPlugins(FEAPI_PluginFileNames_t *pstFileNames) +{ + struct _finddata_t DllFile; + long hFile; + int iNumOfPlugins = 0; + FEAPI_PluginFileNames_t *pCurrentStruct = pstFileNames; + FEAPI_PluginFunctions_t stPluginFunctions; + + /* Find first .dll file in current directory */ + if( (hFile = _findfirst( "*.dll", &DllFile )) == -1L ) + return iNumOfPlugins; + else + { + HMODULE hDllHandle; + + hDllHandle = LoadLibrary (DllFile.name); + + if (GetFunctionPointers(hDllHandle, &stPluginFunctions)) + { + // add to list + strcpy(pCurrentStruct->acFilename, DllFile.name); + pCurrentStruct->iMajorVersion = stPluginFunctions.pFunGetApiVersion (FEAPI_kMajorVersion); + pCurrentStruct->pNextPlugin = new FEAPI_PluginFileNames_t; + pCurrentStruct = pCurrentStruct->pNextPlugin; + pCurrentStruct->pNextPlugin = 0; + iNumOfPlugins++; + } + + if (hDllHandle) + FreeLibrary (hDllHandle); + + /* Find the rest of the .dll files */ + while( _findnext( hFile, &DllFile ) == 0 ) + { + hDllHandle = LoadLibrary (DllFile.name); + + if (GetFunctionPointers(hDllHandle, &stPluginFunctions)) + { + // add to list + strcpy(pCurrentStruct->acFilename, DllFile.name); + pCurrentStruct->iMajorVersion = stPluginFunctions.pFunGetApiVersion (FEAPI_kMajorVersion); + pCurrentStruct->pNextPlugin = new FEAPI_PluginFileNames_t; + pCurrentStruct = pCurrentStruct->pNextPlugin; + pCurrentStruct->pNextPlugin = 0; + iNumOfPlugins++; + } + if (hDllHandle) + FreeLibrary (hDllHandle); + } + + _findclose( hFile ); + } + + return iNumOfPlugins; +} + +#elif MAC + +int FindPlugins(FEAPI_PluginFileNames_t *pstFileNames) +{ + int iNumOfPlugins = 0; + FEAPI_PluginFileNames_t *pCurrentStruct = pstFileNames; + FEAPI_PluginFunctions_t stPluginFunctions; + + char acFeapiPath[1024]; + strcpy(acFeapiPath,getenv("HOME")); + strcat(acFeapiPath,"/library/Audio/Plug-Ins/FEAPI"); + + CFStringRef cfFeapiPlugInPath = CFStringCreateWithCString(kCFAllocatorDefault,acFeapiPath,kCFStringEncodingMacRoman); + CFURLRef cfFeapiPluginsURL = CFURLCreateWithFileSystemPath(kCFAllocatorDefault,cfFeapiPlugInPath,kCFURLPOSIXPathStyle,true); + + // do we need to release and/or unload the bundles when created like that? + CFArrayRef bundleArray = CFBundleCreateBundlesFromDirectory(kCFAllocatorDefault,cfFeapiPluginsURL,NULL); + CFIndex iNumOfBundles = CFArrayGetCount(bundleArray); + + if( iNumOfBundles <= 0 ) + { + CFRelease(cfFeapiPlugInPath); + CFRelease(cfFeapiPluginsURL); + CFRelease(bundleArray); + return iNumOfPlugins; + } + + // search all bundles for FEAPI plugins + for(int i=0; i<iNumOfBundles; ++i) + { + CFBundleRef cfBundle = (CFBundleRef) CFArrayGetValueAtIndex(bundleArray,i); + + if (GetFunctionPointers(cfBundle, &stPluginFunctions)) + { + // add to list + CFURLRef cfBundleURL = CFBundleCopyBundleURL(cfBundle); + char acBundlePath[1024]; + CFURLGetFileSystemRepresentation(cfBundleURL,true,(UInt8 *)acBundlePath,1024); + strcpy(pCurrentStruct->acFilename, (const char*)acBundlePath); + + pCurrentStruct->iMajorVersion = stPluginFunctions.pFunGetApiVersion (FEAPI_kMajorVersion); + pCurrentStruct->pNextPlugin = new FEAPI_PluginFileNames_t; + pCurrentStruct = pCurrentStruct->pNextPlugin; + pCurrentStruct->pNextPlugin = 0; + iNumOfPlugins++; + } + } + + CFRelease(cfFeapiPlugInPath); + CFRelease(cfFeapiPluginsURL); + CFRelease(bundleArray); + + return iNumOfPlugins; +} +#else +// no implementation yet for other plateforms +#endif //WIN32 + + +FEAPI_Error_t LoadPluginModule(const char *pcFilename,FEAPI_ModuleHandle_t *phModule) +{ +#ifdef WIN32 + HMODULE hDllHandle = LoadLibrary (pcFilename); + if(hDllHandle) + { + *phModule = (FEAPI_ModuleHandle_t)hDllHandle; + return FEAPI_kNoError; + } + else + { + *phModule = 0; + return FEAPI_kUnspecifiedError; + } +#elif MAC + CFStringRef bundlePath = CFStringCreateWithCString(kCFAllocatorDefault,pcFilename,kCFStringEncodingMacRoman); + CFURLRef bundleURL = CFURLCreateWithFileSystemPath(kCFAllocatorDefault,bundlePath,kCFURLPOSIXPathStyle,true); + + CFBundleRef cfBundle = CFBundleCreate(kCFAllocatorDefault,bundleURL); + + CFRelease(bundlePath); + CFRelease(bundleURL); + + if(cfBundle) + { + *phModule = (FEAPI_ModuleHandle_t)cfBundle; + return FEAPI_kNoError; + } + else + { + std::cerr << "cfBundle is NULL"<< std::endl; + *phModule = 0; + return FEAPI_kUnspecifiedError; + } +#else + return FEAPI_kUnspecifiedError; // not implemented + +#endif +} + + +FEAPI_Error_t UnloadPluginModule(FEAPI_ModuleHandle_t hModule) +{ +#ifdef WIN32 + HMODULE hDllHandle = hModule; + + if (hDllHandle) + FreeLibrary (hDllHandle); + + return FEAPI_kNoError; +#elif Mac + CFBundleRef cfBundle = (CFBundleRef)hModule; + + if (cfBundle) + { + CFBundleUnloadExecutable(cfBundle); + CFRelease(cfBundle); + } + + return FEAPI_kNoError; +#else + return FEAPI_kUnspecifiedError; // not implemented +#endif +} + Deleted: trunk/FEAPI/sdk/host/src/FEAPIHostUtils.cpp =================================================================== --- trunk/FEAPI/sdk/host/src/FEAPIHostUtils.cpp 2006-03-09 15:49:54 UTC (rev 59) +++ trunk/FEAPI/sdk/host/src/FEAPIHostUtils.cpp 2006-03-09 18:15:49 UTC (rev 60) @@ -1,400 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////////// -// /*! \file FEAPIHostUtils.cpp -// \brief host utilities for Feature Extraction -// Plug-In API (FEAPI). */ -// -// Copyright (c) 2006, Ircam-Centre Pomidou -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must link to the FEAPI website -// http://www.sf.net/projects/feapi, -// reproduce this list of conditions and the following -// disclaimer in the documentation and/or other materials -// provided with the distribution. -// * The name of the contributors to this software must not be used -// to endorse or promote products derived from this software -// without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -// COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. -// -//////////////////////////////////////////////////////////////////////////////// -// includes - -#include "FEAPIHostUtils.h" -#include <iostream> - -#ifdef WIN32 - -FEAPI_Error_t GetFunctionPointers(FEAPI_ModuleHandle_t hModule, FEAPI_PluginFunctions_t *pstPluginFunctions) -{ - HMODULE hDllHandle = hModule; - - // get exports from dll - pstPluginFunctions->pFunCreateInstance = (FEAPI_CreatePluginInstance_t) GetProcAddress (hDllHandle, "FEAPI_CreatePluginInstance"); - if (!pstPluginFunctions->pFunCreateInstance) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunDestroyInstance = (FEAPI_DestroyPluginInstance_t) GetProcAddress (hDllHandle, "FEAPI_DestroyPluginInstance"); - if (!pstPluginFunctions->pFunDestroyInstance) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunGetApiVersion = (FEAPI_GetPluginAPIVersion_t) GetProcAddress (hDllHandle, "FEAPI_GetPluginAPIVersion"); - if (!pstPluginFunctions->pFunGetApiVersion) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunInitializePlugin = (FEAPI_InitializePlugin_t) GetProcAddress (hDllHandle, "FEAPI_InitializePlugin"); - if (!pstPluginFunctions->pFunInitializePlugin) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunGetPluginName = (FEAPI_GetPluginName_t) GetProcAddress (hDllHandle, "FEAPI_GetPluginName"); ; - if (!pstPluginFunctions->pFunGetPluginName) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunGetPluginVendor = (FEAPI_GetPluginVendor_t) GetProcAddress (hDllHandle, "FEAPI_GetPluginVendor"); ; - if (!pstPluginFunctions->pFunGetPluginVendor) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunGetPluginProperty = (FEAPI_GetPluginProperty_t) GetProcAddress (hDllHandle, "FEAPI_GetPluginProperty"); ; - if (!pstPluginFunctions->pFunGetPluginVendor) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunGetPluginId = (FEAPI_GetPluginId_t) GetProcAddress (hDllHandle, "FEAPI_GetPluginId"); ; - if (!pstPluginFunctions->pFunGetPluginId) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunGetPluginVendorVersion = (FEAPI_GetPluginVendorVersion_t) GetProcAddress (hDllHandle, "FEAPI_GetPluginVendorVersion"); ; - if (!pstPluginFunctions->pFunGetPluginVendorVersion) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunGetPluginDescription = (FEAPI_GetPluginDescription_t) GetProcAddress (hDllHandle, "FEAPI_GetPluginDescription"); ; - if (!pstPluginFunctions->pFunGetPluginDescription) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunGetPluginCopyright = (FEAPI_GetPluginCopyright_t) GetProcAddress (hDllHandle, "FEAPI_GetPluginCopyright"); ; - if (!pstPluginFunctions->pFunGetPluginCopyright) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunGetNumberOfInputs = (FEAPI_GetPluginNumOfInputs_t) GetProcAddress (hDllHandle, "FEAPI_GetPluginNumOfInputs"); ; - if (!pstPluginFunctions->pFunGetNumberOfInputs) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunGetInputDescription = (FEAPI_GetPluginInputDescription_t) GetProcAddress (hDllHandle, "FEAPI_GetPluginInputDescription"); ; - if (!pstPluginFunctions->pFunGetInputDescription) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunGetNumberOfResults = (FEAPI_GetPluginNumOfResults_t) GetProcAddress (hDllHandle, "FEAPI_GetPluginNumOfResults"); ; - if (!pstPluginFunctions->pFunGetNumberOfResults) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunGetResultDescription = (FEAPI_GetPluginResultDescription_t) GetProcAddress (hDllHandle, "FEAPI_GetPluginResultDescription"); ; - if (!pstPluginFunctions->pFunGetResultDescription) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunGetNumberOfParameters = (FEAPI_GetPluginNumOfParameters_t) GetProcAddress (hDllHandle, "FEAPI_GetPluginNumOfParameters"); ; - if (!pstPluginFunctions->pFunGetNumberOfParameters) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunGetParameterDescription = (FEAPI_GetPluginParameterDescription_t) GetProcAddress (hDllHandle, "FEAPI_GetPluginParameterDescription"); ; - if (!pstPluginFunctions->pFunGetParameterDescription) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunSetParameter = (FEAPI_SetPluginParameter_t) GetProcAddress (hDllHandle, "FEAPI_SetPluginParameter"); ; - if (!pstPluginFunctions->pFunSetParameter) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunGetParameter = (FEAPI_GetPluginParameter_t) GetProcAddress (hDllHandle, "FEAPI_GetPluginParameter"); ; - if (!pstPluginFunctions->pFunGetParameter) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunProcess = (FEAPI_ProcessPlugin_t) GetProcAddress (hDllHandle, "FEAPI_ProcessPlugin"); ; - if (!pstPluginFunctions->pFunProcess) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunProcessDone = (FEAPI_ProcessPluginDone_t) GetProcAddress (hDllHandle, "FEAPI_ProcessPluginDone"); ; - if (!pstPluginFunctions->pFunProcessDone) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunGetSizeOfResult = (FEAPI_GetPluginSizeOfResult_t) GetProcAddress (hDllHandle, "FEAPI_GetPluginSizeOfResult"); ; - if (!pstPluginFunctions->pFunGetSizeOfResult) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunGetResult = (FEAPI_GetPluginResult_t) GetProcAddress (hDllHandle, "FEAPI_GetPluginResult"); ; - if (!pstPluginFunctions->pFunGetResult) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunGetResultLatency = (FEAPI_GetPluginResultLatency_t) GetProcAddress (hDllHandle, "FEAPI_GetPluginResultLatency"); ; - if (!pstPluginFunctions->pFunGetResultLatency) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunReset = (FEAPI_ResetPlugin_t) GetProcAddress (hDllHandle, "FEAPI_ResetPlugin"); ; - if (!pstPluginFunctions->pFunReset) - return FEAPI_kUnspecifiedError; - - return FEAPI_kNoError; -} - -#elif MAC - -FEAPI_Error_t GetFunctionPointers(FEAPI_ModuleHandle_t hModule, FEAPI_PluginFunctions_t *pstPluginFunctions) -{ - CFBundleRef cfBundle = hModule; - - // get exports from dll - pstPluginFunctions->pFunCreateInstance = (FEAPI_CreatePluginInstance_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_CreatePluginInstance")); - if (!pstPluginFunctions->pFunCreateInstance) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunDestroyInstance = (FEAPI_DestroyPluginInstance_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_DestroyPluginInstance")); - if (!pstPluginFunctions->pFunDestroyInstance) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunGetApiVersion = (FEAPI_GetPluginAPIVersion_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginAPIVersion")); - if (!pstPluginFunctions->pFunGetApiVersion) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunInitializePlugin = (FEAPI_InitializePlugin_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_InitializePlugin")); - if (!pstPluginFunctions->pFunInitializePlugin) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunGetPluginName = (FEAPI_GetPluginName_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginName")); - if (!pstPluginFunctions->pFunGetPluginName) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunGetPluginVendor = (FEAPI_GetPluginVendor_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginVendor")); - if (!pstPluginFunctions->pFunGetPluginVendor) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunGetPluginProperty = (FEAPI_GetPluginProperty_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginProperty")); - if (!pstPluginFunctions->pFunGetPluginVendor) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunGetPluginId = (FEAPI_GetPluginId_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginId")); - if (!pstPluginFunctions->pFunGetPluginId) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunGetPluginVendorVersion = (FEAPI_GetPluginVendorVersion_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginVendorVersion")); - if (!pstPluginFunctions->pFunGetPluginVendorVersion) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunGetPluginDescription = (FEAPI_GetPluginDescription_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginDescription")); - if (!pstPluginFunctions->pFunGetPluginDescription) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunGetPluginCopyright = (FEAPI_GetPluginCopyright_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginCopyright")); - if (!pstPluginFunctions->pFunGetPluginCopyright) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunGetNumberOfInputs = (FEAPI_GetPluginNumOfInputs_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginNumOfInputs")); - if (!pstPluginFunctions->pFunGetNumberOfInputs) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunGetInputDescription = (FEAPI_GetPluginInputDescription_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginInputDescription")); - if (!pstPluginFunctions->pFunGetInputDescription) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunGetNumberOfResults = (FEAPI_GetPluginNumOfResults_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginNumOfResults")); - if (!pstPluginFunctions->pFunGetNumberOfResults) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunGetResultDescription = (FEAPI_GetPluginResultDescription_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginResultDescription")); - if (!pstPluginFunctions->pFunGetResultDescription) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunGetNumberOfParameters = (FEAPI_GetPluginNumOfParameters_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginNumOfParameters")); - if (!pstPluginFunctions->pFunGetNumberOfParameters) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunGetParameterDescription = (FEAPI_GetPluginParameterDescription_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginParameterDescription")); - if (!pstPluginFunctions->pFunGetParameterDescription) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunSetParameter = (FEAPI_SetPluginParameter_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_SetPluginParameter")); - if (!pstPluginFunctions->pFunSetParameter) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunGetParameter = (FEAPI_GetPluginParameter_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginParameter")); - if (!pstPluginFunctions->pFunGetParameter) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunProcess = (FEAPI_ProcessPlugin_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_ProcessPlugin")); - if (!pstPluginFunctions->pFunProcess) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunProcessDone = (FEAPI_ProcessPluginDone_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_ProcessPluginDone")); - if (!pstPluginFunctions->pFunProcessDone) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunGetSizeOfResult = (FEAPI_GetPluginSizeOfResult_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginSizeOfResult")); - if (!pstPluginFunctions->pFunGetSizeOfResult) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunGetResult = (FEAPI_GetPluginResult_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginResult")); - if (!pstPluginFunctions->pFunGetResult) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunGetResultLatency = (FEAPI_GetPluginResultLatency_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_GetPluginResultLatency")); - if (!pstPluginFunctions->pFunGetResultLatency) - return FEAPI_kUnspecifiedError; - pstPluginFunctions->pFunReset = (FEAPI_ResetPlugin_t) CFBundleGetFunctionPointerForName (cfBundle, CFSTR("FEAPI_ResetPlugin")); - if (!pstPluginFunctions->pFunReset) - return FEAPI_kUnspecifiedError; - - return FEAPI_kNoError; -} -#else -// no implementation yet for other plateforms -#endif - - - -#ifdef WIN32 -int FindPlugins(FEAPI_PluginFileNames_t *pstFileNames) -{ - struct _finddata_t DllFile; - long hFile; - int iNumOfPlugins = 0; - FEAPI_PluginFileNames_t *pCurrentStruct = pstFileNames; - FEAPI_PluginFunctions_t stPluginFunctions; - - /* Find first .dll file in current directory */ - if( (hFile = _findfirst( "*.dll", &DllFile )) == -1L ) - return iNumOfPlugins; - else - { - HMODULE hDllHandle; - - hDllHandle = LoadLibrary (DllFile.name); - - if (GetFunctionPointers(hDllHandle, &stPluginFunctions)) - { - // add to list - strcpy(pCurrentStruct->acFilename, DllFile.name); - pCurrentStruct->iMajorVersion = stPluginFunctions.pFunGetApiVersion (FEAPI_kMajorVersion); - pCurrentStruct->pNextPlugin = new FEAPI_PluginFileNames_t; - pCurrentStruct = pCurrentStruct->pNextPlugin; - pCurrentStruct->pNextPlugin = 0; - iNumOfPlugins++; - } - - if (hDllHandle) - FreeLibrary (hDllHandle); - - /* Find the rest of the .dll files */ - while( _findnext( hFile, &DllFile ) == 0 ) - { - hDllHandle = LoadLibrary (DllFile.name); - - if (GetFunctionPointers(hDllHandle, &stPluginFunctions)) - { - // add to list - strcpy(pCurrentStruct->acFilename, DllFile.name); - pCurrentStruct->iMajorVersion = stPluginFunctions.pFunGetApiVersion (FEAPI_kMajorVersion); - pCurrentStruct->pNextPlugin = new FEAPI_PluginFileNames_t; - pCurrentStruct = pCurrentStruct->pNextPlugin; - pCurrentStruct->pNextPlugin = 0; - iNumOfPlugins++; - } - if (hDllHandle) - FreeLibrary (hDllHandle); - } - - _findclose( hFile ); - } - - return iNumOfPlugins; -} - -#elif MAC - -int FindPlugins(FEAPI_PluginFileNames_t *pstFileNames) -{ - int iNumOfPlugins = 0; - FEAPI_PluginFileNames_t *pCurrentStruct = pstFileNames; - FEAPI_PluginFunctions_t stPluginFunctions; - - char acFeapiPath[1024]; - strcpy(acFeapiPath,getenv("HOME")); - strcat(acFeapiPath,"/library/Audio/Plug-Ins/FEAPI"); - - CFStringRef cfFeapiPlugInPath = CFStringCreateWithCString(kCFAllocatorDefault,acFeapiPath,kCFStringEncodingMacRoman); - CFURLRef cfFeapiPluginsURL = CFURLCreateWithFileSystemPath(kCFAllocatorDefault,cfFeapiPlugInPath,kCFURLPOSIXPathStyle,true); - - // do we need to release and/or unload the bundles when created like that? - CFArrayRef bundleArray = CFBundleCreateBundlesFromDirectory(kCFAllocatorDefault,cfFeapiPluginsURL,NULL); - CFIndex iNumOfBundles = CFArrayGetCount(bundleArray); - - if( iNumOfBundles <= 0 ) - { - CFRelease(cfFeapiPlugInPath); - CFRelease(cfFeapiPluginsURL); - CFRelease(bundleArray); - return iNumOfPlugins; - } - - // search all bundles for FEAPI plugins - for(int i=0; i<iNumOfBundles; ++i) - { - CFBundleRef cfBundle = (CFBundleRef) CFArrayGetValueAtIndex(bundleArray,i); - - if (GetFunctionPointers(cfBundle, &stPluginFunctions)) - { - // add to list - CFURLRef cfBundleURL = CFBundleCopyBundleURL(cfBundle); - char acBundlePath[1024]; - CFURLGetFileSystemRepresentation(cfBundleURL,true,(UInt8 *)acBundlePath,1024); - strcpy(pCurrentStruct->acFilename, (const char*)acBundlePath); - - pCurrentStruct->iMajorVersion = stPluginFunctions.pFunGetApiVersion (FEAPI_kMajorVersion); - pCurrentStruct->pNextPlugin = new FEAPI_PluginFileNames_t; - pCurrentStruct = pCurrentStruct->pNextPlugin; - pCurrentStruct->pNextPlugin = 0; - iNumOfPlugins++; - } - } - - CFRelease(cfFeapiPlugInPath); - CFRelease(cfFeapiPluginsURL); - CFRelease(bundleArray); - - return iNumOfPlugins; -} -#else -// no implementation yet for other plateforms -#endif //WIN32 - - -FEAPI_Error_t LoadPluginModule(const char *pcFilename,FEAPI_ModuleHandle_t *phModule) -{ -#ifdef WIN32 - HMODULE hDllHandle = LoadLibrary (pcFilename); - if(hDllHandle) - { - *phModule = (FEAPI_ModuleHandle_t)hDllHandle; - return FEAPI_kNoError; - } - else - { - *phModule = 0; - return FEAPI_kUnspecifiedError; - } -#elif MAC - CFStringRef bundlePath = CFStringCreateWithCString(kCFAllocatorDefault,pcFilename,kCFStringEncodingMacRoman); - CFURLRef bundleURL = CFURLCreateWithFileSystemPath(kCFAllocatorDefault,bundlePath,kCFURLPOSIXPathStyle,true); - - CFBundleRef cfBundle = CFBundleCreate(kCFAllocatorDefault,bundleURL); - - CFRelease(bundlePath); - CFRelease(bundleURL); - - if(cfBundle) - { - *phModule = (FEAPI_ModuleHandle_t)cfBundle; - return FEAPI_kNoError; - } - else - { - std::cerr << "cfBundle is NULL"<< std::endl; - *phModule = 0; - return FEAPI_kUnspecifiedError; - } -#else - return FEAPI_kUnspecifiedError; // not implemented - -#endif -} - - -FEAPI_Error_t UnloadPluginModule(FEAPI_ModuleHandle_t hModule) -{ -#ifdef WIN32 - HMODULE hDllHandle = hModule; - - if (hDllHandle) - FreeLibrary (hDllHandle); - - return FEAPI_kNoError; -#elif Mac - CFBundleRef cfBundle = (CFBundleRef)hModule; - - if (cfBundle) - { - CFBundleUnloadExecutable(cfBundle); - CFRelease(cfBundle); - } - - return FEAPI_kNoError; -#else - return FEAPI_kUnspecifiedError; // not implemented -#endif -} - Modified: trunk/FEAPI/sdk/host/src/FEAPIPluginProxy.cpp =================================================================== --- trunk/FEAPI/sdk/host/src/FEAPIPluginProxy.cpp 2006-03-09 15:49:54 UTC (rev 59) +++ trunk/FEAPI/sdk/host/src/FEAPIPluginProxy.cpp 2006-03-09 18:15:49 UTC (rev 60) @@ -37,7 +37,7 @@ ////////////////////////////////////////////////////////////////////////////////// #include "FEAPIPluginProxy.h" -#include "FEAPIHostUtils.h" +#include "FEAPIHostUtilities.h" #include <iostream> /*! this defines the version of the Host API */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fea...@li...> - 2006-03-09 15:50:09
|
Revision: 59 Author: alex_lerch Date: 2006-03-09 07:49:54 -0800 (Thu, 09 Mar 2006) ViewCVS: http://svn.sourceforge.net/feapi/?rev=59&view=rev Log Message: ----------- updated VC6 projects Modified Paths: -------------- trunk/FEAPI/build/Win/ExamplePluginFindMax/ExamplePluginFindMax.dsp trunk/FEAPI/build/Win/ExamplePluginFindRms/ExamplePluginFindRms.dsp trunk/FEAPI/build/Win/FEAPIHost_C/FEAPITestCL.dsp Modified: trunk/FEAPI/build/Win/ExamplePluginFindMax/ExamplePluginFindMax.dsp =================================================================== --- trunk/FEAPI/build/Win/ExamplePluginFindMax/ExamplePluginFindMax.dsp 2006-03-09 11:39:18 UTC (rev 58) +++ trunk/FEAPI/build/Win/ExamplePluginFindMax/ExamplePluginFindMax.dsp 2006-03-09 15:49:54 UTC (rev 59) @@ -43,7 +43,7 @@ # PROP Ignore_Export_Lib 1 # PROP Target_Dir "" # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /Ob2 /I "../../../include" /I "../../../sdk/include" /I "../../../examples/FEAPIExamplePluginFindMax" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /Ob2 /I "../../../include" /I "../../../sdk/plugin/include" /I "../../../examples/plugin/FEAPIExamplePluginFindMax" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c # SUBTRACT CPP /YX # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 @@ -70,7 +70,7 @@ # PROP Ignore_Export_Lib 1 # PROP Target_Dir "" # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../include" /I "../../../sdk/include" /I "../../../examples/FEAPIExamplePluginFindMax" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../include" /I "../../../sdk/plugin/include" /I "../../../examples/plugin/FEAPIExamplePluginFindMax" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD BASE RSC /l 0x407 /d "_DEBUG" @@ -93,7 +93,7 @@ # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" # Begin Source File -SOURCE=..\..\..\examples\FEAPIExamplePluginFindMax\FEAPIExamplePluginFindMax.cpp +SOURCE=..\..\..\examples\plugin\FEAPIExamplePluginFindMax\FEAPIExamplePluginFindMax.cpp # End Source File # End Group # Begin Group "Header Files" @@ -101,33 +101,13 @@ # PROP Default_Filter "h;hpp;hxx;hm;inl" # Begin Source File -SOURCE=..\..\..\examples\FEAPIExamplePluginFindMax\FEAPIExamplePluginFindMax.h +SOURCE=..\..\..\examples\plugin\FEAPIExamplePluginFindMax\FEAPIExamplePluginFindMax.h # End Source File # End Group # Begin Group "Resource Files" # PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" # End Group -# Begin Group "Documentation Files" - -# PROP Default_Filter "txt" -# Begin Source File - -SOURCE=..\..\..\doc\docugenAPI.txt -# End Source File -# Begin Source File - -SOURCE=..\..\..\doc\docugenHost.txt -# End Source File -# Begin Source File - -SOURCE=..\..\..\doc\docugenPlug.txt -# End Source File -# Begin Source File - -SOURCE=..\..\..\license\license.txt -# End Source File -# End Group # Begin Group "Definition Files" # PROP Default_Filter "def" @@ -147,7 +127,7 @@ # PROP Default_Filter "" # Begin Source File -SOURCE=..\..\..\sdk\src\FEAPIPluginBase.cpp +SOURCE=..\..\..\sdk\plugin\src\FEAPIPluginBase.cpp # End Source File # End Group # Begin Group "include" @@ -155,14 +135,26 @@ # PROP Default_Filter "" # Begin Source File -SOURCE=..\..\..\sdk\include\FEAPIEntryPoints.h +SOURCE=..\..\..\sdk\plugin\include\FEAPIEntryPoints.h # End Source File # Begin Source File -SOURCE=..\..\..\sdk\include\FEAPIPluginBase.h +SOURCE=..\..\..\sdk\plugin\include\FEAPIPluginBase.h # End Source File # End Group # End Group # End Group +# Begin Group "Documentation Files" + +# PROP Default_Filter ".txt" +# Begin Source File + +SOURCE=..\..\..\doc\docugenPlug.txt +# End Source File +# Begin Source File + +SOURCE=..\..\..\license\license.txt +# End Source File +# End Group # End Target # End Project Modified: trunk/FEAPI/build/Win/ExamplePluginFindRms/ExamplePluginFindRms.dsp =================================================================== --- trunk/FEAPI/build/Win/ExamplePluginFindRms/ExamplePluginFindRms.dsp 2006-03-09 11:39:18 UTC (rev 58) +++ trunk/FEAPI/build/Win/ExamplePluginFindRms/ExamplePluginFindRms.dsp 2006-03-09 15:49:54 UTC (rev 59) @@ -43,7 +43,7 @@ # PROP Ignore_Export_Lib 1 # PROP Target_Dir "" # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /Ob2 /I "../../../include" /I "../../../sdk/include" /I "../../../examples/FEAPIExamplePluginFindRms" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /Ob2 /I "../../../include" /I "../../../sdk/plugin/include" /I "../../../examples/plugin/FEAPIExamplePluginFindRms" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c # SUBTRACT CPP /YX # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 @@ -70,7 +70,7 @@ # PROP Ignore_Export_Lib 1 # PROP Target_Dir "" # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../include" /I "../../../sdk/include" /I "../../../examples/FEAPIExamplePluginFindRms" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../include" /I "../../../sdk/plugin/include" /I "../../../examples/plugin/FEAPIExamplePluginFindRms" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD BASE RSC /l 0x407 /d "_DEBUG" @@ -93,7 +93,7 @@ # PROP Default_Filter "h;hpp;hxx;hm;inl" # Begin Source File -SOURCE=..\..\..\examples\FEAPIExamplePluginFindRms\FEAPIExamplePluginFindRms.h +SOURCE=..\..\..\examples\plugin\FEAPIExamplePluginFindRms\FEAPIExamplePluginFindRms.h # End Source File # End Group # Begin Group "Resource Files" @@ -105,14 +105,6 @@ # PROP Default_Filter "txt" # Begin Source File -SOURCE=..\..\..\doc\docugenAPI.txt -# End Source File -# Begin Source File - -SOURCE=..\..\..\doc\docugenHost.txt -# End Source File -# Begin Source File - SOURCE=..\..\..\doc\docugenPlug.txt # End Source File # Begin Source File @@ -128,14 +120,6 @@ SOURCE=.\FEAPIExamplePluginFindRms.def # End Source File # End Group -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\examples\FEAPIExamplePluginFindRms\FEAPIExamplePluginFindRms.cpp -# End Source File -# End Group # Begin Group "FEAPI" # PROP Default_Filter "" @@ -147,7 +131,7 @@ # PROP Default_Filter "" # Begin Source File -SOURCE=..\..\..\sdk\src\FEAPIPluginBase.cpp +SOURCE=..\..\..\sdk\plugin\src\FEAPIPluginBase.cpp # End Source File # End Group # Begin Group "include" @@ -155,14 +139,18 @@ # PROP Default_Filter "" # Begin Source File -SOURCE=..\..\..\sdk\include\FEAPIEntryPoints.h +SOURCE=..\..\..\sdk\plugin\include\FEAPIPluginBase.h # End Source File +# End Group +# End Group +# End Group +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" # Begin Source File -SOURCE=..\..\..\sdk\include\FEAPIPluginBase.h +SOURCE=..\..\..\examples\plugin\FEAPIExamplePluginFindRms\FEAPIExamplePluginFindRms.cpp # End Source File # End Group -# End Group -# End Group # End Target # End Project Modified: trunk/FEAPI/build/Win/FEAPIHost_C/FEAPITestCL.dsp =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fea...@li...> - 2006-03-09 11:39:27
|
Revision: 58 Author: KoenTanghe Date: 2006-03-09 03:39:18 -0800 (Thu, 09 Mar 2006) ViewCVS: http://svn.sourceforge.net/feapi/?rev=58&view=rev Log Message: ----------- Applied patch from R?\195?\169my for the vcproj files. Modified Paths: -------------- trunk/FEAPI/build/Win/ExamplePluginFindMax/ExamplePluginFindMax.vcproj trunk/FEAPI/build/Win/ExamplePluginFindRms/ExamplePluginFindRms.vcproj trunk/FEAPI/build/Win/FEAPIHost_C/FEAPITestCL.vcproj trunk/FEAPI/build/Win/FEAPI_MaxMSP_Host/feapi.vcproj Modified: trunk/FEAPI/build/Win/ExamplePluginFindMax/ExamplePluginFindMax.vcproj =================================================================== --- trunk/FEAPI/build/Win/ExamplePluginFindMax/ExamplePluginFindMax.vcproj 2006-03-08 17:26:50 UTC (rev 57) +++ trunk/FEAPI/build/Win/ExamplePluginFindMax/ExamplePluginFindMax.vcproj 2006-03-09 11:39:18 UTC (rev 58) @@ -23,7 +23,7 @@ Name="VCCLCompilerTool" Optimization="2" InlineFunctionExpansion="2" - AdditionalIncludeDirectories="..\..\..\include;..\..\..\sdk\include;..\..\..\examples\FEAPIExamplePluginFindMax" + AdditionalIncludeDirectories="..\..\..\include;..\..\..\sdk\plugin\include;..\..\..\examples\plugin\FEAPIExamplePluginFindMax" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;" StringPooling="TRUE" RuntimeLibrary="0" @@ -86,7 +86,7 @@ <Tool Name="VCCLCompilerTool" Optimization="0" - AdditionalIncludeDirectories="..\..\..\include;..\..\..\sdk\include;..\..\..\examples\FEAPIExamplePluginFindMax" + AdditionalIncludeDirectories="..\..\..\include;..\..\..\sdk\plugin\include;..\..\..\examples\plugin\FEAPIExamplePluginFindMax" PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS; " RuntimeLibrary="1" UsePrecompiledHeader="2" @@ -148,14 +148,14 @@ Name="Source Files" Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"> <File - RelativePath="..\..\..\examples\FEAPIExamplePluginFindMax\FEAPIExamplePluginFindMax.cpp"> + RelativePath="..\..\..\examples\plugin\FEAPIExamplePluginFindMax\FEAPIExamplePluginFindMax.cpp"> </File> </Filter> <Filter Name="Header Files" Filter="h;hpp;hxx;hm;inl"> <File - RelativePath="..\..\..\examples\FEAPIExamplePluginFindMax\FEAPIExamplePluginFindMax.h"> + RelativePath="..\..\..\examples\plugin\FEAPIExamplePluginFindMax\FEAPIExamplePluginFindMax.h"> </File> </Filter> <Filter @@ -171,7 +171,7 @@ RelativePath="..\..\..\doc\docugenPlug.txt"> </File> <File - RelativePath="..\..\..\license\license.txt"> + RelativePath="..\..\..\license.txt"> </File> </Filter> <Filter @@ -189,13 +189,13 @@ Name="sdk" Filter=""> <File - RelativePath="..\..\..\sdk\include\FEAPIEntryPoints.h"> + RelativePath="..\..\..\sdk\plugin\include\FEAPIEntryPoints.h"> </File> <File - RelativePath="..\..\..\sdk\src\FEAPIPluginBase.cpp"> + RelativePath="..\..\..\sdk\plugin\src\FEAPIPluginBase.cpp"> </File> <File - RelativePath="..\..\..\sdk\include\FEAPIPluginBase.h"> + RelativePath="..\..\..\sdk\plugin\include\FEAPIPluginBase.h"> </File> </Filter> </Files> Modified: trunk/FEAPI/build/Win/ExamplePluginFindRms/ExamplePluginFindRms.vcproj =================================================================== --- trunk/FEAPI/build/Win/ExamplePluginFindRms/ExamplePluginFindRms.vcproj 2006-03-08 17:26:50 UTC (rev 57) +++ trunk/FEAPI/build/Win/ExamplePluginFindRms/ExamplePluginFindRms.vcproj 2006-03-09 11:39:18 UTC (rev 58) @@ -23,7 +23,7 @@ Name="VCCLCompilerTool" Optimization="2" InlineFunctionExpansion="2" - AdditionalIncludeDirectories="..\..\..\include;..\..\..\sdk\include;../../..\examples\FEAPIExamplePluginFindRms" + AdditionalIncludeDirectories="..\..\..\include;..\..\..\sdk\plugin\include;..\..\..\examples\plugin\FEAPIExamplePluginFindRms" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS" StringPooling="TRUE" RuntimeLibrary="0" @@ -86,7 +86,7 @@ <Tool Name="VCCLCompilerTool" Optimization="0" - AdditionalIncludeDirectories="..\..\..\include;..\..\..\sdk\include;../../..\examples\FEAPIExamplePluginFindRms" + AdditionalIncludeDirectories="..\..\..\include;..\..\..\sdk\plugin\include;..\..\..\examples\plugin\FEAPIExamplePluginFindRms" PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS" RuntimeLibrary="1" UsePrecompiledHeader="2" @@ -148,14 +148,14 @@ Name="Source Files" Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"> <File - RelativePath="..\..\..\examples\FEAPIExamplePluginFindRms\FEAPIExamplePluginFindRms.cpp"> + RelativePath="..\..\..\examples\plugin\FEAPIExamplePluginFindRms\FEAPIExamplePluginFindRms.cpp"> </File> </Filter> <Filter Name="Header Files" Filter="h;hpp;hxx;hm;inl"> <File - RelativePath="..\..\..\examples\FEAPIExamplePluginFindRms\FEAPIExamplePluginFindRms.h"> + RelativePath="..\..\..\examples\plugin\FEAPIExamplePluginFindRms\FEAPIExamplePluginFindRms.h"> </File> </Filter> <Filter @@ -171,7 +171,7 @@ RelativePath="..\..\..\doc\docugenPlug.txt"> </File> <File - RelativePath="..\..\..\license\license.txt"> + RelativePath="..\..\..\license.txt"> </File> </Filter> <Filter @@ -188,13 +188,13 @@ <Filter Name="sdk"> <File - RelativePath="..\..\..\sdk\include\FEAPIEntryPoints.h"> + RelativePath="..\..\..\sdk\plugin\include\FEAPIEntryPoints.h"> </File> <File - RelativePath="..\..\..\sdk\src\FEAPIPluginBase.cpp"> + RelativePath="..\..\..\sdk\plugin\src\FEAPIPluginBase.cpp"> </File> <File - RelativePath="..\..\..\sdk\include\FEAPIPluginBase.h"> + RelativePath="..\..\..\sdk\plugin\include\FEAPIPluginBase.h"> </File> </Filter> </Files> Modified: trunk/FEAPI/build/Win/FEAPIHost_C/FEAPITestCL.vcproj =================================================================== --- trunk/FEAPI/build/Win/FEAPIHost_C/FEAPITestCL.vcproj 2006-03-08 17:26:50 UTC (rev 57) +++ trunk/FEAPI/build/Win/FEAPIHost_C/FEAPITestCL.vcproj 2006-03-09 11:39:18 UTC (rev 58) @@ -22,7 +22,7 @@ Name="VCCLCompilerTool" Optimization="2" InlineFunctionExpansion="1" - AdditionalIncludeDirectories="..\..\..\include;..\..\..\sdk\include;..\..\..\examples\Host_C" + AdditionalIncludeDirectories="..\..\..\include;..\..\..\sdk\host;..\..\..\examples\host\Host_C" PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" StringPooling="TRUE" RuntimeLibrary="0" @@ -82,7 +82,7 @@ <Tool Name="VCCLCompilerTool" Optimization="0" - AdditionalIncludeDirectories="..\..\..\include;..\..\..\sdk\include;..\..\..\examples\Host_C" + AdditionalIncludeDirectories="..\..\..\include;..\..\..\sdk\host;..\..\..\examples\host\Host_C" PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" RuntimeLibrary="1" UsePrecompiledHeader="2" @@ -139,7 +139,7 @@ Name="Source Files" Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"> <File - RelativePath="..\..\..\examples\Host_C\FEAPIExampleHost_C.cpp"> + RelativePath="..\..\..\examples\host\Host_C\FEAPIExampleHost_C.cpp"> </File> </Filter> <Filter @@ -149,13 +149,16 @@ RelativePath="..\..\..\include\FEAPI.h"> </File> <File - RelativePath="..\..\..\sdk\include\sndfile.h"> + RelativePath="..\..\..\examples\host\Host_C\sndfile.h"> </File> </Filter> <Filter Name="Resource Files" Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"> </Filter> + <File + RelativePath="..\..\..\license.txt"> + </File> </Files> <Globals> </Globals> Modified: trunk/FEAPI/build/Win/FEAPI_MaxMSP_Host/feapi.vcproj =================================================================== --- trunk/FEAPI/build/Win/FEAPI_MaxMSP_Host/feapi.vcproj 2006-03-08 17:26:50 UTC (rev 57) +++ trunk/FEAPI/build/Win/FEAPI_MaxMSP_Host/feapi.vcproj 2006-03-09 11:39:18 UTC (rev 58) @@ -24,7 +24,7 @@ Name="VCCLCompilerTool" Optimization="0" OptimizeForProcessor="2" - AdditionalIncludeDirectories=""..\..\..\..\MaxWinSDK\c74support\msp-includes";"..\..\..\..\MaxWinSDK\c74support\max-includes";..\..\..\include;..\..\..\host\include" + AdditionalIncludeDirectories=""..\..\..\..\..\..\MaxWinSDK\c74support\msp-includes";"..\..\..\..\..\..\MaxWinSDK\c74support\max-includes";..\..\..\include;..\..\..\sdk\host\include" PreprocessorDefinitions="WIN_VERSION;WIN32;_DEBUG;_WINDOWS;_USRDLL;WIN_EXT_VERSION;" MinimalRebuild="TRUE" ExceptionHandling="TRUE" @@ -46,7 +46,7 @@ OutputFile="$(OutDir)/$(ProjectName).mxe" LinkIncremental="1" SuppressStartupBanner="TRUE" - AdditionalLibraryDirectories=""..\..\..\..\MaxWinSDK\c74support\msp-includes\";"..\..\..\..\MaxWinSDK\c74support\max-includes\"" + AdditionalLibraryDirectories=""..\..\..\..\..\..\MaxWinSDK\c74support\msp-includes\";"..\..\..\..\..\..\MaxWinSDK\c74support\max-includes\"" IgnoreAllDefaultLibraries="FALSE" ModuleDefinitionFile=".\feapi.def" GenerateDebugInformation="TRUE" @@ -99,7 +99,7 @@ GlobalOptimizations="TRUE" InlineFunctionExpansion="1" OptimizeForProcessor="2" - AdditionalIncludeDirectories=""..\..\..\..\MaxWinSDK\c74support\msp-includes";"..\..\..\..\MaxWinSDK\c74support\max-includes";..\..\..\include;..\..\..\host\include" + AdditionalIncludeDirectories=""..\..\..\..\..\..\MaxWinSDK\c74support\msp-includes";"..\..\..\..\..\..\MaxWinSDK\c74support\max-includes";..\..\..\include;..\..\..\sdk\host\include" PreprocessorDefinitions="WIN_VERSION;WIN32;NDEBUG;_WINDOWS;_USRDLL;WIN_EXT_VERSION;" StringPooling="TRUE" ExceptionHandling="FALSE" @@ -120,7 +120,7 @@ OutputFile="$(OutDir)/$(ProjectName).mxe" LinkIncremental="1" SuppressStartupBanner="TRUE" - AdditionalLibraryDirectories=""..\..\..\..\MaxWinSDK\c74support\msp-includes\";"..\..\..\..\MaxWinSDK\c74support\max-includes\"" + AdditionalLibraryDirectories=""..\..\..\..\..\..\MaxWinSDK\c74support\msp-includes\";"..\..\..\..\..\..\MaxWinSDK\c74support\max-includes\"" IgnoreAllDefaultLibraries="FALSE" ModuleDefinitionFile=".\feapi.def" GenerateDebugInformation="TRUE" @@ -168,7 +168,7 @@ Name="Source Files" Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"> <File - RelativePath="..\..\..\examples\FEAPI_MaxMSP_Host\feapi~.cpp"> + RelativePath="..\..\..\examples\host\FEAPI_MaxMSP_Host\feapi~.cpp"> </File> </Filter> <Filter @@ -182,19 +182,19 @@ Name="host" Filter=""> <File - RelativePath="..\..\..\host\include\FEAPIHostDeclarations.h"> + RelativePath="..\..\..\sdk\host\include\FEAPIHostDeclarations.h"> </File> <File - RelativePath="..\..\..\host\src\FEAPIHostUtils.cpp"> + RelativePath="..\..\..\sdk\host\src\FEAPIHostUtils.cpp"> </File> <File - RelativePath="..\..\..\host\include\FEAPIHostUtils.h"> + RelativePath="..\..\..\sdk\host\include\FEAPIHostUtils.h"> </File> <File - RelativePath="..\..\..\host\src\FEAPIPluginProxy.cpp"> + RelativePath="..\..\..\sdk\host\src\FEAPIPluginProxy.cpp"> </File> <File - RelativePath="..\..\..\host\include\FEAPIPluginProxy.h"> + RelativePath="..\..\..\sdk\host\include\FEAPIPluginProxy.h"> </File> </Filter> <Filter @@ -207,6 +207,9 @@ <File RelativePath=".\feapi.def"> </File> + <File + RelativePath="..\..\..\license.txt"> + </File> </Files> <Globals> </Globals> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fea...@li...> - 2006-03-08 17:27:06
|
Revision: 57 Author: KoenTanghe Date: 2006-03-08 09:26:50 -0800 (Wed, 08 Mar 2006) ViewCVS: http://svn.sourceforge.net/feapi/?rev=57&view=rev Log Message: ----------- Added FEAPI_MaxMSP_Host and FEAPIExamplePluginFindRms files that were forgotten in the last merge. Added Paths: ----------- trunk/FEAPI/examples/host/FEAPI_MaxMSP_Host/ trunk/FEAPI/examples/host/FEAPI_MaxMSP_Host/feapi~.cpp trunk/FEAPI/examples/plugin/FEAPIExamplePluginFindRms/ trunk/FEAPI/examples/plugin/FEAPIExamplePluginFindRms/FEAPIExamplePluginFindRms.cpp trunk/FEAPI/examples/plugin/FEAPIExamplePluginFindRms/FEAPIExamplePluginFindRms.h Added: trunk/FEAPI/examples/host/FEAPI_MaxMSP_Host/feapi~.cpp =================================================================== --- trunk/FEAPI/examples/host/FEAPI_MaxMSP_Host/feapi~.cpp (rev 0) +++ trunk/FEAPI/examples/host/FEAPI_MaxMSP_Host/feapi~.cpp 2006-03-08 17:26:50 UTC (rev 57) @@ -0,0 +1,578 @@ +/*************************************************************************************** +* +* Copyright (C) 2006 by IRCAM-Centre Georges Pompidou, Paris, France. +* Author: Remy Muller +* +* FEAPI (Feature Extraction API) plugin host for Max/MSP +* +*/ + +//FEAPI +#include "FEAPI.h" +#include "FEAPIHostUtils.h" +#include "FEAPIPluginProxy.h" + +#define HOST_API_MAJOR_VERSION 1 + +//MaxMSP +#include "ext.h" +#include "z_dsp.h" +//#include "ext_obex.h" + +// std +#include <vector> +#include <string> +#include <stdexcept> +#include <cassert> +using std::vector; +using std::string; + +#undef min +#undef max + +typedef void Outlet; +typedef void Clock; + +typedef struct +{ + t_pxobject obj; + void *obex; + CFEAPIPluginProxy plugin; + + int numinputs; + int numoutputs; + int numparameters; + double sr; + vector< vector<float> > results; + vector<Outlet *> outlets; + Clock *clock; +} feapi_t; + +void *feapi_class; + +static const long maxsupportedinputs = 1024; +//---------------------------------------------------------------------- +static t_int * feapi_perform(t_int *w) +{ + feapi_t *self = (feapi_t *)(w[1]); + CFEAPIPluginProxy &plugin = self->plugin; + + const FEAPI_Signal_t *inputs[maxsupportedinputs]; + FEAPI_TimeStamp_t timestamps[maxsupportedinputs]; + + double time = 0.0; + //time = double(systime_ms()); // system time + clock_getftime(&time); // or logical time + + for(int i=0;( i<self->numinputs) && (i < maxsupportedinputs);i++) + { + // it only works because + // t_signal = FEAPI_Signal_t = float + // if max or FEAPI changes to double + // we'd have to use internal buffers and do the conversion manually + inputs[i] = (FEAPI_Signal_t *)w[2+i]; + timestamps[i] = time*1000.0; // time stamp in seconds + } + int size = (int)(w[self->numinputs+2]); + + //process + try + { + plugin.ProcessPlugin(inputs,timestamps,size); + + // scan in reverse order because max sends results from right to left + for(int i=plugin.GetPluginNumOfResults()-1; i>=0; --i) + { + int iSizeOfResult = plugin.GetPluginSizeOfResult(i); + + // TODO: change this, we are overwritting the results + // what if features are multidimmensional? + while(iSizeOfResult > 0) + { + if(iSizeOfResult > self->results[i].size()) + self->results[i].resize(iSizeOfResult); + + float *pfResults = &(self->results[i][0]); + plugin.GetPluginResult(i,pfResults,timestamps); + + iSizeOfResult = plugin.GetPluginSizeOfResult(i); + } + + //tmp solution output the first element + if(self->results[i].size() == 1) + outlet_float(self->outlets[i],double(self->results[i][0])); + else if(self->results[i].size() > 1) + { + t_atom atoms[1024]; // maybe not enough if we have an FFT as n-dimensional feature + // we should use an internal buffer of preallocated atoms which is resized if necessary + + for(int j=0; j < self->results[i].size();++j) + SETFLOAT(atoms+j,self->results[i][j]); + + outlet_anything(self->outlets[i], gensym("list"), 1, atoms); + } + } + + //structure timestamps and result in order to schedule outputs + // set alarm for output and reset trigger + /* + clock_fdelay(self->clock, 0.0); + self->trigger = 0; + */ + } + catch(...) + { + //post("exception: "); + } + return w + self->numinputs+2+1; +} + +//---------------------------------------------------------------------- +static void feapi_dsp(feapi_t *self, t_signal **sp, short *count) +{ + double sr = sp[0]->s_sr; + int n_tick = sp[0]->s_n; + + if(self->sr != sr) + { + self->sr = sr; + if(self->plugin.InitializePlugin(sr,self->numinputs,HOST_API_MAJOR_VERSION,NULL) != FEAPI_kNoError) + { + post("Initializing FEAPI plugin failed"); + post("Audio in won't be processed"); + return; + } + } + + //change that line + void *w[maxsupportedinputs]; // that should be enough + assert(self->numinputs < (maxsupportedinputs-1)); + + w[0] = self; + for(int i=0;i<self->numinputs;i++) + { + w[i+1] = sp[i]->s_vec; + } + w[self->numinputs+1] = (void *)n_tick; + + dsp_addv(feapi_perform, self->numinputs+2, w); +} + +/*************************************************************** +* +* user methods +* +*/ + +//---------------------------------------------------------------------- +static void feapi_getname(feapi_t *self) +{ + CFEAPIPluginProxy &plugin = self->plugin; + char text[FEAPI_uiMaxNameLength]; + memset(text,0,FEAPI_uiMaxNameLength); + plugin.GetPluginName(text); + + t_atom atoms[1]; + SETSYM(atoms,gensym(text)); + + outlet_anything(self->outlets.back(), gensym("name"), 1, atoms); +} + +//---------------------------------------------------------------------- +static void feapi_getid(feapi_t *self) +{ + CFEAPIPluginProxy &plugin = self->plugin; + char text[FEAPI_uiMaxNameLength]; + memset(text,0,FEAPI_uiMaxNameLength); + plugin.GetPluginId(text); + + t_atom atoms[1]; + SETSYM(atoms,gensym(text)); + outlet_anything(self->outlets.back(), gensym("id"), 1, atoms); +} + +//---------------------------------------------------------------------- +static void feapi_getcopyright(feapi_t *self) +{ + CFEAPIPluginProxy &plugin = self->plugin; + char text[FEAPI_uiMaxUnitLength]; + memset(text,0,FEAPI_uiMaxUnitLength); + plugin.GetPluginCopyright(text); + + t_atom atoms[1]; + SETSYM(atoms,gensym(text)); + outlet_anything(self->outlets.back(), gensym("copyright"), 1, atoms); +} + +//---------------------------------------------------------------------- +static void feapi_getdescription(feapi_t *self) +{ + CFEAPIPluginProxy &plugin = self->plugin; + char text[FEAPI_uiMaxDescriptionLength]; + memset(text,0,FEAPI_uiMaxDescriptionLength); + plugin.GetPluginDescription(text); + + t_atom atoms[1]; + SETSYM(atoms,gensym(text)); + outlet_anything(self->outlets.back(), gensym("description"), 1, atoms); +} + +//---------------------------------------------------------------------- +static void feapi_getvendor(feapi_t *self) +{ + CFEAPIPluginProxy &plugin = self->plugin; + char text[FEAPI_uiMaxNameLength]; + memset(text,0,FEAPI_uiMaxNameLength); + plugin.GetPluginVendor(text); + + t_atom atoms[1]; + SETSYM(atoms,gensym(text)); + outlet_anything(self->outlets.back(), gensym("vendor"), 1, atoms); +} + +//---------------------------------------------------------------------- +static void feapi_findplugins(feapi_t *self) +{ +} + +//---------------------------------------------------------------------- +static void feapi_getparaminfo(feapi_t *self,int i) +{ + CFEAPIPluginProxy &plugin = self->plugin; + + FEAPI_ParameterDescription_t description; + memset(description.acDescription,0,FEAPI_uiMaxDescriptionLength); + memset(description.acName,0,FEAPI_uiMaxNameLength); + memset(description.acUnit,0,FEAPI_uiMaxUnitLength); + + if(plugin.GetPluginParameterDescription(i,&description) != FEAPI_kNoError) + return; + + t_atom atoms[3]; + SETLONG(atoms,i); + SETSYM(atoms+1,gensym("min")); + SETFLOAT(atoms+2,description.fRangeMin); + outlet_anything(self->outlets.back(), gensym("paraminfo"), 3, atoms); + + SETLONG(atoms,i); + SETSYM(atoms+1,gensym("default")); + SETFLOAT(atoms+2,description.fDefaultValue); + outlet_anything(self->outlets.back(), gensym("paraminfo"), 3, atoms); + + SETLONG(atoms,i); + SETSYM(atoms+1,gensym("max")); + SETFLOAT(atoms+2,description.fRangeMax); + outlet_anything(self->outlets.back(), gensym("paraminfo"), 3, atoms); + + SETLONG(atoms,i); + SETSYM(atoms+1,gensym("name")); + SETSYM(atoms+2,gensym(description.acName)); + outlet_anything(self->outlets.back(), gensym("paraminfo"), 3, atoms); + + SETLONG(atoms,i); + SETSYM(atoms+1,gensym("unit")); + SETSYM(atoms+2,gensym(description.acUnit)); + outlet_anything(self->outlets.back(), gensym("paraminfo"), 3, atoms); + + + SETLONG(atoms,i); + SETSYM(atoms+1,gensym("description")); + SETSYM(atoms+2,gensym(description.acDescription)); + outlet_anything(self->outlets.back(), gensym("paraminfo"), 3, atoms); +} + +//---------------------------------------------------------------------- +static void feapi_getresultinfo(feapi_t *self,int i) +{ + CFEAPIPluginProxy &plugin = self->plugin; + + FEAPI_SignalDescription_t description; + memset(description.acDescription,0,FEAPI_uiMaxDescriptionLength); + memset(description.acName,0,FEAPI_uiMaxNameLength); + memset(description.acUnit,0,FEAPI_uiMaxUnitLength); + + if(plugin.GetPluginResultDescription(i,&description) != FEAPI_kNoError) + return; + + t_atom atoms[3]; + + SETLONG(atoms,i); + SETSYM(atoms+1,gensym("samplerate")); + SETFLOAT(atoms+2,description.fSampleRate); + outlet_anything(self->outlets.back(), gensym("resultinfo"), 3, atoms); + + SETLONG(atoms,i); + SETSYM(atoms+1,gensym("min")); + SETFLOAT(atoms+2,description.fRangeMin); + outlet_anything(self->outlets.back(), gensym("resultinfo"), 3, atoms); + + SETLONG(atoms,i); + SETSYM(atoms+1,gensym("max")); + SETFLOAT(atoms+2,description.fRangeMax); + outlet_anything(self->outlets.back(), gensym("resultinfo"), 3, atoms); + + SETLONG(atoms,i); + SETSYM(atoms+1,gensym("name")); + SETSYM(atoms+2,gensym(description.acName)); + outlet_anything(self->outlets.back(), gensym("resultinfo"), 3, atoms); + + SETLONG(atoms,i); + SETSYM(atoms+1,gensym("unit")); + SETSYM(atoms+2,gensym(description.acUnit)); + outlet_anything(self->outlets.back(), gensym("resultinfo"), 3, atoms); + + SETLONG(atoms,i); + SETSYM(atoms+1,gensym("description")); + SETSYM(atoms+2,gensym(description.acDescription)); + outlet_anything(self->outlets.back(), gensym("resultinfo"), 3, atoms); +} + +//---------------------------------------------------------------------- +static void feapi_getparam(feapi_t *self,int i) +{ + CFEAPIPluginProxy &plugin = self->plugin; + + float x = plugin.GetPluginParameter(i); + post("%f",x); + t_atom atoms[2]; + + SETLONG(atoms,i); + SETFLOAT(atoms+1,x); + outlet_anything(self->outlets.back(), gensym("param"), 2, atoms); +} + +//---------------------------------------------------------------------- +static void feapi_setparam(feapi_t *self,int i,float x) +{ + CFEAPIPluginProxy &plugin = self->plugin; + + // se should verify that the parameter is realtime or not + // and maybe scan for possible IO change. + // however max cannot resize the number of IO dynamically without user action. + + if(plugin.SetPluginParameter(i,x) == FEAPI_kNoError) + return; + else + return; +} + +//---------------------------------------------------------------------- +static void feapi_getnumparams(feapi_t *self) +{ + CFEAPIPluginProxy &plugin = self->plugin; + + long x = plugin.GetPluginNumOfParameters(); + t_atom atoms[1]; + + SETLONG(atoms,x); + outlet_anything(self->outlets.back(), gensym("numparams"), 1, atoms); +} + +//---------------------------------------------------------------------- +static void feapi_trigger(feapi_t *self) +{ +} + +//---------------------------------------------------------------------- +static void feapi_output(feapi_t *self) +{ + /* + int i; + + outlet_float(self->outlet2, self->quality); + outlet_float(self->outlet1, self->power); + outlet_float(self->outlet0, self->pitch); + */ +} + +//---------------------------------------------------------------------- +static void feapi_version(t_object *o, Symbol *s, short ac, Atom *at) +{ + post("feapi~ (Feature Extraction API host), version %s", "0.1"); + post(" by Remy Muller"); + post(" Copyright \xA9 2006 IRCAM - Centre Pompidou"); +} + +//---------------------------------------------------------------------- +static void feapi_print(feapi_t *self) +{ + post("feapi~"); +} + +static void loadplugin(feapi_t *self,const char *filename) +{ + CFEAPIPluginProxy &plugin = self->plugin; + + if(plugin.Load(filename) != FEAPI_kNoError) + throw std::runtime_error(string("can't load feapi plugin ")+string(filename)); + + int major = plugin.GetPluginAPIVersion(FEAPI_kMajorVersion); + int minor = plugin.GetPluginAPIVersion(FEAPI_kMinorVersion); + int build = plugin.GetPluginAPIVersion(FEAPI_kSubVersion); +#ifdef NDEBUG + post("FEAPI version %d.%d.%d",major,minor,build); +#endif + + if(plugin.Create() != FEAPI_kNoError) + throw std::runtime_error("can't instantiate feapi plugin"); + + char name[FEAPI_uiMaxNameLength]; + memset(name,0,FEAPI_uiMaxNameLength); + plugin.GetPluginName(name); +#ifdef NDEBUG + post(name); +#endif + float sr = sys_getsr(); + self->sr = sr; + + if(plugin.InitializePlugin(sr,self->numinputs,HOST_API_MAJOR_VERSION,NULL) != FEAPI_kNoError) + throw std::runtime_error("can't initialize feapi plugin"); + + self->numoutputs = plugin.GetPluginNumOfResults(); + self->numparameters = plugin.GetPluginNumOfParameters(); + + int minchannels = plugin.GetPluginProperty(FEAPI_kMinChannels); + int maxchannels = plugin.GetPluginProperty(FEAPI_kMaxChannels); + self->numinputs = std::max(std::min(self->numinputs,maxchannels),minchannels); + + self->results.resize(plugin.GetPluginNumOfResults()); + for(int i=0; i<plugin.GetPluginNumOfResults(); ++i) + self->results[i].reserve(64); // that should be enough to not allocate memory during processing +} + +/*************************************************************** +* +* class +* +*/ +static void *feapi_new(Symbol *s, short ac, Atom *at) +{ + feapi_t *self = (feapi_t *)newobject(feapi_class); +#ifdef WIN32 + string filename = "C:\\Program Files\\Fichiers communs\\Cycling '74\\externals\\feapi\\"; +#elif MAC + string filename = getenv("HOME"); + filename += "/Library/Audio/Plug-Ins/FEAPI/"; +#else + string filename = ""; +#endif + + self->numinputs = 1; + self->numoutputs = 0; + + switch(ac) + { + case 2: + if( at[1].a_type == A_LONG) + self->numinputs = at[1].a_w.w_long; + case 1: + if( at[0].a_type == A_SYM) + { + char * suffix= at[0].a_w.w_sym->s_name; + filename += suffix; + break; + } + default: + filename += "FindAbsoluteMax"; + break; + } + +#ifdef WIN32 + filename += ".dll"; +#elif MAC + filename += ".bundle"; +#else + // TODO: +#endif + + try + { + loadplugin(self,filename.c_str()); + } + catch(std::exception &e) + { + post(const_cast<char *>(e.what())); + return NULL; + } + + // DSP setup & inlets + dsp_setup((t_pxobject *)self, self->numinputs); + + // outlets + self->outlets.resize(self->numoutputs+1); + + self->outlets[self->numoutputs] = outlet_new((t_pxobject *)self,0L); // lastout for getting infos + + //for each outlet in reverse order + for(int i=self->numoutputs; i>0; i--) + { + self->outlets[i-1] = outlet_new((t_pxobject *)self,0L); // we'll be sending lists or float + } + + self->clock = clock_new(self,(method)feapi_output); + + return self; +} + +//---------------------------------------------------------------------- +static void feapi_free(feapi_t *self) +{ + freeobject((t_object *)self->clock); + + dsp_free((t_pxobject *)self); +} + +//---------------------------------------------------------------------- +void feapi_assist (feapi_t *self, void *box, long msg,long arg, char *dst) +{ + long maxsize = 64; + //long size = FEAPI_uiMaxNameLength; // max crashes with 1024 + + if (msg==ASSIST_INLET) + { + FEAPI_SignalDescription_t description; + self->plugin.GetPluginInputDescription(arg,&description); + strncpy(dst,description.acName,maxsize); + } + else if (msg==ASSIST_OUTLET) + { + FEAPI_SignalDescription_t description; + self->plugin.GetPluginResultDescription(arg,&description); + strncpy(dst,description.acName,maxsize); + } +} + +//---------------------------------------------------------------------- +int main(void) +{ + setup((t_messlist **)&feapi_class, (method)feapi_new, (method)feapi_free, (short)sizeof(feapi_t), 0, A_GIMME, 0); + + addmess((method)feapi_dsp, "dsp", A_CANT, 0); + + addmess((method)feapi_print, "print", 0); + addmess((method)feapi_version, "version", 0); + + // setter + addmess((method)feapi_setparam, "setparam", A_LONG, A_FLOAT,0); + + //getter + addmess((method)feapi_getparam, "getparam", A_LONG,0); + addmess((method)feapi_getparaminfo, "getparaminfo", A_LONG,0); + addmess((method)feapi_getresultinfo,"getresultinfo",A_LONG,0); + + addmess((method)feapi_getname, "getname", 0); + addmess((method)feapi_getid, "getid", 0); + addmess((method)feapi_getcopyright, "getcopyright", 0); + addmess((method)feapi_getdescription, "getdescription", 0); + addmess((method)feapi_getnumparams, "getnumparams", 0); + addmess((method)feapi_getvendor, "getvendor", 0); + + // methods + addmess((method)feapi_trigger, "bang", 0); + addmess((method)feapi_findplugins, "findplugins", 0); + addmess ((method)feapi_assist, "assist", A_CANT,0); + + dsp_initclass(); + + feapi_version(0, 0, 0, 0); +} Added: trunk/FEAPI/examples/plugin/FEAPIExamplePluginFindRms/FEAPIExamplePluginFindRms.cpp =================================================================== --- trunk/FEAPI/examples/plugin/FEAPIExamplePluginFindRms/FEAPIExamplePluginFindRms.cpp (rev 0) +++ trunk/FEAPI/examples/plugin/FEAPIExamplePluginFindRms/FEAPIExamplePluginFindRms.cpp 2006-03-08 17:26:50 UTC (rev 57) @@ -0,0 +1,342 @@ +//////////////////////////////////////////////////////////////////////////////////// +// /*! \file FEAPIExamplePluginFindMax.cpp: \brief implementation of the CFindAbsoluteMax class. */ +// +// Copyright (c) 2004-2005, Alexander Lerch, zplane.development GbR +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must link to the feapi website +// http://www.sf.net/projects/feapi, +// reproduce this list of conditions and the following +// disclaimer in the documentation and/or other materials +// provided with the distribution. +// * The name of the contributors to this software must not be used +// to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +// +//////////////////////////////////////////////////////////////////////////////////// +// CVS INFORMATION +// +// $RCSfile$ +// $Author: remymuller $ +// $Date: 2006-01-19 13:22:21 +0100 (do, 19 jan 2006) $ +// +// $Log$ +// Revision 1.1.2.1 2006/01/19 12:22:21 remymuller +// moved example into examples folder +// +// +//////////////////////////////////////////////////////////////////////////////////// + +#include <string> +#include <iostream> +#include <math.h> +#include <cstdlib> + +#include "FEAPI.h" +#include "FEAPIExamplePluginFindRms.h" + +#ifndef FLT_MAX +#define FLT_MAX 3.402823466e+38F +#endif + +// defines for plug in name etc. +#define _MY_PLUGIN_NAME "RmsFind" +#define _MY_PLUGIN_VENDOR "remy muller" +#define _MY_PLUGIN_DESCRIPTION "This PlugIn searches each input audio data block for its RMS value per channel" +#define _MY_PLUGIN_COPYRIGHT "(c) 2006 by remy muller" +#define _MY_PLUGIN_ID "RmsFindId" +#define _MY_NUM_PARAMETERS 0 // no parameters to adjust here.... + +// defines for description of result +#define _FEATURE_NAME "Rms Value" +#define _FEATURE_UNIT "dBFS" +#define _FEATURE_DESCRIPTION "The rms value of channel: %d per input block" +#define _FEATURE_RANGE_MIN -740 +#define _FEATURE_RANGE_MAX 0.0F +#define _FEATURE_QUANTIZED -1 // value is not quantized +#define _FEATURE_SAMPLERATE -1 // output sample rate equals input block length + + +CFindAbsoluteRms::CFindAbsoluteRms () : CFeatureExtractBase() +{ + // we have no special setting, so the number of parameters is zero in this case + m_iNumberOfParameters = _MY_NUM_PARAMETERS; + + // set of strings that will be returned by the default methods + m_cPluginName = _MY_PLUGIN_NAME; + m_cPluginVendor = _MY_PLUGIN_VENDOR; + m_cPluginDescription = _MY_PLUGIN_DESCRIPTION; + m_cPluginId = _MY_PLUGIN_ID; + m_cPluginCopyRight = _MY_PLUGIN_COPYRIGHT; + + // set plug in version info + m_iMajorVersion = 0x00000001; + m_iMinorVersion = 0x00000001; + m_iSubVersion = 0x00000000; + + m_pfRmsValue = 0; + m_pbIHaveResults = 0; +} + + +CFindAbsoluteRms::~CFindAbsoluteRms () +{ + // destroy feature vector + if (m_pfRmsValue) + delete [] m_pfRmsValue; + m_pfRmsValue = 0; + + // destroy bool vector + if (m_pbIHaveResults) + delete [] m_pbIHaveResults; + m_pbIHaveResults = 0; +} + + +FEAPI_Error_t CFindAbsoluteRms::InitializePlugin (float fInputSampleRate, + int iNumberOfAudioChannels, + int iHostApiMajorVersion, + FEAPI_UserData_t *pstUserData) +{ + CFeatureExtractBase::InitializePlugin ( fInputSampleRate, + iNumberOfAudioChannels, + iHostApiMajorVersion, + pstUserData); + + // note that in this special case, the number of results equals the number of channels, + // so we have to allocate it here: + m_iNumberOfResults = m_iNumberOfChannels; + + // allocate one dimensional result/feature vector + if (m_pfRmsValue) + delete m_pfRmsValue; + m_pfRmsValue = new float [m_iNumberOfResults]; + + // allocate one dimensional result/feature vector + if (m_pbIHaveResults) + delete m_pbIHaveResults; + m_pbIHaveResults = new bool [m_iNumberOfResults]; + + // initialize bool vector + for (int i = 0; i < m_iNumberOfResults; i++) + m_pbIHaveResults[i] = false; + + return FEAPI_kNoError; +} + + +FEAPI_Error_t CFindAbsoluteRms::GetPluginResultDescription (int iResultIndex, FEAPI_SignalDescription_t *pstResultDescription) +{ + // the description is for all results identical in this case + // only the channel number changes (channel number equals feature number for this plugin) + + if (iResultIndex >= m_iNumberOfResults) + return FEAPI_kUnspecifiedError; + + strcpy(pstResultDescription->acName, _FEATURE_NAME); + strcpy(pstResultDescription->acUnit, _FEATURE_UNIT); + sprintf(pstResultDescription->acDescription, _FEATURE_DESCRIPTION, iResultIndex); + pstResultDescription->fRangeMin = _FEATURE_RANGE_MIN; + pstResultDescription->fRangeMax = _FEATURE_RANGE_MAX; + pstResultDescription->fQuantizedTo = _FEATURE_QUANTIZED; + pstResultDescription->fSampleRate = _FEATURE_SAMPLERATE; + + return FEAPI_kNoError; +} + + +FEAPI_Error_t CFindAbsoluteRms::GetPluginInputDescription (int iInputIndex, FEAPI_SignalDescription_t *pstInputDescription) +{ + // the description is for all inputs identical in this case + // only the channel number changes (channel number equals feature number for this plugin) + + if (iInputIndex >= m_iNumberOfChannels) + return FEAPI_kUnspecifiedError; + + std::string tmp = "Channel: "; + char actmp[100] ; + //tmp.append (itoa(iInputIndex,actmp,10)); //itoa is not standard + sprintf(actmp,"%d",iInputIndex); + tmp.append(actmp); + tmp.copy (pstInputDescription->acName, FEAPI_uiMaxNameLength); + + tmp.erase (0, tmp.length ()); + tmp.copy (pstInputDescription->acUnit, FEAPI_uiMaxNameLength); + + tmp.erase (0, tmp.length ()); + strcpy (pstInputDescription->acDescription, pstInputDescription->acName); + + pstInputDescription->fRangeMin = -1; + pstInputDescription->fRangeMax = 1; + pstInputDescription->fQuantizedTo = -1; + pstInputDescription->fSampleRate = m_fSampleRate; + + return FEAPI_kNoError; +} + + +FEAPI_Error_t CFindAbsoluteRms::GetPluginParameterDescription (int iParameterIndex, FEAPI_ParameterDescription_t *pstParameterDescription) +{ + // we don't have any parameters in this plugin + return FEAPI_kUnknownError; +} + + +FEAPI_Error_t CFindAbsoluteRms::SetPluginParameter (int iParameterIndex, float fValue) +{ + // we don't have any parameters in this plugin + return FEAPI_kUnknownError; +} + + +float CFindAbsoluteRms::GetPluginParameter (int iParameterIndex) +{ + // we don't have any parameters in this plugin + return -1; +} + + +int CFindAbsoluteRms::GetPluginResultLatency (int iResultIndex) +{ + return 0; +} + + +FEAPI_Error_t CFindAbsoluteRms::ProcessPluginDone () +{ + // we don't have to do anything special here + return FEAPI_kNoError; +} + +FEAPI_Error_t CFindAbsoluteRms::ProcessPlugin (const float **ppfInputBuffer, const FEAPI_TimeStamp_t *ptTimeStamps, int iNumberOfFrames) +{ + if (!m_bIsInitialized) + return FEAPI_kUnspecifiedError; + + for (int iCh = 0; iCh < m_iNumberOfChannels; ++iCh) + { + m_pfRmsValue[iCh] = 0.0F; + float rms = 0.f; + for (int iIdx = 0; iIdx < iNumberOfFrames; ++iIdx) + { + const float x = ppfInputBuffer[iCh][iIdx]; + rms += x*x; + } + m_pfRmsValue[iCh] = sqrt(rms/float(iNumberOfFrames)); + m_pbIHaveResults[iCh] = true; + } + + return FEAPI_kNoError; +} + +int CFindAbsoluteRms::GetPluginSizeOfResult (int iResultIndex) +{ + if (iResultIndex >= m_iNumberOfResults) + return -1; + + if (m_pbIHaveResults[iResultIndex]) + return (sizeof(m_pfRmsValue[iResultIndex])/sizeof(float)); + else + return 0; +} + + +FEAPI_Error_t CFindAbsoluteRms::GetPluginResult (int iResultIndex, float *pfResult, FEAPI_TimeStamp_t *ptTimeStamp) +{ + if ((iResultIndex >= m_iNumberOfResults) || (!m_pbIHaveResults[iResultIndex])) + return FEAPI_kUnknownError; + + if (m_pfRmsValue[iResultIndex] < 1e-37) + m_pfRmsValue[iResultIndex] = 1e-37F; + *pfResult = 20*logf(m_pfRmsValue[iResultIndex])/logf(10.0F); + + m_pbIHaveResults[iResultIndex] = false; + + return FEAPI_kNoError; +} + + +FEAPI_Error_t CFindAbsoluteRms::ResetPlugin () +{ + for (int i = 0; i < m_iNumberOfResults; i++) + m_pfRmsValue[i] = 0.0F; + + return FEAPI_kNoError; +} + + +float CFindAbsoluteRms::GetPluginProperty ( FEAPI_PluginProperty_t ePluginProperty) +{ + switch (ePluginProperty) + { + case FEAPI_kMinSampleRate: + { + return 1; + } + case FEAPI_kMaxSampleRate: + { + return 1e38F; + } + case FEAPI_kMinChannels: + { + return 1; + } + case FEAPI_kMaxChannels: + { + return (1<<30)-1; + } + case FEAPI_kMinFrameSize: + { + return 1; + } + case FEAPI_kMaxFrameSize: + { + return (1<<30)-1; + } + case FEAPI_kOptFrameSize: + { + return (int)(0.01F * m_fSampleRate + .5F); + } + default: + { + // this shall never happen ... + return -1; + } + } + return -1; +} + +/////////////////////////////////////// +// entry points +#include "FEAPIEntryPoints.h" + +#ifdef __cplusplus +extern "C" { +#endif + +FEAPI_ENTRY_POINTS(CFindAbsoluteRms) + +#ifdef __cplusplus +} +#endif +/////////////////////////////////////// + Added: trunk/FEAPI/examples/plugin/FEAPIExamplePluginFindRms/FEAPIExamplePluginFindRms.h =================================================================== --- trunk/FEAPI/examples/plugin/FEAPIExamplePluginFindRms/FEAPIExamplePluginFindRms.h (rev 0) +++ trunk/FEAPI/examples/plugin/FEAPIExamplePluginFindRms/FEAPIExamplePluginFindRms.h 2006-03-08 17:26:50 UTC (rev 57) @@ -0,0 +1,131 @@ +//////////////////////////////////////////////////////////////////////////////////// +// /*! \file FEAPIExamplePluginFindMax.h: \brief interface of the CFindAbsoluteMax class. */ +// +// Copyright (c) 2004-2005, Alexander Lerch, zplane.development GbR +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must link to the feapi website +// http://www.sf.net/projects/feapi, +// reproduce this list of conditions and the following +// disclaimer in the documentation and/or other materials +// provided with the distribution. +// * The name of the contributors to this software must not be used +// to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +// +//////////////////////////////////////////////////////////////////////////////////// +// CVS INFORMATION +// +// $RCSfile$ +// $Author: remymuller $ +// $Date: 2006-01-19 13:22:21 +0100 (do, 19 jan 2006) $ +// +// $Log$ +// Revision 1.1.2.1 2006/01/19 12:22:21 remymuller +// moved example into examples folder +// +// +//////////////////////////////////////////////////////////////////////////////////// + +#if !defined(FIND_RMS_HEADER_INCLUDED__) +#define FIND_RMS_HEADER_INCLUDED__ + + +#include "FEAPIPluginBase.h" + +/*! +the class ::CFindAbsoluteMax is an example class to demonstrate how to implement +a plug-in for the Feature Extraction API. The functionality of this plug-in is to find +the absolute maximum value per audio channel for each input block and return the two +results in dBFS. + +*/ +class CFindAbsoluteRms : public CFeatureExtractBase +{ +public: + + CFindAbsoluteRms (); + + virtual ~CFindAbsoluteRms (); + + + //////////////////////////////////////////////////////////////////////////////////////// + // method declaration + // if you do not intend to use some of these functions, just delete them and the default + // values will be returned + + FEAPI_Error_t GetPluginResultDescription ( int iResultIndex, + FEAPI_SignalDescription_t *pstResultDescription); + + FEAPI_Error_t GetPluginInputDescription ( int iInputIndex, + FEAPI_SignalDescription_t *pstInputDescription); + + FEAPI_Error_t GetPluginParameterDescription ( int iParameterIndex, + FEAPI_ParameterDescription_t *pstParameterDescription); + + FEAPI_Error_t SetPluginParameter ( int iParameterIndex, + float fValue); + + float GetPluginParameter ( int iParameterIndex); + + + int GetPluginResultLatency (int iResultIndex); + + float GetPluginProperty ( FEAPI_PluginProperty_t ePluginProperty); + + FEAPI_Error_t InitializePlugin ( float fInputSampleRate, + int iNumberOfAudioChannels, + int iHostApiMajorVersion, + FEAPI_UserData_t *pstUserData); + + FEAPI_Error_t ProcessPlugin ( const float **ppfInputBuffer, + const FEAPI_TimeStamp_t *ptFEAPI_TimeStamp, + int iNumberOfFrames); + + FEAPI_Error_t ProcessPluginDone (); + + + int GetPluginSizeOfResult (int iResultIndex); + + FEAPI_Error_t GetPluginResult ( int iResultIndex, + float *pfResult, + FEAPI_TimeStamp_t *ptFEAPI_TimeStamp); + + FEAPI_Error_t ResetPlugin (); + +private: + + // remove and add variables acc. your needs + FEAPI_SignalDescription_t m_stResultDescription; + + // this buffer will contain the maximum value per call + float *m_pfRmsValue; + + // this bool will signal if a result is available + bool *m_pbIHaveResults; + +}; + +#endif // #if !defined(FIND_ABSOLUTE_MAX_HEADER_INCLUDED__) + + + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fea...@li...> - 2006-03-08 14:00:15
|
Revision: 56 Author: KoenTanghe Date: 2006-03-08 05:59:10 -0800 (Wed, 08 Mar 2006) ViewCVS: http://svn.sourceforge.net/feapi/?rev=56&view=rev Log Message: ----------- Merge of Experimental branch into trunk. Had to do some manual work, as SVN gave some very strange error messages.... Latest revision before this merge/commit was 55. Modified Paths: -------------- trunk/FEAPI/build/Mac/ExamplePluginFindMax/ExamplePluginFindMax.xcodeproj/project.pbxproj trunk/FEAPI/build/Mac/FEAPIHost_C/FEAPIHost_C.xcodeproj/project.pbxproj trunk/FEAPI/build/Win/FEAPI.dsw trunk/FEAPI/build/Win/FEAPI.sln trunk/FEAPI/build/Win/FEAPIHost_C/FEAPITestCL.dsp trunk/FEAPI/build/Win/FEAPIHost_C/FEAPITestCL.vcproj trunk/FEAPI/examples/plugin/FEAPIExamplePluginFindMax/FEAPIExamplePluginFindMax.cpp trunk/FEAPI/examples/plugin/FEAPIExamplePluginFindMax/FEAPIExamplePluginFindMax.h trunk/FEAPI/include/FEAPI.h trunk/FEAPI/sdk/plugin/include/FEAPIPluginBase.h trunk/FEAPI/sdk/plugin/src/FEAPIPluginBase.cpp Added Paths: ----------- trunk/FEAPI/build/Mac/ExamplePluginFindRms/ trunk/FEAPI/build/Mac/ExamplePluginFindRms/English.lproj/ trunk/FEAPI/build/Mac/ExamplePluginFindRms/English.lproj/InfoPlist.strings trunk/FEAPI/build/Mac/ExamplePluginFindRms/ExamplePluginFindRms.xcodeproj/ trunk/FEAPI/build/Mac/ExamplePluginFindRms/ExamplePluginFindRms.xcodeproj/project.pbxproj trunk/FEAPI/build/Mac/ExamplePluginFindRms/Info.plist trunk/FEAPI/build/Mac/FEAPI_MaxMSP_Host/ trunk/FEAPI/build/Mac/FEAPI_MaxMSP_Host/English.lproj/ trunk/FEAPI/build/Mac/FEAPI_MaxMSP_Host/English.lproj/InfoPlist.strings trunk/FEAPI/build/Mac/FEAPI_MaxMSP_Host/Info.plist trunk/FEAPI/build/Mac/FEAPI_MaxMSP_Host/feapi~.xcodeproj/ trunk/FEAPI/build/Mac/FEAPI_MaxMSP_Host/feapi~.xcodeproj/project.pbxproj trunk/FEAPI/build/Win/ExamplePluginFindMax/ trunk/FEAPI/build/Win/ExamplePluginFindMax/ExamplePluginFindMax.def trunk/FEAPI/build/Win/ExamplePluginFindMax/ExamplePluginFindMax.dsp trunk/FEAPI/build/Win/ExamplePluginFindMax/ExamplePluginFindMax.vcproj trunk/FEAPI/build/Win/ExamplePluginFindRms/ trunk/FEAPI/build/Win/ExamplePluginFindRms/ExamplePluginFindRms.dsp trunk/FEAPI/build/Win/ExamplePluginFindRms/ExamplePluginFindRms.vcproj trunk/FEAPI/build/Win/ExamplePluginFindRms/FEAPIExamplePluginFindRms.def trunk/FEAPI/build/Win/FEAPI_MaxMSP_Host/ trunk/FEAPI/build/Win/FEAPI_MaxMSP_Host/feapi.def trunk/FEAPI/build/Win/FEAPI_MaxMSP_Host/feapi.vcproj trunk/FEAPI/sdk/host/include/FEAPIHostDeclarations.h trunk/FEAPI/sdk/host/include/FEAPIHostUtils.h trunk/FEAPI/sdk/host/include/FEAPIPluginProxy.h trunk/FEAPI/sdk/host/src/FEAPIHostUtils.cpp trunk/FEAPI/sdk/host/src/FEAPIPluginProxy.cpp trunk/FEAPI/sdk/plugin/include/FEAPIEntryPoints.h Removed Paths: ------------- trunk/FEAPI/build/Mac/ExamplePluginFindRms/English.lproj/ trunk/FEAPI/build/Mac/ExamplePluginFindRms/English.lproj/InfoPlist.strings trunk/FEAPI/build/Mac/ExamplePluginFindRms/ExamplePluginFindRms.xcodeproj/ trunk/FEAPI/build/Mac/ExamplePluginFindRms/ExamplePluginFindRms.xcodeproj/project.pbxproj trunk/FEAPI/build/Mac/ExamplePluginFindRms/Info.plist trunk/FEAPI/build/Mac/FEAPI_MaxMSP_Host/English.lproj/ trunk/FEAPI/build/Mac/FEAPI_MaxMSP_Host/English.lproj/InfoPlist.strings trunk/FEAPI/build/Mac/FEAPI_MaxMSP_Host/Info.plist trunk/FEAPI/build/Mac/FEAPI_MaxMSP_Host/feapi~.xcodeproj/ trunk/FEAPI/build/Mac/FEAPI_MaxMSP_Host/feapi~.xcodeproj/project.pbxproj trunk/FEAPI/build/Win/ExamplePluginFindMax/ExamplePluginFindMax.def trunk/FEAPI/build/Win/ExamplePluginFindMax/ExamplePluginFindMax.dsp trunk/FEAPI/build/Win/ExamplePluginFindMax/ExamplePluginFindMax.vcproj trunk/FEAPI/build/Win/ExamplePluginFindRms/ExamplePluginFindRms.dsp trunk/FEAPI/build/Win/ExamplePluginFindRms/ExamplePluginFindRms.vcproj trunk/FEAPI/build/Win/ExamplePluginFindRms/FEAPIExamplePluginFindRms.def trunk/FEAPI/build/Win/FEAPI_MaxMSP_Host/feapi.def trunk/FEAPI/build/Win/FEAPI_MaxMSP_Host/feapi.vcproj trunk/FEAPI/sdk/plugin/src/FEAPI.cpp trunk/FEAPI/sdk/plugin/src/FEAPI.def Modified: trunk/FEAPI/build/Mac/ExamplePluginFindMax/ExamplePluginFindMax.xcodeproj/project.pbxproj =================================================================== --- trunk/FEAPI/build/Mac/ExamplePluginFindMax/ExamplePluginFindMax.xcodeproj/project.pbxproj 2006-03-08 12:19:47 UTC (rev 55) +++ trunk/FEAPI/build/Mac/ExamplePluginFindMax/ExamplePluginFindMax.xcodeproj/project.pbxproj 2006-03-08 13:59:10 UTC (rev 56) @@ -8,7 +8,6 @@ /* Begin PBXBuildFile section */ 45F43028097D371900FAC600 /* FEAPIExamplePluginFindMax.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 45F43027097D371900FAC600 /* FEAPIExamplePluginFindMax.cpp */; }; - 45F4302D097D375300FAC600 /* FEAPI.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 45F4302B097D375300FAC600 /* FEAPI.cpp */; }; 45F4302E097D375300FAC600 /* FEAPIPluginBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 45F4302C097D375300FAC600 /* FEAPIPluginBase.cpp */; }; 8D576314048677EA00EA77CD /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0AA1909FFE8422F4C02AAC07 /* CoreFoundation.framework */; }; 8D5B49A804867FD3000E48DA /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 8D5B49A704867FD3000E48DA /* InfoPlist.strings */; }; @@ -32,12 +31,12 @@ /* Begin PBXFileReference section */ 089C167EFE841241C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; }; 0AA1909FFE8422F4C02AAC07 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = "<absolute>"; }; - 45F43026097D371900FAC600 /* FEAPIExamplePluginFindMax.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = FEAPIExamplePluginFindMax.h; path = ../../../src/FEAPIExamplePluginFindMax/FEAPIExamplePluginFindMax.h; sourceTree = SOURCE_ROOT; }; - 45F43027097D371900FAC600 /* FEAPIExamplePluginFindMax.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = FEAPIExamplePluginFindMax.cpp; path = ../../../src/FEAPIExamplePluginFindMax/FEAPIExamplePluginFindMax.cpp; sourceTree = SOURCE_ROOT; }; - 45F4302A097D373900FAC600 /* FEAPIPluginBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = FEAPIPluginBase.h; path = ../../../src/incl/FEAPIPluginBase.h; sourceTree = SOURCE_ROOT; }; - 45F4302B097D375300FAC600 /* FEAPI.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = FEAPI.cpp; path = ../../../src/FEAPI/FEAPI.cpp; sourceTree = SOURCE_ROOT; }; - 45F4302C097D375300FAC600 /* FEAPIPluginBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = FEAPIPluginBase.cpp; path = ../../../src/FEAPI/FEAPIPluginBase.cpp; sourceTree = SOURCE_ROOT; }; - 45F4302F097D376900FAC600 /* FEAPI.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = FEAPI.h; path = ../../../incl/FEAPI.h; sourceTree = SOURCE_ROOT; }; + 45F43026097D371900FAC600 /* FEAPIExamplePluginFindMax.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = FEAPIExamplePluginFindMax.h; path = ../../../examples/FEAPIExamplePluginFindMax/FEAPIExamplePluginFindMax.h; sourceTree = SOURCE_ROOT; }; + 45F43027097D371900FAC600 /* FEAPIExamplePluginFindMax.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = FEAPIExamplePluginFindMax.cpp; path = ../../../examples/FEAPIExamplePluginFindMax/FEAPIExamplePluginFindMax.cpp; sourceTree = SOURCE_ROOT; }; + 45F4302A097D373900FAC600 /* FEAPIPluginBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = FEAPIPluginBase.h; path = ../../../sdk/include/FEAPIPluginBase.h; sourceTree = SOURCE_ROOT; }; + 45F4302C097D375300FAC600 /* FEAPIPluginBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = FEAPIPluginBase.cpp; path = ../../../sdk/src/FEAPIPluginBase.cpp; sourceTree = SOURCE_ROOT; }; + 45F4302F097D376900FAC600 /* FEAPI.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = FEAPI.h; path = ../../../include/FEAPI.h; sourceTree = SOURCE_ROOT; }; + 45F4330E097FDECF00FAC600 /* FEAPIEntryPoints.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = FEAPIEntryPoints.h; path = ../../../sdk/include/FEAPIEntryPoints.h; sourceTree = SOURCE_ROOT; }; 8D576316048677EA00EA77CD /* FindAbsoluteMax.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = FindAbsoluteMax.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; 8D576317048677EA00EA77CD /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; }; /* End PBXFileReference section */ @@ -85,8 +84,8 @@ 08FB77AFFE84173DC02AAC07 /* Source */ = { isa = PBXGroup; children = ( + 45F4330E097FDECF00FAC600 /* FEAPIEntryPoints.h */, 45F4302F097D376900FAC600 /* FEAPI.h */, - 45F4302B097D375300FAC600 /* FEAPI.cpp */, 45F4302C097D375300FAC600 /* FEAPIPluginBase.cpp */, 45F4302A097D373900FAC600 /* FEAPIPluginBase.h */, 45F43026097D371900FAC600 /* FEAPIExamplePluginFindMax.h */, @@ -181,7 +180,6 @@ buildActionMask = 2147483647; files = ( 45F43028097D371900FAC600 /* FEAPIExamplePluginFindMax.cpp in Sources */, - 45F4302D097D375300FAC600 /* FEAPI.cpp in Sources */, 45F4302E097D375300FAC600 /* FEAPIPluginBase.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -210,10 +208,10 @@ GCC_OPTIMIZATION_LEVEL = 0; GENERATE_PKGINFO_FILE = NO; HEADER_SEARCH_PATHS = ( - ../../incl/, + ../../include/, "$(HEADER_SEARCH_PATHS)", - ../../src/incl, - ../../src/FEAPIExamplePluginFindMax, + ../../sdk/include, + ../../examples/FEAPIExamplePluginFindMax, ); INFOPLIST_FILE = Info.plist; INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/FEAPI"; @@ -234,10 +232,10 @@ GCC_MODEL_TUNING = G5; GENERATE_PKGINFO_FILE = NO; HEADER_SEARCH_PATHS = ( - ../../incl/, + ../../include/, "$(HEADER_SEARCH_PATHS)", - ../../src/incl, - ../../src/FEAPIExamplePluginFindMax, + ../../sdk/include, + ../../examples/FEAPIExamplePluginFindMax, ); INFOPLIST_FILE = Info.plist; INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/FEAPI"; Copied: trunk/FEAPI/build/Mac/ExamplePluginFindRms (from rev 55, branches/Experimental/FEAPI/build/Mac/ExamplePluginFindRms) Copied: trunk/FEAPI/build/Mac/ExamplePluginFindRms/English.lproj (from rev 55, branches/Experimental/FEAPI/build/Mac/ExamplePluginFindRms/English.lproj) Deleted: trunk/FEAPI/build/Mac/ExamplePluginFindRms/English.lproj/InfoPlist.strings =================================================================== --- branches/Experimental/FEAPI/build/Mac/ExamplePluginFindRms/English.lproj/InfoPlist.strings 2006-03-08 12:19:47 UTC (rev 55) +++ trunk/FEAPI/build/Mac/ExamplePluginFindRms/English.lproj/InfoPlist.strings 2006-03-08 13:59:10 UTC (rev 56) @@ -1,3 +0,0 @@ -\xFE\xFF |
From: <fea...@li...> - 2006-03-08 12:19:55
|
Revision: 55 Author: KoenTanghe Date: 2006-03-08 04:19:47 -0800 (Wed, 08 Mar 2006) ViewCVS: http://svn.sourceforge.net/feapi/?rev=55&view=rev Log Message: ----------- Removed CVSROOT directory and files left over from CVS to SVN migration. Removed Paths: ------------- trunk/CVSROOT/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ale...@us...> - 2006-03-07 15:16:00
|
Revision: 54 Author: alex_lerch Date: 2006-03-07 07:15:20 -0800 (Tue, 07 Mar 2006) ViewCVS: http://svn.sourceforge.net/feapi/?rev=54&view=rev Log Message: ----------- - changed directory structure to fit the structure in trunk for merging (projects etc. are *not* updated yet!) Added Paths: ----------- branches/Experimental/FEAPI/doc/doxyconfigAPI branches/Experimental/FEAPI/doc/doxyconfigHost branches/Experimental/FEAPI/doc/doxyconfigPlug branches/Experimental/FEAPI/examples/host/ branches/Experimental/FEAPI/examples/host/FEAPI_MaxMSP_Host/ branches/Experimental/FEAPI/examples/host/Host_C/ branches/Experimental/FEAPI/examples/plugin/ branches/Experimental/FEAPI/examples/plugin/FEAPIExamplePluginFindMax/ branches/Experimental/FEAPI/examples/plugin/FEAPIExamplePluginFindRms/ branches/Experimental/FEAPI/license.txt branches/Experimental/FEAPI/sdk/host/ branches/Experimental/FEAPI/sdk/host/include/ branches/Experimental/FEAPI/sdk/host/src/ branches/Experimental/FEAPI/sdk/plugin/ branches/Experimental/FEAPI/sdk/plugin/include/ branches/Experimental/FEAPI/sdk/plugin/src/ Removed Paths: ------------- branches/Experimental/FEAPI/doxgen.conf/ branches/Experimental/FEAPI/examples/FEAPIExamplePluginFindMax/ branches/Experimental/FEAPI/examples/FEAPIExamplePluginFindRms/ branches/Experimental/FEAPI/examples/FEAPI_MaxMSP_Host/ branches/Experimental/FEAPI/examples/Host_C/ branches/Experimental/FEAPI/host/ branches/Experimental/FEAPI/license/ branches/Experimental/FEAPI/sdk/include/ branches/Experimental/FEAPI/sdk/src/ Copied: branches/Experimental/FEAPI/doc/doxyconfigAPI (from rev 52, branches/Experimental/FEAPI/doxgen.conf/doxyconfigAPI) =================================================================== --- branches/Experimental/FEAPI/doc/doxyconfigAPI (rev 0) +++ branches/Experimental/FEAPI/doc/doxyconfigAPI 2006-03-07 15:15:20 UTC (rev 54) @@ -0,0 +1,228 @@ +# Doxyfile 1.3.9.1 + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- +PROJECT_NAME = "Feature Extraction API documentation" +PROJECT_NUMBER = +OUTPUT_DIRECTORY = ../doc +CREATE_SUBDIRS = NO +OUTPUT_LANGUAGE = English +USE_WINDOWS_ENCODING = YES +BRIEF_MEMBER_DESC = YES +REPEAT_BRIEF = YES +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the +ALWAYS_DETAILED_SEC = NO +INLINE_INHERITED_MEMB = NO +FULL_PATH_NAMES = NO +STRIP_FROM_PATH = +STRIP_FROM_INC_PATH = +SHORT_NAMES = YES +JAVADOC_AUTOBRIEF = NO +MULTILINE_CPP_IS_BRIEF = YES +DETAILS_AT_TOP = YES +INHERIT_DOCS = YES +DISTRIBUTE_GROUP_DOC = NO +TAB_SIZE = 4 +ALIASES = +OPTIMIZE_OUTPUT_FOR_C = YES +OPTIMIZE_OUTPUT_JAVA = NO +SUBGROUPING = YES +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- +EXTRACT_ALL = YES +EXTRACT_PRIVATE = NO +EXTRACT_STATIC = NO +EXTRACT_LOCAL_CLASSES = YES +EXTRACT_LOCAL_METHODS = NO +HIDE_UNDOC_MEMBERS = YES +HIDE_UNDOC_CLASSES = YES +HIDE_FRIEND_COMPOUNDS = NO +HIDE_IN_BODY_DOCS = NO +INTERNAL_DOCS = NO +CASE_SENSE_NAMES = YES +HIDE_SCOPE_NAMES = NO +SHOW_INCLUDE_FILES = YES +INLINE_INFO = YES +SORT_MEMBER_DOCS = YES +SORT_BRIEF_DOCS = NO +SORT_BY_SCOPE_NAME = NO +GENERATE_TODOLIST = YES +GENERATE_TESTLIST = NO +GENERATE_BUGLIST = NO +GENERATE_DEPRECATEDLIST= YES +ENABLED_SECTIONS = +MAX_INITIALIZER_LINES = 30 +SHOW_USED_FILES = YES +SHOW_DIRECTORIES = YES +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- +QUIET = NO +WARNINGS = YES +WARN_IF_UNDOCUMENTED = NO +WARN_IF_DOC_ERROR = YES +WARN_FORMAT = "$file:$line: $text" +WARN_LOGFILE = warn.log +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- +INPUT = ../incl/FEAPI.h \ + ../doc/docugenAPI.txt +FILE_PATTERNS = *.h \ + *.hpp \ + *.txt \ + *.cpp +RECURSIVE = NO +EXCLUDE = +EXCLUDE_SYMLINKS = NO +EXCLUDE_PATTERNS = +EXAMPLE_PATH = +EXAMPLE_PATTERNS = +EXAMPLE_RECURSIVE = NO +IMAGE_PATH = +INPUT_FILTER = +FILTER_PATTERNS = +FILTER_SOURCE_FILES = NO +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- +SOURCE_BROWSER = YES +INLINE_SOURCES = NO +STRIP_CODE_COMMENTS = YES +REFERENCED_BY_RELATION = YES +REFERENCES_RELATION = YES +VERBATIM_HEADERS = YES +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- +ALPHABETICAL_INDEX = YES +COLS_IN_ALPHA_INDEX = 5 +IGNORE_PREFIX = +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- +GENERATE_HTML = YES +HTML_OUTPUT = html/API +HTML_FILE_EXTENSION = .html +HTML_HEADER = +HTML_FOOTER = +HTML_STYLESHEET = +HTML_ALIGN_MEMBERS = YES +GENERATE_HTMLHELP = YES +CHM_FILE = +HHC_LOCATION = +GENERATE_CHI = NO +BINARY_TOC = NO +TOC_EXPAND = YES +DISABLE_INDEX = NO +ENUM_VALUES_PER_LINE = 4 +GENERATE_TREEVIEW = YES +TREEVIEW_WIDTH = 250 +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- +GENERATE_LATEX = NO +LATEX_OUTPUT = latex/API +LATEX_CMD_NAME = +MAKEINDEX_CMD_NAME = +COMPACT_LATEX = YES +PAPER_TYPE = a4 +EXTRA_PACKAGES = +LATEX_HEADER = +PDF_HYPERLINKS = YES +USE_PDFLATEX = YES +LATEX_BATCHMODE = NO +LATEX_HIDE_INDICES = NO +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- +GENERATE_RTF = NO +RTF_OUTPUT = rtf +COMPACT_RTF = NO +RTF_HYPERLINKS = NO +RTF_STYLESHEET_FILE = +RTF_EXTENSIONS_FILE = +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- +GENERATE_MAN = NO +MAN_OUTPUT = man +MAN_EXTENSION = .3 +MAN_LINKS = NO +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- +GENERATE_XML = NO +XML_OUTPUT = xml +XML_SCHEMA = +XML_DTD = +XML_PROGRAMLISTING = YES +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- +GENERATE_AUTOGEN_DEF = NO +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- +GENERATE_PERLMOD = NO +PERLMOD_LATEX = NO +PERLMOD_PRETTY = YES +PERLMOD_MAKEVAR_PREFIX = +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- +ENABLE_PREPROCESSING = YES +MACRO_EXPANSION = NO +EXPAND_ONLY_PREDEF = NO +SEARCH_INCLUDES = YES +INCLUDE_PATH = +INCLUDE_FILE_PATTERNS = +PREDEFINED = _MSC_VER +EXPAND_AS_DEFINED = +SKIP_FUNCTION_MACROS = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- +TAGFILES = +GENERATE_TAGFILE = +ALLEXTERNALS = NO +EXTERNAL_GROUPS = YES +PERL_PATH = /usr/bin/perl +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- +CLASS_DIAGRAMS = NO +HIDE_UNDOC_RELATIONS = YES +HAVE_DOT = YES +CLASS_GRAPH = YES +COLLABORATION_GRAPH = YES +UML_LOOK = NO +TEMPLATE_RELATIONS = YES +INCLUDE_GRAPH = YES +INCLUDED_BY_GRAPH = YES +CALL_GRAPH = YES +GRAPHICAL_HIERARCHY = YES +DOT_IMAGE_FORMAT = png +DOT_PATH = +DOTFILE_DIRS = +MAX_DOT_GRAPH_WIDTH = 1024 +MAX_DOT_GRAPH_HEIGHT = 1024 +MAX_DOT_GRAPH_DEPTH = 1000 +GENERATE_LEGEND = YES +DOT_CLEANUP = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- +SEARCHENGINE = NO Copied: branches/Experimental/FEAPI/doc/doxyconfigHost (from rev 52, branches/Experimental/FEAPI/doxgen.conf/doxyconfigHost) =================================================================== --- branches/Experimental/FEAPI/doc/doxyconfigHost (rev 0) +++ branches/Experimental/FEAPI/doc/doxyconfigHost 2006-03-07 15:15:20 UTC (rev 54) @@ -0,0 +1,229 @@ +# Doxyfile 1.3.9.1 + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- +PROJECT_NAME = "Feature Extraction Host documentation" +PROJECT_NUMBER = +OUTPUT_DIRECTORY = ../doc +CREATE_SUBDIRS = NO +OUTPUT_LANGUAGE = English +USE_WINDOWS_ENCODING = YES +BRIEF_MEMBER_DESC = YES +REPEAT_BRIEF = YES +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the +ALWAYS_DETAILED_SEC = NO +INLINE_INHERITED_MEMB = NO +FULL_PATH_NAMES = NO +STRIP_FROM_PATH = +STRIP_FROM_INC_PATH = +SHORT_NAMES = YES +JAVADOC_AUTOBRIEF = NO +MULTILINE_CPP_IS_BRIEF = YES +DETAILS_AT_TOP = YES +INHERIT_DOCS = YES +DISTRIBUTE_GROUP_DOC = NO +TAB_SIZE = 4 +ALIASES = +OPTIMIZE_OUTPUT_FOR_C = YES +OPTIMIZE_OUTPUT_JAVA = NO +SUBGROUPING = YES +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- +EXTRACT_ALL = YES +EXTRACT_PRIVATE = NO +EXTRACT_STATIC = YES +EXTRACT_LOCAL_CLASSES = YES +EXTRACT_LOCAL_METHODS = YES +HIDE_UNDOC_MEMBERS = YES +HIDE_UNDOC_CLASSES = YES +HIDE_FRIEND_COMPOUNDS = NO +HIDE_IN_BODY_DOCS = NO +INTERNAL_DOCS = NO +CASE_SENSE_NAMES = YES +HIDE_SCOPE_NAMES = NO +SHOW_INCLUDE_FILES = YES +INLINE_INFO = YES +SORT_MEMBER_DOCS = YES +SORT_BRIEF_DOCS = NO +SORT_BY_SCOPE_NAME = NO +GENERATE_TODOLIST = YES +GENERATE_TESTLIST = NO +GENERATE_BUGLIST = NO +GENERATE_DEPRECATEDLIST= YES +ENABLED_SECTIONS = +MAX_INITIALIZER_LINES = 30 +SHOW_USED_FILES = YES +SHOW_DIRECTORIES = YES +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- +QUIET = NO +WARNINGS = YES +WARN_IF_UNDOCUMENTED = NO +WARN_IF_DOC_ERROR = YES +WARN_FORMAT = "$file:$line: $text" +WARN_LOGFILE = warn.log +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- +INPUT = ../doc/docugenHost.txt \ + ../incl/FEAPI.h \ + ../src/Host_C/FEAPIExampleHost_C.cpp +FILE_PATTERNS = *.h \ + *.hpp \ + *.txt \ + *.cpp +RECURSIVE = NO +EXCLUDE = +EXCLUDE_SYMLINKS = NO +EXCLUDE_PATTERNS = +EXAMPLE_PATH = ../src/Host_C +EXAMPLE_PATTERNS = *.cpp +EXAMPLE_RECURSIVE = NO +IMAGE_PATH = +INPUT_FILTER = +FILTER_PATTERNS = +FILTER_SOURCE_FILES = NO +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- +SOURCE_BROWSER = YES +INLINE_SOURCES = NO +STRIP_CODE_COMMENTS = YES +REFERENCED_BY_RELATION = YES +REFERENCES_RELATION = YES +VERBATIM_HEADERS = YES +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- +ALPHABETICAL_INDEX = YES +COLS_IN_ALPHA_INDEX = 5 +IGNORE_PREFIX = +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- +GENERATE_HTML = YES +HTML_OUTPUT = html/Host +HTML_FILE_EXTENSION = .html +HTML_HEADER = +HTML_FOOTER = +HTML_STYLESHEET = +HTML_ALIGN_MEMBERS = YES +GENERATE_HTMLHELP = YES +CHM_FILE = +HHC_LOCATION = +GENERATE_CHI = NO +BINARY_TOC = NO +TOC_EXPAND = YES +DISABLE_INDEX = NO +ENUM_VALUES_PER_LINE = 4 +GENERATE_TREEVIEW = YES +TREEVIEW_WIDTH = 250 +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- +GENERATE_LATEX = NO +LATEX_OUTPUT = latex/Host +LATEX_CMD_NAME = +MAKEINDEX_CMD_NAME = +COMPACT_LATEX = YES +PAPER_TYPE = a4 +EXTRA_PACKAGES = +LATEX_HEADER = +PDF_HYPERLINKS = YES +USE_PDFLATEX = YES +LATEX_BATCHMODE = NO +LATEX_HIDE_INDICES = NO +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- +GENERATE_RTF = NO +RTF_OUTPUT = rtf +COMPACT_RTF = NO +RTF_HYPERLINKS = NO +RTF_STYLESHEET_FILE = +RTF_EXTENSIONS_FILE = +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- +GENERATE_MAN = NO +MAN_OUTPUT = man +MAN_EXTENSION = .3 +MAN_LINKS = NO +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- +GENERATE_XML = NO +XML_OUTPUT = xml +XML_SCHEMA = +XML_DTD = +XML_PROGRAMLISTING = YES +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- +GENERATE_AUTOGEN_DEF = NO +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- +GENERATE_PERLMOD = NO +PERLMOD_LATEX = NO +PERLMOD_PRETTY = YES +PERLMOD_MAKEVAR_PREFIX = +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- +ENABLE_PREPROCESSING = YES +MACRO_EXPANSION = NO +EXPAND_ONLY_PREDEF = NO +SEARCH_INCLUDES = YES +INCLUDE_PATH = +INCLUDE_FILE_PATTERNS = +PREDEFINED = _MSC_VER +EXPAND_AS_DEFINED = +SKIP_FUNCTION_MACROS = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- +TAGFILES = +GENERATE_TAGFILE = +ALLEXTERNALS = NO +EXTERNAL_GROUPS = YES +PERL_PATH = /usr/bin/perl +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- +CLASS_DIAGRAMS = NO +HIDE_UNDOC_RELATIONS = YES +HAVE_DOT = YES +CLASS_GRAPH = YES +COLLABORATION_GRAPH = YES +UML_LOOK = NO +TEMPLATE_RELATIONS = YES +INCLUDE_GRAPH = YES +INCLUDED_BY_GRAPH = YES +CALL_GRAPH = YES +GRAPHICAL_HIERARCHY = YES +DOT_IMAGE_FORMAT = png +DOT_PATH = +DOTFILE_DIRS = +MAX_DOT_GRAPH_WIDTH = 1024 +MAX_DOT_GRAPH_HEIGHT = 1024 +MAX_DOT_GRAPH_DEPTH = 1000 +GENERATE_LEGEND = YES +DOT_CLEANUP = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- +SEARCHENGINE = NO Copied: branches/Experimental/FEAPI/doc/doxyconfigPlug (from rev 52, branches/Experimental/FEAPI/doxgen.conf/doxyconfigPlug) =================================================================== --- branches/Experimental/FEAPI/doc/doxyconfigPlug (rev 0) +++ branches/Experimental/FEAPI/doc/doxyconfigPlug 2006-03-07 15:15:20 UTC (rev 54) @@ -0,0 +1,234 @@ +# Doxyfile 1.3.9.1 + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- +PROJECT_NAME = "FEAPI Feature Extraction Plugin documentation" +PROJECT_NUMBER = +OUTPUT_DIRECTORY = ../doc +CREATE_SUBDIRS = NO +OUTPUT_LANGUAGE = English +USE_WINDOWS_ENCODING = YES +BRIEF_MEMBER_DESC = YES +REPEAT_BRIEF = YES +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the +ALWAYS_DETAILED_SEC = NO +INLINE_INHERITED_MEMB = NO +FULL_PATH_NAMES = NO +STRIP_FROM_PATH = +STRIP_FROM_INC_PATH = +SHORT_NAMES = YES +JAVADOC_AUTOBRIEF = NO +MULTILINE_CPP_IS_BRIEF = YES +DETAILS_AT_TOP = YES +INHERIT_DOCS = YES +DISTRIBUTE_GROUP_DOC = NO +TAB_SIZE = 4 +ALIASES = "\"_THE_PLUGIN_CLASS=CFindAbsoluteMax\"" \ + CFindAbsoluteMax=_THE_PLUGIN_CLASS +OPTIMIZE_OUTPUT_FOR_C = NO +OPTIMIZE_OUTPUT_JAVA = NO +SUBGROUPING = YES +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- +EXTRACT_ALL = YES +EXTRACT_PRIVATE = NO +EXTRACT_STATIC = NO +EXTRACT_LOCAL_CLASSES = YES +EXTRACT_LOCAL_METHODS = NO +HIDE_UNDOC_MEMBERS = YES +HIDE_UNDOC_CLASSES = YES +HIDE_FRIEND_COMPOUNDS = NO +HIDE_IN_BODY_DOCS = NO +INTERNAL_DOCS = NO +CASE_SENSE_NAMES = YES +HIDE_SCOPE_NAMES = NO +SHOW_INCLUDE_FILES = YES +INLINE_INFO = YES +SORT_MEMBER_DOCS = YES +SORT_BRIEF_DOCS = NO +SORT_BY_SCOPE_NAME = NO +GENERATE_TODOLIST = YES +GENERATE_TESTLIST = NO +GENERATE_BUGLIST = NO +GENERATE_DEPRECATEDLIST= YES +ENABLED_SECTIONS = +MAX_INITIALIZER_LINES = 30 +SHOW_USED_FILES = YES +SHOW_DIRECTORIES = YES +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- +QUIET = NO +WARNINGS = YES +WARN_IF_UNDOCUMENTED = NO +WARN_IF_DOC_ERROR = YES +WARN_FORMAT = "$file:$line: $text" +WARN_LOGFILE = warn.log +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- +INPUT = ../doc/docugenPlug.txt \ + ../src/FEAPIExamplePluginFindMax/FEAPIExamplePluginFindMax.h \ + ../src/FEAPIExamplePluginFindMax/FEAPIExamplePluginFindMax.cpp \ + ../src/FEAPI/FEAPIPluginBase.cpp \ + ../src/incl/FEAPIPluginBase.h \ + ../incl/FEAPI.h \ + ../src/FEAPI/FEAPI.cpp +FILE_PATTERNS = *.h \ + *.hpp \ + *.txt \ + *.cpp +RECURSIVE = NO +EXCLUDE = +EXCLUDE_SYMLINKS = NO +EXCLUDE_PATTERNS = +EXAMPLE_PATH = +EXAMPLE_PATTERNS = +EXAMPLE_RECURSIVE = NO +IMAGE_PATH = +INPUT_FILTER = +FILTER_PATTERNS = +FILTER_SOURCE_FILES = NO +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- +SOURCE_BROWSER = YES +INLINE_SOURCES = NO +STRIP_CODE_COMMENTS = YES +REFERENCED_BY_RELATION = YES +REFERENCES_RELATION = YES +VERBATIM_HEADERS = YES +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- +ALPHABETICAL_INDEX = YES +COLS_IN_ALPHA_INDEX = 5 +IGNORE_PREFIX = +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- +GENERATE_HTML = YES +HTML_OUTPUT = html/Plug +HTML_FILE_EXTENSION = .html +HTML_HEADER = +HTML_FOOTER = +HTML_STYLESHEET = +HTML_ALIGN_MEMBERS = YES +GENERATE_HTMLHELP = YES +CHM_FILE = +HHC_LOCATION = +GENERATE_CHI = NO +BINARY_TOC = NO +TOC_EXPAND = YES +DISABLE_INDEX = NO +ENUM_VALUES_PER_LINE = 4 +GENERATE_TREEVIEW = YES +TREEVIEW_WIDTH = 250 +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- +GENERATE_LATEX = NO +LATEX_OUTPUT = latex/Plug +LATEX_CMD_NAME = +MAKEINDEX_CMD_NAME = +COMPACT_LATEX = YES +PAPER_TYPE = a4 +EXTRA_PACKAGES = +LATEX_HEADER = +PDF_HYPERLINKS = YES +USE_PDFLATEX = YES +LATEX_BATCHMODE = NO +LATEX_HIDE_INDICES = NO +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- +GENERATE_RTF = NO +RTF_OUTPUT = rtf +COMPACT_RTF = NO +RTF_HYPERLINKS = NO +RTF_STYLESHEET_FILE = +RTF_EXTENSIONS_FILE = +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- +GENERATE_MAN = NO +MAN_OUTPUT = man +MAN_EXTENSION = .3 +MAN_LINKS = NO +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- +GENERATE_XML = NO +XML_OUTPUT = xml +XML_SCHEMA = +XML_DTD = +XML_PROGRAMLISTING = YES +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- +GENERATE_AUTOGEN_DEF = NO +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- +GENERATE_PERLMOD = NO +PERLMOD_LATEX = NO +PERLMOD_PRETTY = YES +PERLMOD_MAKEVAR_PREFIX = +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- +ENABLE_PREPROCESSING = YES +MACRO_EXPANSION = NO +EXPAND_ONLY_PREDEF = NO +SEARCH_INCLUDES = YES +INCLUDE_PATH = +INCLUDE_FILE_PATTERNS = +PREDEFINED = _MSC_VER +EXPAND_AS_DEFINED = +SKIP_FUNCTION_MACROS = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- +TAGFILES = +GENERATE_TAGFILE = +ALLEXTERNALS = NO +EXTERNAL_GROUPS = YES +PERL_PATH = /usr/bin/perl +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- +CLASS_DIAGRAMS = NO +HIDE_UNDOC_RELATIONS = YES +HAVE_DOT = YES +CLASS_GRAPH = YES +COLLABORATION_GRAPH = YES +UML_LOOK = NO +TEMPLATE_RELATIONS = YES +INCLUDE_GRAPH = YES +INCLUDED_BY_GRAPH = YES +CALL_GRAPH = YES +GRAPHICAL_HIERARCHY = YES +DOT_IMAGE_FORMAT = png +DOT_PATH = +DOTFILE_DIRS = +MAX_DOT_GRAPH_WIDTH = 1024 +MAX_DOT_GRAPH_HEIGHT = 1024 +MAX_DOT_GRAPH_DEPTH = 1000 +GENERATE_LEGEND = YES +DOT_CLEANUP = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- +SEARCHENGINE = NO Copied: branches/Experimental/FEAPI/examples/host/FEAPI_MaxMSP_Host (from rev 52, branches/Experimental/FEAPI/examples/FEAPI_MaxMSP_Host) Copied: branches/Experimental/FEAPI/examples/host/Host_C (from rev 52, branches/Experimental/FEAPI/examples/Host_C) Copied: branches/Experimental/FEAPI/examples/plugin/FEAPIExamplePluginFindMax (from rev 52, branches/Experimental/FEAPI/examples/FEAPIExamplePluginFindMax) Copied: branches/Experimental/FEAPI/examples/plugin/FEAPIExamplePluginFindRms (from rev 52, branches/Experimental/FEAPI/examples/FEAPIExamplePluginFindRms) Copied: branches/Experimental/FEAPI/license.txt (from rev 52, branches/Experimental/FEAPI/license/license.txt) =================================================================== --- branches/Experimental/FEAPI/license.txt (rev 0) +++ branches/Experimental/FEAPI/license.txt 2006-03-07 15:15:20 UTC (rev 54) @@ -0,0 +1,30 @@ +Copyright (c) 2004-2005, Alexander Lerch, zplane.development GbR +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +* Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +* Redistributions in binary form must link to the feapi website + http://www.sf.net/projects/feapi, + reproduce this list of conditions and the following + disclaimer in the documentation and/or other materials + provided with the distribution. +* The name of the contributors to this software must not be used + to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. Copied: branches/Experimental/FEAPI/sdk/host/include (from rev 52, branches/Experimental/FEAPI/host/include) Copied: branches/Experimental/FEAPI/sdk/host/src (from rev 52, branches/Experimental/FEAPI/host/src) Copied: branches/Experimental/FEAPI/sdk/plugin/include (from rev 52, branches/Experimental/FEAPI/sdk/include) Copied: branches/Experimental/FEAPI/sdk/plugin/src (from rev 52, branches/Experimental/FEAPI/sdk/src) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ale...@us...> - 2006-03-07 15:00:30
|
Revision: 53 Author: alex_lerch Date: 2006-03-07 06:59:42 -0800 (Tue, 07 Mar 2006) ViewCVS: http://svn.sourceforge.net/feapi/?rev=53&view=rev Log Message: ----------- - changed directory structure (projects etc. are *not* updated yet!) Added Paths: ----------- trunk/FEAPI/doc/doxyconfigAPI trunk/FEAPI/doc/doxyconfigHost trunk/FEAPI/doc/doxyconfigPlug trunk/FEAPI/examples/ trunk/FEAPI/examples/host/ trunk/FEAPI/examples/host/Host_C/ trunk/FEAPI/examples/plugin/ trunk/FEAPI/examples/plugin/FEAPIExamplePluginFindMax/ trunk/FEAPI/include/ trunk/FEAPI/license.txt trunk/FEAPI/sdk/ trunk/FEAPI/sdk/host/ trunk/FEAPI/sdk/host/include/ trunk/FEAPI/sdk/host/src/ trunk/FEAPI/sdk/plugin/ trunk/FEAPI/sdk/plugin/include/ trunk/FEAPI/sdk/plugin/include/FEAPIPluginBase.h trunk/FEAPI/sdk/plugin/src/ trunk/FEAPI/sdk/plugin/src/FEAPI.cpp trunk/FEAPI/sdk/plugin/src/FEAPI.def trunk/FEAPI/sdk/plugin/src/FEAPIPluginBase.cpp Removed Paths: ------------- trunk/FEAPI/doxgen.conf/ trunk/FEAPI/incl/ trunk/FEAPI/license/ trunk/FEAPI/src/ Copied: trunk/FEAPI/doc/doxyconfigAPI (from rev 52, trunk/FEAPI/doxgen.conf/doxyconfigAPI) =================================================================== --- trunk/FEAPI/doc/doxyconfigAPI (rev 0) +++ trunk/FEAPI/doc/doxyconfigAPI 2006-03-07 14:59:42 UTC (rev 53) @@ -0,0 +1,228 @@ +# Doxyfile 1.3.9.1 + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- +PROJECT_NAME = "Feature Extraction API documentation" +PROJECT_NUMBER = +OUTPUT_DIRECTORY = ../doc +CREATE_SUBDIRS = NO +OUTPUT_LANGUAGE = English +USE_WINDOWS_ENCODING = YES +BRIEF_MEMBER_DESC = YES +REPEAT_BRIEF = YES +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the +ALWAYS_DETAILED_SEC = NO +INLINE_INHERITED_MEMB = NO +FULL_PATH_NAMES = NO +STRIP_FROM_PATH = +STRIP_FROM_INC_PATH = +SHORT_NAMES = YES +JAVADOC_AUTOBRIEF = NO +MULTILINE_CPP_IS_BRIEF = YES +DETAILS_AT_TOP = YES +INHERIT_DOCS = YES +DISTRIBUTE_GROUP_DOC = NO +TAB_SIZE = 4 +ALIASES = +OPTIMIZE_OUTPUT_FOR_C = YES +OPTIMIZE_OUTPUT_JAVA = NO +SUBGROUPING = YES +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- +EXTRACT_ALL = YES +EXTRACT_PRIVATE = NO +EXTRACT_STATIC = NO +EXTRACT_LOCAL_CLASSES = YES +EXTRACT_LOCAL_METHODS = NO +HIDE_UNDOC_MEMBERS = YES +HIDE_UNDOC_CLASSES = YES +HIDE_FRIEND_COMPOUNDS = NO +HIDE_IN_BODY_DOCS = NO +INTERNAL_DOCS = NO +CASE_SENSE_NAMES = YES +HIDE_SCOPE_NAMES = NO +SHOW_INCLUDE_FILES = YES +INLINE_INFO = YES +SORT_MEMBER_DOCS = YES +SORT_BRIEF_DOCS = NO +SORT_BY_SCOPE_NAME = NO +GENERATE_TODOLIST = YES +GENERATE_TESTLIST = NO +GENERATE_BUGLIST = NO +GENERATE_DEPRECATEDLIST= YES +ENABLED_SECTIONS = +MAX_INITIALIZER_LINES = 30 +SHOW_USED_FILES = YES +SHOW_DIRECTORIES = YES +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- +QUIET = NO +WARNINGS = YES +WARN_IF_UNDOCUMENTED = NO +WARN_IF_DOC_ERROR = YES +WARN_FORMAT = "$file:$line: $text" +WARN_LOGFILE = warn.log +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- +INPUT = ../incl/FEAPI.h \ + ../doc/docugenAPI.txt +FILE_PATTERNS = *.h \ + *.hpp \ + *.txt \ + *.cpp +RECURSIVE = NO +EXCLUDE = +EXCLUDE_SYMLINKS = NO +EXCLUDE_PATTERNS = +EXAMPLE_PATH = +EXAMPLE_PATTERNS = +EXAMPLE_RECURSIVE = NO +IMAGE_PATH = +INPUT_FILTER = +FILTER_PATTERNS = +FILTER_SOURCE_FILES = NO +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- +SOURCE_BROWSER = YES +INLINE_SOURCES = NO +STRIP_CODE_COMMENTS = YES +REFERENCED_BY_RELATION = YES +REFERENCES_RELATION = YES +VERBATIM_HEADERS = YES +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- +ALPHABETICAL_INDEX = YES +COLS_IN_ALPHA_INDEX = 5 +IGNORE_PREFIX = +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- +GENERATE_HTML = YES +HTML_OUTPUT = html/API +HTML_FILE_EXTENSION = .html +HTML_HEADER = +HTML_FOOTER = +HTML_STYLESHEET = +HTML_ALIGN_MEMBERS = YES +GENERATE_HTMLHELP = YES +CHM_FILE = +HHC_LOCATION = +GENERATE_CHI = NO +BINARY_TOC = NO +TOC_EXPAND = YES +DISABLE_INDEX = NO +ENUM_VALUES_PER_LINE = 4 +GENERATE_TREEVIEW = YES +TREEVIEW_WIDTH = 250 +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- +GENERATE_LATEX = NO +LATEX_OUTPUT = latex/API +LATEX_CMD_NAME = +MAKEINDEX_CMD_NAME = +COMPACT_LATEX = YES +PAPER_TYPE = a4 +EXTRA_PACKAGES = +LATEX_HEADER = +PDF_HYPERLINKS = YES +USE_PDFLATEX = YES +LATEX_BATCHMODE = NO +LATEX_HIDE_INDICES = NO +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- +GENERATE_RTF = NO +RTF_OUTPUT = rtf +COMPACT_RTF = NO +RTF_HYPERLINKS = NO +RTF_STYLESHEET_FILE = +RTF_EXTENSIONS_FILE = +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- +GENERATE_MAN = NO +MAN_OUTPUT = man +MAN_EXTENSION = .3 +MAN_LINKS = NO +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- +GENERATE_XML = NO +XML_OUTPUT = xml +XML_SCHEMA = +XML_DTD = +XML_PROGRAMLISTING = YES +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- +GENERATE_AUTOGEN_DEF = NO +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- +GENERATE_PERLMOD = NO +PERLMOD_LATEX = NO +PERLMOD_PRETTY = YES +PERLMOD_MAKEVAR_PREFIX = +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- +ENABLE_PREPROCESSING = YES +MACRO_EXPANSION = NO +EXPAND_ONLY_PREDEF = NO +SEARCH_INCLUDES = YES +INCLUDE_PATH = +INCLUDE_FILE_PATTERNS = +PREDEFINED = _MSC_VER +EXPAND_AS_DEFINED = +SKIP_FUNCTION_MACROS = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- +TAGFILES = +GENERATE_TAGFILE = +ALLEXTERNALS = NO +EXTERNAL_GROUPS = YES +PERL_PATH = /usr/bin/perl +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- +CLASS_DIAGRAMS = NO +HIDE_UNDOC_RELATIONS = YES +HAVE_DOT = YES +CLASS_GRAPH = YES +COLLABORATION_GRAPH = YES +UML_LOOK = NO +TEMPLATE_RELATIONS = YES +INCLUDE_GRAPH = YES +INCLUDED_BY_GRAPH = YES +CALL_GRAPH = YES +GRAPHICAL_HIERARCHY = YES +DOT_IMAGE_FORMAT = png +DOT_PATH = +DOTFILE_DIRS = +MAX_DOT_GRAPH_WIDTH = 1024 +MAX_DOT_GRAPH_HEIGHT = 1024 +MAX_DOT_GRAPH_DEPTH = 1000 +GENERATE_LEGEND = YES +DOT_CLEANUP = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- +SEARCHENGINE = NO Copied: trunk/FEAPI/doc/doxyconfigHost (from rev 52, trunk/FEAPI/doxgen.conf/doxyconfigHost) =================================================================== --- trunk/FEAPI/doc/doxyconfigHost (rev 0) +++ trunk/FEAPI/doc/doxyconfigHost 2006-03-07 14:59:42 UTC (rev 53) @@ -0,0 +1,229 @@ +# Doxyfile 1.3.9.1 + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- +PROJECT_NAME = "Feature Extraction Host documentation" +PROJECT_NUMBER = +OUTPUT_DIRECTORY = ../doc +CREATE_SUBDIRS = NO +OUTPUT_LANGUAGE = English +USE_WINDOWS_ENCODING = YES +BRIEF_MEMBER_DESC = YES +REPEAT_BRIEF = YES +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the +ALWAYS_DETAILED_SEC = NO +INLINE_INHERITED_MEMB = NO +FULL_PATH_NAMES = NO +STRIP_FROM_PATH = +STRIP_FROM_INC_PATH = +SHORT_NAMES = YES +JAVADOC_AUTOBRIEF = NO +MULTILINE_CPP_IS_BRIEF = YES +DETAILS_AT_TOP = YES +INHERIT_DOCS = YES +DISTRIBUTE_GROUP_DOC = NO +TAB_SIZE = 4 +ALIASES = +OPTIMIZE_OUTPUT_FOR_C = YES +OPTIMIZE_OUTPUT_JAVA = NO +SUBGROUPING = YES +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- +EXTRACT_ALL = YES +EXTRACT_PRIVATE = NO +EXTRACT_STATIC = YES +EXTRACT_LOCAL_CLASSES = YES +EXTRACT_LOCAL_METHODS = YES +HIDE_UNDOC_MEMBERS = YES +HIDE_UNDOC_CLASSES = YES +HIDE_FRIEND_COMPOUNDS = NO +HIDE_IN_BODY_DOCS = NO +INTERNAL_DOCS = NO +CASE_SENSE_NAMES = YES +HIDE_SCOPE_NAMES = NO +SHOW_INCLUDE_FILES = YES +INLINE_INFO = YES +SORT_MEMBER_DOCS = YES +SORT_BRIEF_DOCS = NO +SORT_BY_SCOPE_NAME = NO +GENERATE_TODOLIST = YES +GENERATE_TESTLIST = NO +GENERATE_BUGLIST = NO +GENERATE_DEPRECATEDLIST= YES +ENABLED_SECTIONS = +MAX_INITIALIZER_LINES = 30 +SHOW_USED_FILES = YES +SHOW_DIRECTORIES = YES +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- +QUIET = NO +WARNINGS = YES +WARN_IF_UNDOCUMENTED = NO +WARN_IF_DOC_ERROR = YES +WARN_FORMAT = "$file:$line: $text" +WARN_LOGFILE = warn.log +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- +INPUT = ../doc/docugenHost.txt \ + ../incl/FEAPI.h \ + ../src/Host_C/FEAPIExampleHost_C.cpp +FILE_PATTERNS = *.h \ + *.hpp \ + *.txt \ + *.cpp +RECURSIVE = NO +EXCLUDE = +EXCLUDE_SYMLINKS = NO +EXCLUDE_PATTERNS = +EXAMPLE_PATH = ../src/Host_C +EXAMPLE_PATTERNS = *.cpp +EXAMPLE_RECURSIVE = NO +IMAGE_PATH = +INPUT_FILTER = +FILTER_PATTERNS = +FILTER_SOURCE_FILES = NO +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- +SOURCE_BROWSER = YES +INLINE_SOURCES = NO +STRIP_CODE_COMMENTS = YES +REFERENCED_BY_RELATION = YES +REFERENCES_RELATION = YES +VERBATIM_HEADERS = YES +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- +ALPHABETICAL_INDEX = YES +COLS_IN_ALPHA_INDEX = 5 +IGNORE_PREFIX = +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- +GENERATE_HTML = YES +HTML_OUTPUT = html/Host +HTML_FILE_EXTENSION = .html +HTML_HEADER = +HTML_FOOTER = +HTML_STYLESHEET = +HTML_ALIGN_MEMBERS = YES +GENERATE_HTMLHELP = YES +CHM_FILE = +HHC_LOCATION = +GENERATE_CHI = NO +BINARY_TOC = NO +TOC_EXPAND = YES +DISABLE_INDEX = NO +ENUM_VALUES_PER_LINE = 4 +GENERATE_TREEVIEW = YES +TREEVIEW_WIDTH = 250 +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- +GENERATE_LATEX = NO +LATEX_OUTPUT = latex/Host +LATEX_CMD_NAME = +MAKEINDEX_CMD_NAME = +COMPACT_LATEX = YES +PAPER_TYPE = a4 +EXTRA_PACKAGES = +LATEX_HEADER = +PDF_HYPERLINKS = YES +USE_PDFLATEX = YES +LATEX_BATCHMODE = NO +LATEX_HIDE_INDICES = NO +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- +GENERATE_RTF = NO +RTF_OUTPUT = rtf +COMPACT_RTF = NO +RTF_HYPERLINKS = NO +RTF_STYLESHEET_FILE = +RTF_EXTENSIONS_FILE = +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- +GENERATE_MAN = NO +MAN_OUTPUT = man +MAN_EXTENSION = .3 +MAN_LINKS = NO +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- +GENERATE_XML = NO +XML_OUTPUT = xml +XML_SCHEMA = +XML_DTD = +XML_PROGRAMLISTING = YES +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- +GENERATE_AUTOGEN_DEF = NO +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- +GENERATE_PERLMOD = NO +PERLMOD_LATEX = NO +PERLMOD_PRETTY = YES +PERLMOD_MAKEVAR_PREFIX = +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- +ENABLE_PREPROCESSING = YES +MACRO_EXPANSION = NO +EXPAND_ONLY_PREDEF = NO +SEARCH_INCLUDES = YES +INCLUDE_PATH = +INCLUDE_FILE_PATTERNS = +PREDEFINED = _MSC_VER +EXPAND_AS_DEFINED = +SKIP_FUNCTION_MACROS = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- +TAGFILES = +GENERATE_TAGFILE = +ALLEXTERNALS = NO +EXTERNAL_GROUPS = YES +PERL_PATH = /usr/bin/perl +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- +CLASS_DIAGRAMS = NO +HIDE_UNDOC_RELATIONS = YES +HAVE_DOT = YES +CLASS_GRAPH = YES +COLLABORATION_GRAPH = YES +UML_LOOK = NO +TEMPLATE_RELATIONS = YES +INCLUDE_GRAPH = YES +INCLUDED_BY_GRAPH = YES +CALL_GRAPH = YES +GRAPHICAL_HIERARCHY = YES +DOT_IMAGE_FORMAT = png +DOT_PATH = +DOTFILE_DIRS = +MAX_DOT_GRAPH_WIDTH = 1024 +MAX_DOT_GRAPH_HEIGHT = 1024 +MAX_DOT_GRAPH_DEPTH = 1000 +GENERATE_LEGEND = YES +DOT_CLEANUP = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- +SEARCHENGINE = NO Copied: trunk/FEAPI/doc/doxyconfigPlug (from rev 52, trunk/FEAPI/doxgen.conf/doxyconfigPlug) =================================================================== --- trunk/FEAPI/doc/doxyconfigPlug (rev 0) +++ trunk/FEAPI/doc/doxyconfigPlug 2006-03-07 14:59:42 UTC (rev 53) @@ -0,0 +1,234 @@ +# Doxyfile 1.3.9.1 + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- +PROJECT_NAME = "FEAPI Feature Extraction Plugin documentation" +PROJECT_NUMBER = +OUTPUT_DIRECTORY = ../doc +CREATE_SUBDIRS = NO +OUTPUT_LANGUAGE = English +USE_WINDOWS_ENCODING = YES +BRIEF_MEMBER_DESC = YES +REPEAT_BRIEF = YES +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the +ALWAYS_DETAILED_SEC = NO +INLINE_INHERITED_MEMB = NO +FULL_PATH_NAMES = NO +STRIP_FROM_PATH = +STRIP_FROM_INC_PATH = +SHORT_NAMES = YES +JAVADOC_AUTOBRIEF = NO +MULTILINE_CPP_IS_BRIEF = YES +DETAILS_AT_TOP = YES +INHERIT_DOCS = YES +DISTRIBUTE_GROUP_DOC = NO +TAB_SIZE = 4 +ALIASES = "\"_THE_PLUGIN_CLASS=CFindAbsoluteMax\"" \ + CFindAbsoluteMax=_THE_PLUGIN_CLASS +OPTIMIZE_OUTPUT_FOR_C = NO +OPTIMIZE_OUTPUT_JAVA = NO +SUBGROUPING = YES +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- +EXTRACT_ALL = YES +EXTRACT_PRIVATE = NO +EXTRACT_STATIC = NO +EXTRACT_LOCAL_CLASSES = YES +EXTRACT_LOCAL_METHODS = NO +HIDE_UNDOC_MEMBERS = YES +HIDE_UNDOC_CLASSES = YES +HIDE_FRIEND_COMPOUNDS = NO +HIDE_IN_BODY_DOCS = NO +INTERNAL_DOCS = NO +CASE_SENSE_NAMES = YES +HIDE_SCOPE_NAMES = NO +SHOW_INCLUDE_FILES = YES +INLINE_INFO = YES +SORT_MEMBER_DOCS = YES +SORT_BRIEF_DOCS = NO +SORT_BY_SCOPE_NAME = NO +GENERATE_TODOLIST = YES +GENERATE_TESTLIST = NO +GENERATE_BUGLIST = NO +GENERATE_DEPRECATEDLIST= YES +ENABLED_SECTIONS = +MAX_INITIALIZER_LINES = 30 +SHOW_USED_FILES = YES +SHOW_DIRECTORIES = YES +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- +QUIET = NO +WARNINGS = YES +WARN_IF_UNDOCUMENTED = NO +WARN_IF_DOC_ERROR = YES +WARN_FORMAT = "$file:$line: $text" +WARN_LOGFILE = warn.log +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- +INPUT = ../doc/docugenPlug.txt \ + ../src/FEAPIExamplePluginFindMax/FEAPIExamplePluginFindMax.h \ + ../src/FEAPIExamplePluginFindMax/FEAPIExamplePluginFindMax.cpp \ + ../src/FEAPI/FEAPIPluginBase.cpp \ + ../src/incl/FEAPIPluginBase.h \ + ../incl/FEAPI.h \ + ../src/FEAPI/FEAPI.cpp +FILE_PATTERNS = *.h \ + *.hpp \ + *.txt \ + *.cpp +RECURSIVE = NO +EXCLUDE = +EXCLUDE_SYMLINKS = NO +EXCLUDE_PATTERNS = +EXAMPLE_PATH = +EXAMPLE_PATTERNS = +EXAMPLE_RECURSIVE = NO +IMAGE_PATH = +INPUT_FILTER = +FILTER_PATTERNS = +FILTER_SOURCE_FILES = NO +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- +SOURCE_BROWSER = YES +INLINE_SOURCES = NO +STRIP_CODE_COMMENTS = YES +REFERENCED_BY_RELATION = YES +REFERENCES_RELATION = YES +VERBATIM_HEADERS = YES +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- +ALPHABETICAL_INDEX = YES +COLS_IN_ALPHA_INDEX = 5 +IGNORE_PREFIX = +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- +GENERATE_HTML = YES +HTML_OUTPUT = html/Plug +HTML_FILE_EXTENSION = .html +HTML_HEADER = +HTML_FOOTER = +HTML_STYLESHEET = +HTML_ALIGN_MEMBERS = YES +GENERATE_HTMLHELP = YES +CHM_FILE = +HHC_LOCATION = +GENERATE_CHI = NO +BINARY_TOC = NO +TOC_EXPAND = YES +DISABLE_INDEX = NO +ENUM_VALUES_PER_LINE = 4 +GENERATE_TREEVIEW = YES +TREEVIEW_WIDTH = 250 +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- +GENERATE_LATEX = NO +LATEX_OUTPUT = latex/Plug +LATEX_CMD_NAME = +MAKEINDEX_CMD_NAME = +COMPACT_LATEX = YES +PAPER_TYPE = a4 +EXTRA_PACKAGES = +LATEX_HEADER = +PDF_HYPERLINKS = YES +USE_PDFLATEX = YES +LATEX_BATCHMODE = NO +LATEX_HIDE_INDICES = NO +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- +GENERATE_RTF = NO +RTF_OUTPUT = rtf +COMPACT_RTF = NO +RTF_HYPERLINKS = NO +RTF_STYLESHEET_FILE = +RTF_EXTENSIONS_FILE = +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- +GENERATE_MAN = NO +MAN_OUTPUT = man +MAN_EXTENSION = .3 +MAN_LINKS = NO +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- +GENERATE_XML = NO +XML_OUTPUT = xml +XML_SCHEMA = +XML_DTD = +XML_PROGRAMLISTING = YES +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- +GENERATE_AUTOGEN_DEF = NO +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- +GENERATE_PERLMOD = NO +PERLMOD_LATEX = NO +PERLMOD_PRETTY = YES +PERLMOD_MAKEVAR_PREFIX = +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- +ENABLE_PREPROCESSING = YES +MACRO_EXPANSION = NO +EXPAND_ONLY_PREDEF = NO +SEARCH_INCLUDES = YES +INCLUDE_PATH = +INCLUDE_FILE_PATTERNS = +PREDEFINED = _MSC_VER +EXPAND_AS_DEFINED = +SKIP_FUNCTION_MACROS = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- +TAGFILES = +GENERATE_TAGFILE = +ALLEXTERNALS = NO +EXTERNAL_GROUPS = YES +PERL_PATH = /usr/bin/perl +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- +CLASS_DIAGRAMS = NO +HIDE_UNDOC_RELATIONS = YES +HAVE_DOT = YES +CLASS_GRAPH = YES +COLLABORATION_GRAPH = YES +UML_LOOK = NO +TEMPLATE_RELATIONS = YES +INCLUDE_GRAPH = YES +INCLUDED_BY_GRAPH = YES +CALL_GRAPH = YES +GRAPHICAL_HIERARCHY = YES +DOT_IMAGE_FORMAT = png +DOT_PATH = +DOTFILE_DIRS = +MAX_DOT_GRAPH_WIDTH = 1024 +MAX_DOT_GRAPH_HEIGHT = 1024 +MAX_DOT_GRAPH_DEPTH = 1000 +GENERATE_LEGEND = YES +DOT_CLEANUP = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- +SEARCHENGINE = NO Copied: trunk/FEAPI/examples/host/Host_C (from rev 52, trunk/FEAPI/src/Host_C) Copied: trunk/FEAPI/examples/plugin/FEAPIExamplePluginFindMax (from rev 52, trunk/FEAPI/src/FEAPIExamplePluginFindMax) Copied: trunk/FEAPI/include (from rev 52, trunk/FEAPI/incl) Copied: trunk/FEAPI/license.txt (from rev 52, trunk/FEAPI/license/license.txt) =================================================================== --- trunk/FEAPI/license.txt (rev 0) +++ trunk/FEAPI/license.txt 2006-03-07 14:59:42 UTC (rev 53) @@ -0,0 +1,30 @@ +Copyright (c) 2004-2005, Alexander Lerch, zplane.development GbR +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +* Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +* Redistributions in binary form must link to the feapi website + http://www.sf.net/projects/feapi, + reproduce this list of conditions and the following + disclaimer in the documentation and/or other materials + provided with the distribution. +* The name of the contributors to this software must not be used + to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. Copied: trunk/FEAPI/sdk/plugin/include/FEAPIPluginBase.h (from rev 52, trunk/FEAPI/src/incl/FEAPIPluginBase.h) =================================================================== --- trunk/FEAPI/sdk/plugin/include/FEAPIPluginBase.h (rev 0) +++ trunk/FEAPI/sdk/plugin/include/FEAPIPluginBase.h 2006-03-07 14:59:42 UTC (rev 53) @@ -0,0 +1,330 @@ +//////////////////////////////////////////////////////////////////////////////////// +// /*! \file FEAPIPluginBase.h: \brief interface of the CFeatureExtractBase class. */ +// +// Copyright (c) 2004-2005, Alexander Lerch, zplane.development GbR +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must link to the feapi website +// http://www.sf.net/projects/feapi, +// reproduce this list of conditions and the following +// disclaimer in the documentation and/or other materials +// provided with the distribution. +// * The name of the contributors to this software must not be used +// to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +// +//////////////////////////////////////////////////////////////////////////////////// +// CVS INFORMATION +// +// $RCSfile$ +// $Author$ +// $Date$ +// +// $Log$ +// Revision 1.3 2005/07/08 13:39:36 alex_lerch +// - minor changes in initialization handling +// - added parameter check in InitializePlugin +// +// Revision 1.2 2005/05/20 17:12:44 alex_lerch +// - usage of strings instead of chars +// - renamed some function to make it less confusing +// - updated documentation +// - cosmetic changes +// +// Revision 1.1.1.1 2005/03/30 14:54:41 alex_lerch +// first draft version requiring several updates: +// - interface check +// - check of plugin base class +// - implementation of host base class +// - update of outdated documentation +// +// +//////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////// +// !!!Do never ever edit this file!!! +//////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////// + +#if !defined(FEAPI_PLUGIN_BASE_HEADER_INCLUDED__) +#define FEAPI_PLUGIN_BASE_HEADER_INCLUDED__ + + +/*! +CLASS: + + This class provides the plugin internal interface for the low level feature + extraction Plugin. The host has no functions that can be called by the + Plugin, only vice versa. + +*/ +class CFeatureExtractBase +{ +public: + + CFeatureExtractBase (); + + virtual ~CFeatureExtractBase (); + + + //////////////////////////////////////////////////////////////////////////////////////// + // method declaration + + + /*! + * Gets the version number (major, minor or subversion) of the API used by the plugin. + * This is *not* the plugin version, therefore the function may be called without a previously + * created instance. + * + * @param eApiMajorMinorOrSubVersion : flag which version type is requested + * @return int : requested version number + */ + static int GetPluginAPIVersion (FEAPI_VersionInfo_t eApiMajorMinorOrSubVersion); + + + + /*! + * initializes a new instance of the plugin + * + * @param fInputSampleRate : sample rate of input(s) in Hz + * @param iNumberOfAudioChannels : number of input audio channels + * @param iHostApiMajorVersion : major version number of host + * @param pstUserData : pointer to user or vendor defined data (may be NULL) + * + * @return FEAPI_Error_t : FEAPI_kNoError when no error + */ + FEAPI_Error_t InitializePlugin ( float fInputSampleRate, + int iNumberOfAudioChannels, + int iHostApiMajorVersion, + FEAPI_UserData_t *pstUserData); + + /*! + * Gets the name of the plugin. + * + * @param *pcPluginName : pointer to buffer of FEAPI_uiMaxNameLength chars, the name will be copied to this buffer + * @return FEAPI_Error_t : FEAPI_kNoError when no error + */ + FEAPI_Error_t GetPluginName ( char *pcPluginName); + + /*! + * Gets the vendor name of the plugin. + * + * @param *pcPluginVendor : pointer to buffer of FEAPI_uiMaxNameLength chars, the vendor name will be copied to this buffer + * @return FEAPI_Error_t : FEAPI_kNoError when no error + */ + FEAPI_Error_t GetPluginVendor ( char *pcPluginVendor); + + /*! + * Gets an indication of the plugins capabilities. + * + * @param ePluginProperty : requested property + * @return float : corresponding value + */ + virtual float GetPluginProperty ( FEAPI_PluginProperty_t ePluginProperty) = 0; + + /*! + * Gets the (vendor unique) plugin identification string. + * + * @param *pcPluginId : pointer to buffer of FEAPI_uiMaxNameLength chars, the id will be copied to this buffer + * @return FEAPI_Error_t : FEAPI_kNoError when no error + */ + FEAPI_Error_t GetPluginId ( char *pcPluginId); + + /*! + * Gets the vendor version of the plugin. + * + * @param ePluginMajorMinorOrSubVersion : flag which version type is requested + * @return int : requested version number + */ + int GetPluginVendorVersion (FEAPI_VersionInfo_t ePluginMajorMinorOrSubVersion); + + /*! + * Gets the description of the plugin, containing information about what the plugin actually does. + * + * @param *pcPluginDescription : pointer to buffer of FEAPI_uiMaxDescriptionLength chars, the plugin description will be copied to this buffer + * @return FEAPI_Error_t : FEAPI_kNoError when no error + */ + FEAPI_Error_t GetPluginDescription (char *pcPluginDescription); + + /*! + * Gets the copyright information for the plugin. + * + * @param *pcPluginCopyright : pointer to buffer of FEAPI_uiMaxDescriptionLength chars, the plugin copyright information will be copied to this buffer + * @return FEAPI_Error_t : FEAPI_kNoError when no error + */ + FEAPI_Error_t GetPluginCopyright (char *pcPluginCopyright); + + /*! + * Gets the number of inputs for the plugin. This number will equal the + * number of audio channels in many cases, otherwise exceed the number of audio channels. + * The additional input channels are plugin developer specific and not recommended. If used, + * they have to be routed host internally. + * + * @return int : number of inputs + */ + int GetPluginNumOfInputs (); + + /*! + * Gets information about one of the possible inputs. + * + * @param iInputIndex : index of the input the description is requested for, index ranges from 0...NumOfInputs-1 + * @param *pstInputDescription : the requested description will be copied to this structure + * @return FEAPI_Error_t : FEAPI_kNoError when no error + */ + virtual FEAPI_Error_t GetPluginInputDescription ( int iInputIndex, + FEAPI_SignalDescription_t *pstInputDescription); + + /*! + * Gets the number of results/features to be calculated. + * + * @return int : number of results + */ + int GetPluginNumOfResults (); + + + /*! + * Gets information about one of the possible results/features. + * + * @param iResultIndex : index of the result (feature) the description is requested for, index ranges from 0...NumOfResults-1 + * @param *pstResultDescription : the requested description will be copied to this structure + * @return FEAPI_Error_t : FEAPI_kNoError when no error + */ + virtual FEAPI_Error_t GetPluginResultDescription ( int iResultIndex, + FEAPI_SignalDescription_t *pstResultDescription); + + /*! + * Gets the number of parameters. + * + * @return int : number of parameters + */ + int GetPluginNumOfParameters (); + + /*! + * Gets information about one of the possible parameters. + * + * @param iParameterIndex : index of the parameter (setting) the description is requested for, index ranges from 0...NumOfParameters-1 + * @param *pstParameterDescription : the requested description will be copied to this structure + * @return FEAPI_Error_t : FEAPI_kNoError when no error + */ + virtual FEAPI_Error_t GetPluginParameterDescription ( int iParameterIndex, + FEAPI_ParameterDescription_t *pstParameterDescription); + + /*! + * Sets a parameter to a specified value. + * + * @param iParameterIndex : index of the parameter (setting) to be changed, index ranges from 0...NumOfParameters-1 + * @param fValue : new value of the parameter + * @return FEAPI_Error_t : FEAPI_kNoError when no error + */ + virtual FEAPI_Error_t SetPluginParameter ( int iParameterIndex, + float fValue); + + /*! + * Gets the current value of a parameter. + * + * @param iParameterIndex : index of the parameter (setting) requested, index ranges from 0...NumOfParameters-1 + * @return float : value of the parameter with index iParameterIndex + */ + virtual float GetPluginParameter ( int iParameterIndex); + + /*! + * Processes a block of audio data. + * + * @param **ppfInputBuffer : input audio data in the format [channels][samples]; audio samples have a range from -1.0...+1.0 + * @param *ptFEAPI_TimeStamp : time stamps in seconds for every input, may be NULL + * @param iNumberOfFrames : number of frames in ppfInputBuffer + * @return FEAPI_Error_t : FEAPI_kNoError when no error + */ + virtual FEAPI_Error_t ProcessPlugin ( const FEAPI_Signal_t **ppfInputBuffer, + const FEAPI_TimeStamp_t *ptFEAPI_TimeStamp, + int iNumberOfFrames) = 0; + + + /*! + * Signals that no more input data is available (does the final processing). + * + * @return FEAPI_Error_t : FEAPI_kNoError when no error + */ + virtual FEAPI_Error_t ProcessPluginDone (); + + + /*! + * Gets the size of one result in FEAPI_Signal_t values (4 bytes per value). + * + * @param iResultIndex : index of the result/feature the size is requested for, index ranges from 0...NumOfResults-1 + * @return int : size of result in FEAPI_Signal_t values (4 bytes per value) + */ + virtual int GetPluginSizeOfResult (int iResultIndex) = 0; + + /*! + * Gets one result. + * + * @param iResultIndex : index of the requested result/feature, index ranges from 0...NumOfResults-1 + * @param pfResult : the result data is copied into this buffer + * @param *ptFEAPI_TimeStamp : the time stamp of the result + * @return FEAPI_Error_t : FEAPI_kNoError when no error + */ + virtual FEAPI_Error_t GetPluginResult (int iResultIndex, + float *pfResult, + FEAPI_TimeStamp_t *ptFEAPI_TimeStamp) = 0; + + /*! + * Gets the maximum latency of one result. + * + * @param iResultIndex : index of the requested result (feature), index ranges from 0...NumOfResults-1 + * @return int : number of samples (at audio input sample rate) which is required to calculate this result the first time (negative values are not allowed, 0 means undefined) + */ + virtual int GetPluginResultLatency (int iResultIndex); + + /*! + * Resets/clears all internal buffers and states, so that the plugin is in a state where it can start processing a new audio stream. + * + * @return FEAPI_Error_t : FEAPI_kNoError when no error + */ + virtual FEAPI_Error_t ResetPlugin (); + +protected: + + //////////////////////////////////////////////////////////////////////////////////////// + // member variables + + float m_fSampleRate; //!< input sample rate in Hz + + int m_iNumberOfChannels, //!< number of input channels + m_iNumberOfParameters, //!< number of parameters + m_iNumberOfResults, //!< number of results (features) to be calculated + m_iMajorVersion, //!< major plugin version + m_iMinorVersion, //!< minor plugin version + m_iSubVersion; //!< micro plugin version + + bool m_bIsInitialized; //!< true if InitializePlugin has been processed + + std::string m_cPluginName, //!< plugin name + m_cPluginVendor, //!< plugin vendor + m_cPluginId, //!< unique (per vendor) plugin Id + m_cPluginDescription, //!< plugin description + m_cPluginCopyRight; //!< plugin copyright info +}; + +#endif // #if !defined(FEAPI_PLUGIN_BASE_HEADER_INCLUDED__) + + + Copied: trunk/FEAPI/sdk/plugin/src/FEAPI.cpp (from rev 52, trunk/FEAPI/src/FEAPI/FEAPI.cpp) =================================================================== --- trunk/FEAPI/sdk/plugin/src/FEAPI.cpp (rev 0) +++ trunk/FEAPI/sdk/plugin/src/FEAPI.cpp 2006-03-07 14:59:42 UTC (rev 53) @@ -0,0 +1,519 @@ +//////////////////////////////////////////////////////////////////////////////////// +// /*! \file FEAPI.cpp: \brief wrapped C interface of C++-plugin API */ +// +// Copyright (c) 2004-2005, Alexander Lerch, zplane.development GbR +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must link to the FEAPI_ website +// http://www.sf.net/projects/FEAPI_, +// reproduce this list of conditions and the following +// disclaimer in the documentation and/or other materials +// provided with the distribution. +// * The name of the contributors to this software must not be used +// to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +// +//////////////////////////////////////////////////////////////////////////////////// +// CVS INFORMATION +// +// $RCSfile$ +// $Author$ +// $Date$ +// +// $Log$ +// Revision 1.2 2005/05/20 17:11:10 alex_lerch +// - usage of strings instead of chars +// - cosmetic changes +// +// Revision 1.1.1.1 2005/03/30 14:54:40 alex_lerch +// first draft version requiring several updates: +// - interface check +// - check of plugin base class +// - implementation of host base class +// - update of outdated documentation +// +// +//////////////////////////////////////////////////////////////////////////////////// + +#include <string> + +#include "FEAPI.h" +#include "FEAPIExamplePluginFindMax.h" // only edit this header to include your header file + +//////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////// +// !!!Do never ever edit any code below!!! +//////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////// + +#ifdef __cplusplus +extern "C" { +#endif + +int FEAPI_GetPluginAPIVersion (FEAPI_VersionInfo_t iApiMajorMinorOrSubVersion) +{ + return _THE_PLUGIN_CLASS::GetPluginAPIVersion (iApiMajorMinorOrSubVersion); +} + + +FEAPI_Error_t FEAPI_GetPluginName ( FEAPI_PluginInstance_t hInstanceHandle, + char *pcPluginName) +{ + _THE_PLUGIN_CLASS *pCPluginInstance = 0; + + // check for invalid structure pointer + if (hInstanceHandle == 0) + return FEAPI_kUnspecifiedError; + + // set handle to instance + pCPluginInstance = (_THE_PLUGIN_CLASS*)hInstanceHandle; + + return pCPluginInstance->GetPluginName ( pcPluginName ); + +} + + +FEAPI_Error_t FEAPI_GetPluginVendor ( FEAPI_PluginInstance_t hInstanceHandle, + char *pcPluginVendor) +{ + _THE_PLUGIN_CLASS *pCPluginInstance = 0; + + // check for invalid structure pointer + if (hInstanceHandle == 0) + return FEAPI_kUnspecifiedError; + + // set handle to instance + pCPluginInstance = (_THE_PLUGIN_CLASS*)hInstanceHandle; + + return pCPluginInstance->GetPluginVendor ( pcPluginVendor ); + +} + + +FEAPI_Error_t FEAPI_GetPluginId ( FEAPI_PluginInstance_t hInstanceHandle, + char *pcPluginId) +{ + _THE_PLUGIN_CLASS *pCPluginInstance = 0; + + // check for invalid structure pointer + if (hInstanceHandle == 0) + return FEAPI_kUnspecifiedError; + + // set handle to instance + pCPluginInstance = (_THE_PLUGIN_CLASS*)hInstanceHandle; + + return pCPluginInstance->GetPluginId ( pcPluginId ); + +} + + +int FEAPI_GetPluginVendorVersion ( FEAPI_PluginInstance_t hInstanceHandle, FEAPI_VersionInfo_t iApiMajorMinorOrSubVersion) +{ + _THE_PLUGIN_CLASS *pCPluginInstance = 0; + + // check for invalid structure pointer + if (hInstanceHandle == 0) + return FEAPI_kUnspecifiedError; + + // set handle to instance + pCPluginInstance = (_THE_PLUGIN_CLASS*)hInstanceHandle; + + return pCPluginInstance->GetPluginVendorVersion (iApiMajorMinorOrSubVersion); + +} + + +FEAPI_Error_t FEAPI_GetPluginDescription ( FEAPI_PluginInstance_t hInstanceHandle, + char *pcPluginDescription) +{ + _THE_PLUGIN_CLASS *pCPluginInstance = 0; + + // check for invalid structure pointer + if (hInstanceHandle == 0) + return FEAPI_kUnspecifiedError; + + // set handle to instance + pCPluginInstance = (_THE_PLUGIN_CLASS*)hInstanceHandle; + + return pCPluginInstance->GetPluginDescription ( pcPluginDescription ); + +} + + +FEAPI_Error_t FEAPI_GetPluginCopyright (FEAPI_PluginInstance_t hInstanceHandle, + char *pcPluginCopyright) +{ + _THE_PLUGIN_CLASS *pCPluginInstance = 0; + + // check for invalid structure pointer + if (hInstanceHandle == 0) + return FEAPI_kUnspecifiedError; + + // set handle to instance + pCPluginInstance = (_THE_PLUGIN_CLASS*)hInstanceHandle; + + return pCPluginInstance->GetPluginCopyright ( pcPluginCopyright ); + +} + + +int FEAPI_GetPluginNumOfResults (FEAPI_PluginInstance_t hInstanceHandle) +{ + _THE_PLUGIN_CLASS *pCPluginInstance = 0; + + // check for invalid structure pointer + if (hInstanceHandle == 0) + return FEAPI_kUnspecifiedError; + + // set handle to instance + pCPluginInstance = (_THE_PLUGIN_CLASS*)hInstanceHandle; + + return pCPluginInstance->GetPluginNumOfResults ( ); + +} + + +FEAPI_Error_t FEAPI_GetPluginResultDescription ( FEAPI_PluginInstance_t hInstanceHandle, + int iResultIndex, + FEAPI_SignalDescription_t *pstResultDescription) +{ + _THE_PLUGIN_CLASS *pCPluginInstance = 0; + + // check for invalid structure pointer + if (hInstanceHandle == 0) + return FEAPI_kUnspecifiedError; + + // set handle to instance + pCPluginInstance = (_THE_PLUGIN_CLASS*)hInstanceHandle; + + return pCPluginInstance->GetPluginResultDescription ( iResultIndex, + pstResultDescription); + +} + + +int FEAPI_GetPluginNumOfInputs (FEAPI_PluginInstance_t hInstanceHandle) +{ + _THE_PLUGIN_CLASS *pCPluginInstance = 0; + + // check for invalid structure pointer + if (hInstanceHandle == 0) + return FEAPI_kUnspecifiedError; + + // set handle to instance + pCPluginInstance = (_THE_PLUGIN_CLASS*)hInstanceHandle; + + return pCPluginInstance->GetPluginNumOfInputs (); + +} + + +FEAPI_Error_t FEAPI_GetPluginInputDescription ( FEAPI_PluginInstance_t hInstanceHandle, + int iInputIndex, + FEAPI_SignalDescription_t *pstInputDescription) +{ + _THE_PLUGIN_CLASS *pCPluginInstance = 0; + + // check for invalid structure pointer + if (hInstanceHandle == 0) + return FEAPI_kUnspecifiedError; + + // set handle to instance + pCPluginInstance = (_THE_PLUGIN_CLASS*)hInstanceHandle; + + return pCPluginInstance->GetPluginInputDescription ( iInputIndex, + pstInputDescription); + +} + + +int FEAPI_GetPluginNumOfParameters (FEAPI_PluginInstance_t hInstanceHandle) +{ + _THE_PLUGIN_CLASS *pCPluginInstance = 0; + + // check for invalid structure pointer + if (hInstanceHandle == 0) + return FEAPI_kUnspecifiedError; + + // set handle to instance + pCPluginInstance = (_THE_PLUGIN_CLASS*)hInstanceHandle; + + return pCPluginInstance->GetPluginNumOfParameters ( ); + +} + + +FEAPI_Error_t FEAPI_GetPluginParameterDescription ( FEAPI_PluginInstance_t hInstanceHandle, + int iParameterIndex, + FEAPI_ParameterDescription_t *pstParameterDescription) +{ + _THE_PLUGIN_CLASS *pCPluginInstance = 0; + + // check for invalid structure pointer + if (hInstanceHandle == 0) + return FEAPI_kUnspecifiedError; + + // set handle to instance + pCPluginInstance = (_THE_PLUGIN_CLASS*)hInstanceHandle; + + return pCPluginInstance->GetPluginParameterDescription ( iParameterIndex, + pstParameterDescription); + +} + + +FEAPI_Error_t FEAPI_SetPluginParameter ( FEAPI_PluginInstance_t hInstanceHandle, + int iParameterIndex, + float fValue) +{ + _THE_PLUGIN_CLASS *pCPluginInstance = 0; + + // check for invalid structure pointer + if (hInstanceHandle == 0) + return FEAPI_kUnspecifiedError; + + // set handle to instance + pCPluginInstance = (_THE_PLUGIN_CLASS*)hInstanceHandle; + + return pCPluginInstance->SetPluginParameter ( iParameterIndex, + fValue); + +} + + +float FEAPI_GetPluginParameter ( FEAPI_PluginInstance_t hInstanceHandle, + int iParameterIndex) +{ + _THE_PLUGIN_CLASS *pCPluginInstance = 0; + + // check for invalid structure pointer + if (hInstanceHandle == 0) + return 1e38F; + + // set handle to instance + pCPluginInstance = ( _THE_PLUGIN_CLASS*)hInstanceHandle; + + return pCPluginInstance->GetPluginParameter ( iParameterIndex ); + +} + + + +int FEAPI_GetPluginResultLatency (FEAPI_PluginInstance_t hInstanceHandle, + int iResultIndex) +{ + _THE_PLUGIN_CLASS *pCPluginInstance = 0; + + // check for invalid structure pointer + if (hInstanceHandle == 0) + return 0; + + // set handle to instance + pCPluginInstance = (_THE_PLUGIN_CLASS*)hInstanceHandle; + + return pCPluginInstance->GetPluginResultLatency (iResultIndex); + +} + + +FEAPI_Error_t FEAPI_ProcessPlugin ( FEAPI_PluginInstance_t hInstanceHandle, + const float **ppfInputBuffer, + const FEAPI_TimeStamp_t *pfTimeStamps, + int iNumberOfFrames) +{ + _THE_PLUGIN_CLASS *pCPluginInstance = 0; + + // check for invalid structure pointer + if (hInstanceHandle == 0) + return FEAPI_kUnspecifiedError; + + // set handle to instance + pCPluginInstance = (_THE_PLUGIN_CLASS*)hInstanceHandle; + + return pCPluginInstance->ProcessPlugin ( ppfInputBuffer, + pfTimeStamps, + iNumberOfFrames); + +} + + +FEAPI_Error_t FEAPI_ProcessPluginDone (FEAPI_PluginInstance_t hInstanceHandle) +{ + _THE_PLUGIN_CLASS *pCPluginInstance = 0; + + // check for invalid structure pointer + if (hInstanceHandle == 0) + return FEAPI_kUnspecifiedError; + + // set handle to instance + pCPluginInstance = (_THE_PLUGIN_CLASS*)hInstanceHandle; + + return pCPluginInstance->ProcessPluginDone ( ); + +} + + + +int FEAPI_GetPluginSizeOfResult ( FEAPI_PluginInstance_t hInstanceHandle, + int iResultIndex) +{ + _THE_PLUGIN_CLASS *pCPluginInstance = 0; + + // check for invalid structure pointer + if (hInstanceHandle == 0) + return -1; + + // set handle to instance + pCPluginInstance = (_THE_PLUGIN_CLASS*)hInstanceHandle; + + return pCPluginInstance->GetPluginSizeOfResult ( iResultIndex ); + +} + + +FEAPI_Error_t FEAPI_GetPluginResult ( FEAPI_PluginInstance_t hInstanceHandle, + int iResultIndex, + float *pfResult, + FEAPI_TimeStamp_t *ptTimeStamp) +{ + _THE_PLUGIN_CLASS *pCPluginInstance = 0; + + // check for invalid structure pointer + if (hInstanceHandle == 0) + return FEAPI_kUnspecifiedError; + + // set handle to instance + pCPluginInstance = (_THE_PLUGIN_CLASS*)hInstanceHandle; + + return pCPluginInstance->GetPluginResult ( iResultIndex, + pfResult, + ptTimeStamp); + +} + + +float FEAPI_GetPluginProperty (FEAPI_PluginInstance_t hInstanceHandle, + FEAPI_PluginProperty_t ePluginProperty, + float fValue... [truncated message content] |