synthclone  0.3.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
sample.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_SAMPLE_H__
21 #define __SYNTHCLONE_SAMPLE_H__
22 
23 #include <QtCore/QObject>
24 #include <QtCore/QString>
25 
26 namespace synthclone {
27 
28  class SampleInputStream;
29  class SampleOutputStream;
30 
37  class Sample: public QObject {
38 
39  Q_OBJECT
40 
41  friend class SampleInputStream;
42  friend class SampleOutputStream;
43 
44  public:
45 
60  explicit
61  Sample(bool temporary=true, QObject *parent=0);
62 
79  explicit
80  Sample(const QString &path, bool temporary=false, QObject *parent=0);
81 
98  explicit
99  Sample(const Sample &sample, bool temporary=true, QObject *parent=0);
100 
119  Sample(const Sample &sample, const QString &path, bool temporary=false,
120  QObject *parent=0);
121 
127  ~Sample();
128 
136  QString
137  getPath() const;
138 
147  bool
148  isTemporary() const;
149 
150  public slots:
151 
160  void
161  setTemporary(bool temporary);
162 
163  signals:
164 
172  void
173  temporaryChanged(bool temporary);
174 
175  private:
176 
177  void
178  initializeData(const Sample &sample);
179 
180  void
181  initializeTemporaryPath();
182 
183  QString path;
184  bool temporary;
185 
186  };
187 
188 }
189 
190 #endif