00001 00002 // /*! \file FEAPIExamplePluginFindMax.h: \brief interface of the CFindAbsoluteMax class. */ 00003 // 00004 // Copyright (c) 2004-2007, Alexander Lerch, zplane.development GbR 00005 // All rights reserved. 00006 // 00007 // Redistribution and use in source and binary forms, with or without 00008 // modification, are permitted provided that the following conditions 00009 // are met: 00010 // 00011 // * Redistributions of source code must retain the above copyright 00012 // notice, this list of conditions and the following disclaimer. 00013 // * Redistributions in binary form must reproduce the above 00014 // copyright notice, this list of conditions and the following 00015 // disclaimer in the documentation and/or other materials 00016 // provided with the distribution. 00017 // * Neither the name of the FEAPI development team nor the names 00018 // of its contributors may be used to endorse or promote products 00019 // derived from this software without specific prior written 00020 // permission. 00021 // 00022 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 00023 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 00024 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 00025 // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 00026 // COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 00027 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 00028 // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 00029 // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 00030 // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 00031 // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 00032 // ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 00033 // POSSIBILITY OF SUCH DAMAGE. 00034 // 00036 00037 #if !defined(FIND_ABSOLUTE_MAX_HEADER_INCLUDED__) 00038 #define FIND_ABSOLUTE_MAX_HEADER_INCLUDED__ 00039 00040 00041 #include "FEAPIPluginBase.h" 00042 00050 class CFindAbsoluteMax : public CFeatureExtractBase 00051 { 00052 public: 00053 00054 CFindAbsoluteMax (); 00055 00056 virtual ~CFindAbsoluteMax (); 00057 00058 00060 // method declaration 00061 // if you do not intend to use some of these functions, just delete them and the default 00062 // values will be returned 00063 00064 FEAPI_Error_t SetPluginParameter ( int iParameterIndex, 00065 float fValue); 00066 00067 float GetPluginParameter ( int iParameterIndex); 00068 00069 00070 int GetPluginResultLatency (int iResultIndex); 00071 00072 float GetPluginProperty ( FEAPI_PluginProperty_t ePluginProperty); 00073 00074 FEAPI_Error_t InitializePlugin ( float fInputSampleRate, 00075 int iNumberOfAudioChannels, 00076 int iHostApiMajorVersion, 00077 FEAPI_UserData_t *pstUserData); 00078 00079 FEAPI_Error_t ProcessPlugin ( const float **ppfInputBuffer, 00080 const FEAPI_TimeStamp_t *ptFEAPI_TimeStamp, 00081 int iNumberOfFrames); 00082 00083 FEAPI_Error_t ProcessPluginDone (); 00084 00085 00086 int GetPluginSizeOfResult (int iResultIndex); 00087 00088 FEAPI_Error_t GetPluginResult ( int iResultIndex, 00089 float *pfResult, 00090 FEAPI_TimeStamp_t *ptFEAPI_TimeStamp); 00091 00092 00093 FEAPI_Error_t ResetPlugin (); 00094 00095 private: 00096 00097 // remove and add variables acc. your needs 00098 FEAPI_SignalDescription_t m_stResultDescription; 00099 00100 // this buffer will contain the maximum value per call 00101 float *m_pfMaxValue; 00102 FEAPI_TimeStamp_t *m_ptTimeStamp; 00103 00104 // this bool will signal if a result is available 00105 bool *m_pbIHaveResults; 00106 00107 }; 00108 00109 #endif // #if !defined(FIND_ABSOLUTE_MAX_HEADER_INCLUDED__) 00110 00111 00112