/[svn]/linuxsampler/trunk/src/engines/gig/EngineChannel.h
ViewVC logotype

Contents of /linuxsampler/trunk/src/engines/gig/EngineChannel.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2330 - (show annotations) (download) (as text)
Mon Mar 12 15:14:31 2012 UTC (12 years, 1 month ago) by schoenebeck
File MIME type: text/x-c++hdr
File size: 2969 byte(s)
* Introduced new C++ API method EngineChannel::InstrumentFileName(int index)
  allowing to retrieve the whole list of files used for the loaded
  instrument on an engine channel (a.k.a. part). Some GigaStudio instruments
  for example are splitted over several files like "Foo.gig", "Foo.gx01",
  "Foo.gx02", ...
* Bumped version to 1.0.0.svn18

1 /***************************************************************************
2 * *
3 * LinuxSampler - modular, streaming capable sampler *
4 * *
5 * Copyright (C) 2003,2004 by Benno Senoner and Christian Schoenebeck *
6 * Copyright (C) 2005-2012 Christian Schoenebeck *
7 * Copyright (C) 2009 Grigor Iliev *
8 * *
9 * This program is free software; you can redistribute it and/or modify *
10 * it under the terms of the GNU General Public License as published by *
11 * the Free Software Foundation; either version 2 of the License, or *
12 * (at your option) any later version. *
13 * *
14 * This program is distributed in the hope that it will be useful, *
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
17 * GNU General Public License for more details. *
18 * *
19 * You should have received a copy of the GNU General Public License *
20 * along with this program; if not, write to the Free Software *
21 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, *
22 * MA 02111-1307 USA *
23 ***************************************************************************/
24
25 #ifndef __LS_GIG_ENGINECHANNEL_H__
26 #define __LS_GIG_ENGINECHANNEL_H__
27
28 #include "../AbstractEngine.h"
29 #include "../EngineChannelBase.h"
30 #include "../EngineChannelFactory.h"
31 #include "Voice.h"
32 #include <gig.h>
33
34 namespace LinuxSampler { namespace gig {
35 class EngineChannel: public LinuxSampler::EngineChannelBase<Voice, ::gig::DimensionRegion, ::gig::Instrument> {
36 public:
37 virtual void SendProgramChange(uint8_t Program);
38 virtual void LoadInstrument();
39 virtual void ResetInternal();
40 virtual String InstrumentFileName();
41 virtual String InstrumentFileName(int index);
42
43 virtual AbstractEngine::Format GetEngineFormat();
44
45 friend class Voice;
46 friend class Engine;
47 friend class LinuxSampler::EngineChannelFactory;
48
49 protected:
50 EngineChannel();
51 virtual ~EngineChannel();
52
53 float CurrentKeyDimension; ///< Current value (0-1.0) for the keyboard dimension, altered by pressing a keyswitching key.
54
55 virtual void ProcessKeySwitchChange(int key);
56
57 };
58
59 }} // namespace LinuxSampler::gig
60
61 #endif /* __LS_GIG_ENGINECHANNEL_H__ */

  ViewVC Help
Powered by ViewVC