[Clam-devel] Commit #11195: templated plugins generator
David García Garzón
dgarcia at iua.upf.edu
Mon Mar 3 19:38:45 PST 2008
Great, Hernan.
Shouldn't be the port type an important input to specify?
On Tuesday 04 Març 2008, Hernán Ordiales wrote:
> I have added a new script in the same line: TemplateGenerator.py
>
> Usage: ./TemplateGenerator TEMPLATEFILE
>
> Example of input file:
> Name:TestTemplate
> BaseClass:Processing
> i:AudioInPort
> i:AudioInPort
> i:AudioInPort
> i:AudioInPort
> o:AudioOutPort
> o:AudioOutPort
> ic:i,0,100
> ic:i,0,100
> ic:i,0,100
> ic:i,0,100
>
> Convention:
> i (input) | o (output): type
> ic (input control) | oc (output control): integer/float, range
>
> Then these two commands:
> ./TemplateGenerator.py exampleinputfile
> ./TemplatedPluginsGenerator.py TestProcessing TestTemplate "Fundació
> Barcelona Media Universitat Pompeu Fabra" GPL 2007
>
> Generates:
>
> "TestProcessing.hxx"
>
> /*
> * Copyright (c) 2007 Fundació Barcelona Media Universitat Pompeu Fabra
> *
> *
> * This program is free software; you can redistribute it and/or modify
> * it under the terms of the GNU General Public License as published by
> * the Free Software Foundation; either version 2 of the License, or
> * (at your option) any later version.
> *
> * This program is distributed in the hope that it will be useful,
> * but WITHOUT ANY WARRANTY; without even the implied warranty of
> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> * GNU General Public License for more details.
> *
> * You should have received a copy of the GNU General Public License
> * along with this program; if not, write to the Free Software
> * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
> USA *
> */
>
> #ifndef _TestProcessing_
> #define _TestProcessing_
>
> #include <CLAM/Processing.hxx>
> #include <CLAM/AudioInPort.hxx>
> #include <CLAM/AudioOutPort.hxx>
> #include <CLAM/InControl.hxx>
>
> namespace CLAM {
>
> /** \brief Short description
> *
> * Description
> */
> class TestProcessing: public Processing
> {
> /** This method returns the name of the object
> * @return Char pointer with the name of object
> */
> const char *GetClassName() const { return "TestProcessing"; }
>
> /** Ports **/
> AudioInPort mInputAudiooutport0;
> AudioInPort mInputAudiooutport1;
> AudioInPort mInputAudiooutport2;
> AudioInPort mInputAudiooutport3;
> AudioOutPort mOutputAudiooutport0;
> AudioOutPort mOutputAudiooutport1;
>
> /** Controls **/
> InControl mInputControl0;
> InControl mInputControl1;
> InControl mInputControl2;
> InControl mInputControl3;
>
> public:
> TestProcessing(const Config & config=Config())
>
> mInputAudiooutport0("Input 0", this),
> mInputAudiooutport1("Input 1", this),
> mInputAudiooutport2("Input 2", this),
> mInputAudiooutport3("Input 3", this),
> mOutputAudiooutport0("Output 0", this),
> mOutputAudiooutport1("Output 1", this),
> mInputControl0("Control 0", this),
> mInputControl1("Control 1", this),
> mInputControl2("Control 2", this),
> mInputControl3("Control 3", this)
> {
> Configure( config );
> }
>
> ~TestProcessing() {}
>
> bool Do()
> {
> return true;
> }
>
> private:
>
> /** Child processings **/
>
> };
>
> };//namespace CLAM
>
> #endif // _TestProcessing_
>
>
> and "TestProcessing.cxx":
>
> /*
> * Copyright (c) 2007 Fundació Barcelona Media Universitat Pompeu Fabra
> *
> *
> * This program is free software; you can redistribute it and/or modify
> * it under the terms of the GNU General Public License as published by
> * the Free Software Foundation; either version 2 of the License, or
> * (at your option) any later version.
> *
> * This program is distributed in the hope that it will be useful,
> * but WITHOUT ANY WARRANTY; without even the implied warranty of
> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> * GNU General Public License for more details.
> *
> * You should have received a copy of the GNU General Public License
> * along with this program; if not, write to the Free Software
> * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
> USA *
> */
>
> #include "TestProcessing.hxx"
> #include <CLAM/ProcessingFactory.hxx>
>
> namespace CLAM
> {
>
> namespace Hidden
> {
> static const char * metadata[] = {
> "key", "TestProcessing",
> "category", "Plugins",
> "description", "TestProcessing",
> 0
> };
> static FactoryRegistrator<ProcessingFactory, TestProcessing> reg =
> metadata; }
>
> }
--
David García Garzón
(Work) dgarcia at iua dot upf anotherdot es
http://www.iua.upf.edu/~dgarcia
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.clam-project.org/pipermail/clam-devel-clam-project.org/attachments/20080304/b1a689ee/attachment-0001.sig>
More information about the clam-devel
mailing list