synthclone  0.3.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
sampler.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_SAMPLER_H__
21 #define __SYNTHCLONE_SAMPLER_H__
22 
23 #include <synthclone/component.h>
24 #include <synthclone/samplerjob.h>
26 
27 namespace synthclone {
28 
33  class Sampler: public Component {
34 
35  Q_OBJECT
36 
37  public:
38 
49  virtual void
50  abortJob() = 0;
51 
134  virtual void
135  startJob(const SamplerJob &job, SampleStream &stream) = 0;
136 
137  signals:
138 
143  void
144  jobAborted();
145 
150  void
151  jobCompleted();
152 
160  void
161  jobError(const QString &message);
162 
163  protected:
164 
177  explicit
178  Sampler(const QString &name, QObject *parent=0);
179 
180  virtual
181  ~Sampler();
182 
183  };
184 
185 }
186 
187 #endif