On Thu, Apr 17, 2008 at 2:02 PM, Agustin Cortés <[EMAIL PROTECTED]> wrote:
> I've read the tutorial, and i have one question...
>  ----------------------------
>  #ifndef MyProcessing_hxx
>  #define MyProcessing_hxx
>
>  #include <CLAM/InPort.hxx>
>  #include <CLAM/OutPort.hxx>
>  #include <CLAM/Processing.hxx>
>
>  // Those two configuration types could be the ones you choose.
>  // Your own ones or any type already in CLAM.
>  #include "MyInputDataType.hxx"
>  #include "MyOutputDataType.hxx"
>
>  class MyProcessing : public CLAM::Processing
>  {
>         CLAM::InPort<MyInputDataType> mIn;
>         CLAM::OutPort<MyOutputDataType> mOut;
>  public:
>         const char* GetClassName() const { return "MyProcessing"; }
>         MyProcessing(const Config& config = Config())
>                 : mIn("My Input", this)
>                 , mOut("My Output", this)
>         {
>                 Configure( config );
>         }
>
>         bool Do()
>         {
>                 bool result = Do(mIn.GetData(), mOut.GetData());
>                 // Tell the ports this is done
>                 mIn.Consume();
>                 mOut.Produce();
>                 return result;
>         }
>
>         bool Do(const MyInputDataType& in, MyOutputDataType& out)
>         {
>                 // Your implementation
>         }
>  ------------------
>  What kind of Type of Data is "MyInputDataType", i mean, what i read
>  from the audio from a mic, what kind of data is? is Audio? How do i
>  analyze data from that class?
>  Thanks..
>  Agustin

Hi Agustín! (btw, remember to answer to [EMAIL PROTECTED] not private mails[1])

could be many things, audio, fundamental, peaks, depends on your incontrol types

for audio things take a look at the simple AudioAmplifier processing
(CLAM/src/Processing/ArithOps/AudioAmplifier.hxx)

                /** Ports **/
                AudioInPort mInputAudio;
                AudioOutPort mOutputAudio;
...
                bool Do(const Audio& in, Audio& out)
                {
                        int size = in.GetSize();

                        TData gain = mInputControl.GetLastValue();

                        TData* inb = in.GetBuffer().GetPtr();
                        TData* outb = out.GetBuffer().GetPtr();

                        for (int i=0;i<size;i++)
                        {
                                *outb++ = (*inb++)*gain;
                        }

                        return true;
                }

if you dislike pointers this also works:
                bool Do(const Audio& in, Audio& out)
                {
                        int size = in.GetSize();

                        TData gain = mInputControl.GetLastValue();

                        DataArray& inb = in.GetBuffer();
                        DataArray& outb = out.GetBuffer();

                        for (int i=0;i<size;i++)
                        {
                                outb[i] = inb[i]*gain;
                        }

                        return true;
                }

cheers

[1] Pau or whoever who is the list admin, i think a 'reply-to' to the
list config like we have in clam-devel would be also useful here...
-- 
Hernán
http://h.ordia.com.ar
GnuPG: 0xEE8A3FE9

_______________________________________________
CLAM mailing list
[email protected]
http://clam.iua.upf.edu

Reply via email to