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 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: Code r. c. l. <fea...@li...> - 2006-09-11 11:32:19
|
Revision: 109 http://svn.sourceforge.net/feapi/?rev=109&view=rev Author: alex_lerch Date: 2006-09-11 04:31:56 -0700 (Mon, 11 Sep 2006) Log Message: ----------- - updated the projects to have separate build directories and use internal environment variables for these Modified Paths: -------------- trunk/FEAPI/build/Win/ExamplePluginFindMax/ExamplePluginFindMax.vcproj trunk/FEAPI/build/Win/ExamplePluginFindRms/ExamplePluginFindRms.vcproj trunk/FEAPI/build/Win/ExamplePluginLoudness/ExamplePluginLoudness.vcproj trunk/FEAPI/build/Win/ExamplePluginSpectral/ExamplePluginSpectral.vcproj trunk/FEAPI/build/Win/ExamplePluginZeroCrossings/ExamplePluginZeroCrossings.vcproj trunk/FEAPI/build/Win/FEAPIHost_C/FEAPITestCL.vcproj This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: Code r. c. l. <fea...@li...> - 2006-12-01 10:41:52
|
Revision: 125 http://svn.sourceforge.net/feapi/?rev=125&view=rev Author: remymuller Date: 2006-12-01 02:41:51 -0800 (Fri, 01 Dec 2006) Log Message: ----------- added: script to convert back to VS8 (hope it works for you as I don't have it) added: maxmsp host example to main FEAPI solution. added: plugins are now copied to c:/Program Files/FEAPI/ after build. (only needed for release builds? I prefer both) Modified Paths: -------------- trunk/FEAPI/build/Win/ExamplePluginFindMax/ExamplePluginFindMax.vcproj trunk/FEAPI/build/Win/ExamplePluginFindRms/ExamplePluginFindRms.vcproj trunk/FEAPI/build/Win/ExamplePluginLoudness/ExamplePluginLoudness.vcproj trunk/FEAPI/build/Win/ExamplePluginSpectral/ExamplePluginSpectral.vcproj trunk/FEAPI/build/Win/ExamplePluginZeroCrossings/ExamplePluginZeroCrossings.vcproj trunk/FEAPI/build/Win/FEAPI.sln trunk/FEAPI/build/Win/FEAPIHost_C/FEAPITestCL.vcproj trunk/FEAPI/build/Win/FEAPI_MaxMSP_Host/feapi.vcproj Added Paths: ----------- trunk/FEAPI/build/Win/convertProjectsToVS8.js 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: Code r. c. l. <fea...@li...> - 2006-12-01 17:56:31
|
Revision: 133 http://svn.sourceforge.net/feapi/?rev=133&view=rev Author: alex_lerch Date: 2006-12-01 09:56:30 -0800 (Fri, 01 Dec 2006) Log Message: ----------- - Changed Project Post Build Steps: .instead of "c:\Program Files" use environment variable %ProgramFiles% .had to add a linebreak to make it run with VS8 Modified Paths: -------------- trunk/FEAPI/build/Win/ExamplePluginFindMax/ExamplePluginFindMax.vcproj trunk/FEAPI/build/Win/ExamplePluginFindRms/ExamplePluginFindRms.vcproj trunk/FEAPI/build/Win/ExamplePluginLoudness/ExamplePluginLoudness.vcproj trunk/FEAPI/build/Win/ExamplePluginSpectral/ExamplePluginSpectral.vcproj trunk/FEAPI/build/Win/ExamplePluginZeroCrossings/ExamplePluginZeroCrossings.vcproj This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: Code r. c. l. <fea...@li...> - 2006-12-07 10:27:09
|
Revision: 139 http://svn.sourceforge.net/feapi/?rev=139&view=rev Author: alex_lerch Date: 2006-12-07 02:27:07 -0800 (Thu, 07 Dec 2006) Log Message: ----------- - removed MSVC6 Projects and Workspace Removed Paths: ------------- trunk/FEAPI/build/Win/ExamplePluginFindMax/ExamplePluginFindMax.dsp trunk/FEAPI/build/Win/ExamplePluginFindRms/ExamplePluginFindRms.dsp 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.dsw trunk/FEAPI/build/Win/FEAPIHost_C/FEAPITestCL.dsp This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: Code r. c. l. <fea...@li...> - 2006-12-07 11:48:22
|
Revision: 143 http://svn.sourceforge.net/feapi/?rev=143&view=rev Author: KoenTanghe Date: 2006-12-07 03:48:22 -0800 (Thu, 07 Dec 2006) Log Message: ----------- Corrected post-build steps. Modified Paths: -------------- trunk/FEAPI/build/Win/ExamplePluginFindMax/ExamplePluginFindMax.vcproj trunk/FEAPI/build/Win/ExamplePluginFindRms/ExamplePluginFindRms.vcproj trunk/FEAPI/build/Win/ExamplePluginLoudness/ExamplePluginLoudness.vcproj trunk/FEAPI/build/Win/ExamplePluginSpectral/ExamplePluginSpectral.vcproj trunk/FEAPI/build/Win/ExamplePluginZeroCrossings/ExamplePluginZeroCrossings.vcproj This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: Code r. c. l. <fea...@li...> - 2006-12-07 11:54:44
|
Ahh, it worked for me before, because the german windows has no space for the %ProgramFiles%-Directory... Cheers, (a) Code repository commit logs wrote: > Revision: 143 > http://svn.sourceforge.net/feapi/?rev=143&view=rev > Author: KoenTanghe > Date: 2006-12-07 03:48:22 -0800 (Thu, 07 Dec 2006) > > Log Message: > ----------- > Corrected post-build steps. > > Modified Paths: > -------------- > trunk/FEAPI/build/Win/ExamplePluginFindMax/ExamplePluginFindMax.vcproj > trunk/FEAPI/build/Win/ExamplePluginFindRms/ExamplePluginFindRms.vcproj > trunk/FEAPI/build/Win/ExamplePluginLoudness/ExamplePluginLoudness.vcproj > trunk/FEAPI/build/Win/ExamplePluginSpectral/ExamplePluginSpectral.vcproj > trunk/FEAPI/build/Win/ExamplePluginZeroCrossings/ExamplePluginZeroCrossings.vcproj > > > This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share your > opinions on IT & business topics through brief surveys - and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > Feapi-commits mailing list > Fea...@li... > https://lists.sourceforge.net/lists/listinfo/feapi-commits > -- dipl. ing. alexander lerch zplane.development :www.zplane.de katzbachstr.21 d-10965 berlin fon: +49.30.854 09 15.0 fax: +49.30.854 09 15.5 |