/[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 2559 - (hide annotations) (download) (as text)
Sun May 18 17:38:25 2014 UTC (10 years ago) by schoenebeck
File MIME type: text/x-c++hdr
File size: 4023 byte(s)
* Aftertouch: extended API to explicitly handle channel pressure and
  polyphonic key pressure events (so far polyphonic pressure was not
  supported at all, and channel pressure was rerouted as CC128 but not
  used so far).
* Gig Engine: Fixed support for 'aftertouch' attenuation controller.
* Bumped version (1.0.0.svn39).

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 iliev 2012 friend class Voice;
53 persson 831
54 iliev 2012 protected:
55     virtual DiskThread* CreateDiskThread();
56 persson 1644
57 iliev 2012 virtual Pool<Voice>::Iterator LaunchVoice (
58     LinuxSampler::EngineChannel* pEngineChannel,
59     Pool<Event>::Iterator& itNoteOnEvent,
60     int iLayer,
61     bool ReleaseTriggerVoice,
62     bool VoiceStealing,
63     bool HandleKeyGroupConflicts
64     );
65 schoenebeck 53
66 iliev 2012 virtual void TriggerNewVoices (
67     LinuxSampler::EngineChannel* pEngineChannel,
68     RTList<Event>::Iterator& itNoteOnEvent,
69     bool HandleKeyGroupConflicts
70     );
71 schoenebeck 53
72 iliev 2012 void TriggerReleaseVoices (
73     LinuxSampler::EngineChannel* pEngineChannel,
74     RTList<Event>::Iterator& itNoteOffEvent
75     );
76 schoenebeck 53 };
77    
78     }} // namespace LinuxSampler::gig
79    
80 iliev 2012 #endif /* __LS_GIG_ENGINE_H__ */
81    

  ViewVC Help
Powered by ViewVC