synthclone  0.3.0
effect.h
Go to the documentation of this file.
1 /*
2  * libsynthclone - a plugin API for `synthclone`
3  * Copyright (C) 2011 Devin Anderson
4  *
5  * This library is free software; you can redistribute it and/or modify it
6  * under the terms of the GNU Lesser General Public License as published by the
7  * Free Software Foundation; either version 2.1 of the License, or (at your
8  * option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful, but WITHOUT
11  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
13  * for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public License
16  * along with this library; if not, write to the Free Software Foundation,
17  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18  */
19 
20 #ifndef __SYNTHCLONE_EFFECT_H__
21 #define __SYNTHCLONE_EFFECT_H__
22 
23 #include <synthclone/component.h>
26 #include <synthclone/zone.h>
27 
28 namespace synthclone {
29 
34  class Effect: public Component {
35 
36  Q_OBJECT
37 
38  public:
39 
63  virtual void
64  process(const Zone &zone, SampleInputStream &inputStream,
65  SampleOutputStream &outputStream) = 0;
66 
67  protected:
68 
81  explicit
82  Effect(const QString &name, QObject *parent=0);
83 
84  virtual
85  ~Effect();
86 
87  };
88 
89 }
90 
91 #endif
Component capable of altering samples in some way.
Definition: effect.h:34
Base class for synthclone components.
Definition: component.h:33
Definition: component.h:26
Zone objects contains data about how Sample objects should be acquired from a Sampler.
Definition: zone.h:37
virtual void process(const Zone &zone, SampleInputStream &inputStream, SampleOutputStream &outputStream)=0
Called to apply this Effect to audio data.
Used to write sample data to a sample file.
Definition: sampleoutputstream.h:34
Used to read sample data from a sample file.
Definition: sampleinputstream.h:34
Effect(const QString &name, QObject *parent=0)
Constructs a new Effect object.