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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2611 - (show annotations) (download) (as text)
Mon Jun 9 19:20:37 2014 UTC (9 years, 10 months ago) by schoenebeck
File MIME type: text/x-c++hdr
File size: 4085 byte(s)
* Fixed crash when loading an instrument script.
* Fixed "init" script handler only to be executed once:
  when the script was loaded.
* Fixed aftertouch script event which always had value zero
  and controller number was set to aftertouch value instead.
* gig Engine: Fixed handling of "smartmidi" dimension, which
  was recognized as "unknown" dimension.
* Fixed script function gig_set_dim_zone(): was accessing
  wrong event.
* ls_instr_script command line tool: is now not limited to
  core language scripts, but can now also parse sampler format
  dependent instrument scripts, with the respective specific
  built-in script variables and functions.
* ScriptVM: Fixed runtime behavior of "and" and "or" binary
  script expressions, which also evaluated the right hand side
  of the expression even if the left hand side already failed
  the overall expression semantic to become true.
* Bumped version (1.0.0.svn46).

1 /***************************************************************************
2 * *
3 * LinuxSampler - modular, streaming capable sampler *
4 * *
5 * Copyright (C) 2003,2004 by Benno Senoner and Christian Schoenebeck *
6 * Copyright (C) 2005-2008 Christian Schoenebeck *
7 * Copyright (C) 2009-2010 Christian Schoenebeck and 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_ENGINE_H__
26 #define __LS_GIG_ENGINE_H__
27
28 #include "DiskThread.h"
29 #include "../EngineBase.h"
30 #include "Voice.h"
31 #include <gig.h>
32
33 namespace LinuxSampler { namespace gig {
34
35 class Engine: public LinuxSampler::EngineBase<Voice, ::gig::Region, ::gig::DimensionRegion, DiskThread, InstrumentResourceManager, ::gig::Instrument> {
36 public:
37 Engine() { }
38 virtual ~Engine() { }
39 // implementation of abstract methods derived from class 'LinuxSampler::Engine'
40 virtual bool DiskStreamSupported();
41 virtual String Description();
42 virtual String Version();
43
44 virtual Format GetEngineFormat();
45
46 virtual void ProcessControlChange (
47 LinuxSampler::EngineChannel* pEngineChannel,
48 Pool<Event>::Iterator& itControlChangeEvent
49 ) OVERRIDE;
50 virtual void ProcessChannelPressure(LinuxSampler::EngineChannel* pEngineChannel, Pool<Event>::Iterator& itChannelPressureEvent) OVERRIDE;
51 virtual void ProcessPolyphonicKeyPressure(LinuxSampler::EngineChannel* pEngineChannel, Pool<Event>::Iterator& itNotePressureEvent) OVERRIDE;
52 virtual void CreateInstrumentScriptVM() OVERRIDE;
53 friend class Voice;
54
55 protected:
56 virtual DiskThread* CreateDiskThread();
57
58 virtual Pool<Voice>::Iterator LaunchVoice (
59 LinuxSampler::EngineChannel* pEngineChannel,
60 Pool<Event>::Iterator& itNoteOnEvent,
61 int iLayer,
62 bool ReleaseTriggerVoice,
63 bool VoiceStealing,
64 bool HandleKeyGroupConflicts
65 );
66
67 virtual void TriggerNewVoices (
68 LinuxSampler::EngineChannel* pEngineChannel,
69 RTList<Event>::Iterator& itNoteOnEvent,
70 bool HandleKeyGroupConflicts
71 );
72
73 void TriggerReleaseVoices (
74 LinuxSampler::EngineChannel* pEngineChannel,
75 RTList<Event>::Iterator& itNoteOffEvent
76 );
77 };
78
79 }} // namespace LinuxSampler::gig
80
81 #endif /* __LS_GIG_ENGINE_H__ */
82

  ViewVC Help
Powered by ViewVC