annotate trunk/doc/ModuleTemplate.h @ 283:ef14c9f2c1d2

-Added modules template -Changed header guard style to be more consistent with the Google style guide -Added Doyxfile to generate doxygen documentation -Added structure diagram -Updated swig script to reflect new modules -Changes Gaussians back to using floats and changed tolerance on tests - doubles are unnecessary here
author tomwalters
date Fri, 19 Feb 2010 12:15:56 +0000
parents
children 35a8fbf4ff82
rev   line source
tomwalters@283 1 // Copyright #YEAR#, #AUTHOR_NAME#
tomwalters@283 2 //
tomwalters@283 3 // AIM-C: A C++ implementation of the Auditory Image Model
tomwalters@283 4 // http://www.acousticscale.org/AIMC
tomwalters@283 5 //
tomwalters@283 6 // This program is free software: you can redistribute it and/or modify
tomwalters@283 7 // it under the terms of the GNU General Public License as published by
tomwalters@283 8 // the Free Software Foundation, either version 3 of the License, or
tomwalters@283 9 // (at your option) any later version.
tomwalters@283 10 //
tomwalters@283 11 // This program is distributed in the hope that it will be useful,
tomwalters@283 12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
tomwalters@283 13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
tomwalters@283 14 // GNU General Public License for more details.
tomwalters@283 15 //
tomwalters@283 16 // You should have received a copy of the GNU General Public License
tomwalters@283 17 // along with this program. If not, see <http://www.gnu.org/licenses/>.
tomwalters@283 18
tomwalters@283 19 /*!
tomwalters@283 20 * \author #AUTHOR_NAME# <#AUTHOR_EMAIL_ADDRESS#>
tomwalters@283 21 * \date created #TODAYS_DATE#
tomwalters@283 22 * \version \$Id$
tomwalters@283 23 */
tomwalters@283 24
tomwalters@283 25 #ifndef AIMC_MODULES_#MODULE_TYPE_CAPS#_#MODULE_ID_CAPS#_H_
tomwalters@283 26 #define AIMC_MODULES_#MODULE_TYPE_CAPS#_#MODULE_ID_CAPS#_H_
tomwalters@283 27
tomwalters@283 28 #include "Support/Module.h"
tomwalters@283 29
tomwalters@283 30 namespace aimc {
tomwalters@283 31 using std::vector;
tomwalters@283 32 class #MODULE_NAME# : public Module {
tomwalters@283 33 public:
tomwalters@283 34 explicit #MODULE_NAME#(Parameters *pParam);
tomwalters@283 35 virtual ~#MODULE_NAME#();
tomwalters@283 36
tomwalters@283 37 /*! \brief Process a buffer
tomwalters@283 38 */
tomwalters@283 39 virtual void Process(const SignalBank &input);
tomwalters@283 40
tomwalters@283 41 private:
tomwalters@283 42 /*! \brief Reset the internal state of the module
tomwalters@283 43 */
tomwalters@283 44 virtual void ResetInternal();
tomwalters@283 45
tomwalters@283 46 /*! \brief Prepare the module
tomwalters@283 47 * \param input Input signal
tomwalters@283 48 * \param output true on success false on failure
tomwalters@283 49 */
tomwalters@283 50 virtual bool InitializeInternal(const SignalBank &input);
tomwalters@283 51
tomwalters@283 52 float sample_rate_;
tomwalters@283 53 int buffer_length_;
tomwalters@283 54 int channel_count_;
tomwalters@283 55 };
tomwalters@283 56 } // namespace aimc
tomwalters@283 57
tomwalters@283 58 #endif // AIMC_MODULES_#MODULE_TYPE_CAPS#_#MODULE_ID_CAPS#_H_