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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2600 - (hide annotations) (download) (as text)
Sat Jun 7 00:16:03 2014 UTC (9 years, 11 months ago) by schoenebeck
File MIME type: text/x-c++hdr
File size: 4114 byte(s)
* Implemented built-in instrument script function "set_controller()".
* Fixed built-in script functions "ignore_event()" and
  "ignore_controller()".
* Added extended instrument script VM for the Gigasampler/GigaStudio format
  sampler engine, which extends the general instrument script VM with Giga
  format specific variables and functions.
* Giga format instrument scripts: added built-in script int constant
  variables $GIG_DIM_CHANNEL, $GIG_DIM_LAYER, $GIG_DIM_VELOCITY,
  $GIG_DIM_AFTERTOUCH, $GIG_DIM_RELEASE, $GIG_DIM_KEYBOARD,
  $GIG_DIM_ROUNDROBIN, $GIG_DIM_RANDOM, $GIG_DIM_SMARTMIDI,
  $GIG_DIM_ROUNDROBINKEY, $GIG_DIM_MODWHEEL, $GIG_DIM_BREATH,
  $GIG_DIM_FOOT, $GIG_DIM_PORTAMENTOTIME, $GIG_DIM_EFFECT1,
  $GIG_DIM_EFFECT2, $GIG_DIM_GENPURPOSE1, $GIG_DIM_GENPURPOSE2,
  $GIG_DIM_GENPURPOSE3, $GIG_DIM_GENPURPOSE4, $GIG_DIM_SUSTAIN,
  $GIG_DIM_PORTAMENTO, $GIG_DIM_SOSTENUTO, $GIG_DIM_SOFT,
  $GIG_DIM_GENPURPOSE5, $GIG_DIM_GENPURPOSE6, $GIG_DIM_GENPURPOSE7,
  $GIG_DIM_GENPURPOSE8, $GIG_DIM_EFFECT1DEPTH, $GIG_DIM_EFFECT2DEPTH,
  $GIG_DIM_EFFECT3DEPTH, $GIG_DIM_EFFECT4DEPTH, $GIG_DIM_EFFECT5DEPTH.
* Giga format instrument scripts: Implemented built-in script function
  "gig_set_dim_zone(event_id, dimension, zone)", which allows to override
  dimension zone(s) for new voices.
* Bumped version (1.0.0.svn45).

1 schoenebeck 53 /***************************************************************************
2     * *
3     * LinuxSampler - modular, streaming capable sampler *
4     * *
5 persson 1644 * Copyright (C) 2003,2004 by Benno Senoner and Christian Schoenebeck *
6 persson 2072 * Copyright (C) 2005-2008 Christian Schoenebeck *
7     * Copyright (C) 2009-2010 Christian Schoenebeck and Grigor Iliev *
8 schoenebeck 53 * *
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 iliev 2012 #define __LS_GIG_ENGINE_H__
27 schoenebeck 53
28 iliev 2012 #include "DiskThread.h"
29     #include "../EngineBase.h"
30     #include "Voice.h"
31 schoenebeck 505 #include <gig.h>
32 schoenebeck 239
33 schoenebeck 53 namespace LinuxSampler { namespace gig {
34    
35 iliev 2012 class Engine: public LinuxSampler::EngineBase<Voice, ::gig::Region, ::gig::DimensionRegion, DiskThread, InstrumentResourceManager, ::gig::Instrument> {
36 persson 438 public:
37 iliev 2012 Engine() { }
38     virtual ~Engine() { }
39 schoenebeck 411 // implementation of abstract methods derived from class 'LinuxSampler::Engine'
40 iliev 2012 virtual bool DiskStreamSupported();
41     virtual String Description();
42     virtual String Version();
43 persson 2072
44 iliev 2012 virtual Format GetEngineFormat();
45 persson 438
46 iliev 2012 virtual void ProcessControlChange (
47     LinuxSampler::EngineChannel* pEngineChannel,
48     Pool<Event>::Iterator& itControlChangeEvent
49 schoenebeck 2559 ) 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 schoenebeck 2600 virtual LinuxSampler::InstrumentScriptVM* CreateInstrumentScriptVM() OVERRIDE;
53 iliev 2012 friend class Voice;
54 persson 831
55 iliev 2012 protected:
56     virtual DiskThread* CreateDiskThread();
57 persson 1644
58 iliev 2012 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 schoenebeck 53
67 iliev 2012 virtual void TriggerNewVoices (
68     LinuxSampler::EngineChannel* pEngineChannel,
69     RTList<Event>::Iterator& itNoteOnEvent,
70     bool HandleKeyGroupConflicts
71     );
72 schoenebeck 53
73 iliev 2012 void TriggerReleaseVoices (
74     LinuxSampler::EngineChannel* pEngineChannel,
75     RTList<Event>::Iterator& itNoteOffEvent
76     );
77 schoenebeck 53 };
78    
79     }} // namespace LinuxSampler::gig
80    
81 iliev 2012 #endif /* __LS_GIG_ENGINE_H__ */
82    

  ViewVC Help
Powered by ViewVC