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

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 225 by schoenebeck, Sun Aug 22 14:46:47 2004 UTC revision 242 by schoenebeck, Wed Sep 15 13:59:08 2004 UTC
# Line 29  Line 29 
29  # warning Engine.h included  # warning Engine.h included
30  #endif // DEBUG_HEADERS  #endif // DEBUG_HEADERS
31    
32    #include <map>
33    
34  #include "../../common/RingBuffer.h"  #include "../../common/RingBuffer.h"
35  #include "../../common/RTELMemoryPool.h"  #include "../../common/RTELMemoryPool.h"
36  #include "../../common/ConditionServer.h"  #include "../../common/ConditionServer.h"
# Line 44  Line 46 
46    
47  namespace LinuxSampler { namespace gig {  namespace LinuxSampler { namespace gig {
48    
49        using std::map;
50    
51      // just symbol prototyping      // just symbol prototyping
52      class Voice;      class Voice;
53      class DiskThread;      class DiskThread;
# Line 94  namespace LinuxSampler { namespace gig { Line 98  namespace LinuxSampler { namespace gig {
98              virtual void ResourceUpdated(::gig::Instrument* pOldResource, ::gig::Instrument* pNewResource, void* pUpdateArg);              virtual void ResourceUpdated(::gig::Instrument* pOldResource, ::gig::Instrument* pNewResource, void* pUpdateArg);
99          protected:          protected:
100              struct midi_key_info_t {              struct midi_key_info_t {
101                  RTEList<Voice>* pActiveVoices; ///< Contains the active voices associated with the MIDI key.                  RTEList<Voice>* pActiveVoices;  ///< Contains the active voices associated with the MIDI key.
102                  bool            KeyPressed;    ///< Is true if the respective MIDI key is currently pressed.                  bool            KeyPressed;     ///< Is true if the respective MIDI key is currently pressed.
103                  bool            Active;        ///< If the key contains active voices.                  bool            Active;         ///< If the key contains active voices.
104                  uint*           pSelf;         ///< hack to allow fast deallocation of the key from the list of active keys                  bool            ReleaseTrigger; ///< If we have to launch release triggered voice(s) when the key is released
105                  RTEList<Event>* pEvents;       ///< Key specific events (only Note-on, Note-off and sustain pedal currently)                  uint*           pSelf;          ///< hack to allow fast deallocation of the key from the list of active keys
106                    RTEList<Event>* pEvents;        ///< Key specific events (only Note-on, Note-off and sustain pedal currently)
107              };              };
108    
109              static InstrumentResourceManager Instruments;              static InstrumentResourceManager Instruments;
# Line 124  namespace LinuxSampler { namespace gig { Line 129  namespace LinuxSampler { namespace gig {
129              float*                  pSynthesisParameters[Event::destination_count]; ///< Matrix with final synthesis parameters for the current audio fragment which will be used in the main synthesis loop.              float*                  pSynthesisParameters[Event::destination_count]; ///< Matrix with final synthesis parameters for the current audio fragment which will be used in the main synthesis loop.
130              biquad_param_t*         pBasicFilterParameters; ///< Biquad parameters of the basic bandpass filter.              biquad_param_t*         pBasicFilterParameters; ///< Biquad parameters of the basic bandpass filter.
131              biquad_param_t*         pMainFilterParameters;  ///< Main biquad parameters of the individual filter (lowpass / bandpass / highpass).              biquad_param_t*         pMainFilterParameters;  ///< Main biquad parameters of the individual filter (lowpass / bandpass / highpass).
132                map<uint,uint*>         ActiveKeyGroups;        ///< Contains active keys (in case they belong to a key group) ordered by key group ID.
133              RIFF::File*             pRIFF;              RIFF::File*             pRIFF;
134              ::gig::File*            pGig;              ::gig::File*            pGig;
135              ::gig::Instrument*      pInstrument;              ::gig::Instrument*      pInstrument;
# Line 142  namespace LinuxSampler { namespace gig { Line 148  namespace LinuxSampler { namespace gig {
148              void ProcessNoteOff(Event* pNoteOffEvent);              void ProcessNoteOff(Event* pNoteOffEvent);
149              void ProcessPitchbend(Event* pPitchbendEvent);              void ProcessPitchbend(Event* pPitchbendEvent);
150              void ProcessControlChange(Event* pControlChangeEvent);              void ProcessControlChange(Event* pControlChangeEvent);
151              void KillVoice(Voice* pVoice);              void LaunchVoice(Event* pNoteOnEvent, int iLayer = 0, bool ReleaseTriggerVoice = false);
152                void KillVoiceImmediately(Voice* pVoice);
153              void ResetSynthesisParameters(Event::destination_t dst, float val);              void ResetSynthesisParameters(Event::destination_t dst, float val);
154              void ResetInternal();              void ResetInternal();
155    

Legend:
Removed from v.225  
changed lines
  Added in v.242

  ViewVC Help
Powered by ViewVC