/[svn]/linuxsampler/trunk/src/engines/common/Engine.h
ViewVC logotype

Contents of /linuxsampler/trunk/src/engines/common/Engine.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 411 - (show annotations) (download) (as text)
Sat Feb 26 02:01:14 2005 UTC (19 years, 2 months ago) by schoenebeck
File MIME type: text/x-c++hdr
File size: 3083 byte(s)
* design change: using now one sampler engine instance and one disk thread
  instance for all sampler channels that are connected to the same audio
  output device (and are using the same engine type of course)
* added EngineFactory / EngineChannelFactory to remove the annoying build
  dependencies e.g. of the lscpserver to the actual sampler engine
  implementations
* bumped version to 0.3.0 (current CVS state is still quite broken,
  previous, stable CVS version was tagged as "v0_2_0" and is also available
  as source tarball)

1 /***************************************************************************
2 * *
3 * LinuxSampler - modular, streaming capable sampler *
4 * *
5 * Copyright (C) 2003, 2004 by Benno Senoner and Christian Schoenebeck *
6 * Copyright (C) 2005 Christian Schoenebeck *
7 * *
8 * This program is free software; you can redistribute it and/or modify *
9 * it under the terms of the GNU General Public License as published by *
10 * the Free Software Foundation; either version 2 of the License, or *
11 * (at your option) any later version. *
12 * *
13 * This program is distributed in the hope that it will be useful, *
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
16 * GNU General Public License for more details. *
17 * *
18 * You should have received a copy of the GNU General Public License *
19 * along with this program; if not, write to the Free Software *
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, *
21 * MA 02111-1307 USA *
22 ***************************************************************************/
23
24 #ifndef __LS_ENGINE_H__
25 #define __LS_ENGINE_H__
26
27 #include "../../common/global.h"
28
29 namespace LinuxSampler {
30
31 /** @brief LinuxSampler Sampler Engine Interface
32 *
33 * Abstract base interface class for all LinuxSampler engines which
34 * defines all mandatory methods which have to be implemented by all
35 * sampler engine implementations.
36 */
37 class Engine {
38 public:
39
40 /////////////////////////////////////////////////////////////////
41 // abstract methods
42 // (these have to be implemented by the descendant)
43
44 virtual void SendSysex(void* pData, uint Size) = 0;
45 virtual void Reset() = 0;
46 virtual void Enable() = 0;
47 virtual void Disable() = 0;
48 virtual uint VoiceCount() = 0;
49 virtual uint VoiceCountMax() = 0;
50 virtual bool DiskStreamSupported() = 0;
51 virtual uint DiskStreamCount() = 0;
52 virtual uint DiskStreamCountMax() = 0;
53 virtual String DiskStreamBufferFillBytes() = 0;
54 virtual String DiskStreamBufferFillPercentage() = 0;
55 virtual String Description() = 0;
56 virtual String Version() = 0;
57 virtual String EngineName() = 0;
58
59 virtual ~Engine() {};
60 };
61
62 } // namespace LinuxSampler
63
64 #endif // __LS_ENGINE_H__

  ViewVC Help
Powered by ViewVC