/[svn]/linuxsampler/trunk/src/drivers/midi/MidiInputPort.h
ViewVC logotype

Diff of /linuxsampler/trunk/src/drivers/midi/MidiInputPort.h

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

revision 675 by schoenebeck, Wed Jun 22 22:09:28 2005 UTC revision 846 by persson, Sun Mar 19 16:38:22 2006 UTC
# Line 31  Line 31 
31  #include "midi.h"  #include "midi.h"
32  #include "MidiInputDevice.h"  #include "MidiInputDevice.h"
33  #include "../../engines/common/EngineChannel.h"  #include "../../engines/common/EngineChannel.h"
34    #include "../../common/SynchronizedConfig.h"
35    
36  namespace LinuxSampler {  namespace LinuxSampler {
37    
# Line 104  namespace LinuxSampler { Line 105  namespace LinuxSampler {
105               */               */
106              std::map<String,DeviceRuntimeParameter*> PortParameters();              std::map<String,DeviceRuntimeParameter*> PortParameters();
107    
108                /**
109                 * Registers that an engine wants to have sysex messages.
110                 */
111                static void AddSysexListener(Engine* engine);
112    
113                /**
114                 * Removes engine from list of engines getting sysex
115                 * messages.
116                 *
117                 * @returns true if engine was removed, false if it wasn't
118                 *          present in the list.
119                 */
120                static bool RemoveSysexListener(Engine* engine);
121    
122    
123              /////////////////////////////////////////////////////////////////              /////////////////////////////////////////////////////////////////
# Line 199  namespace LinuxSampler { Line 211  namespace LinuxSampler {
211              MidiInputDevice* pDevice;              MidiInputDevice* pDevice;
212              int portNumber;              int portNumber;
213              std::map<String,DeviceRuntimeParameter*> Parameters;  ///< All port parameters.              std::map<String,DeviceRuntimeParameter*> Parameters;  ///< All port parameters.
214              std::set<EngineChannel*> MidiChannelMap[17]; ///< Contains the list of connected engines for each MIDI channel, where index 0 points to the list of engines which are connected to all MIDI channels. Usually it's not necessary for the descendant to use this map, instead it should just use the Dispatch* methods.              typedef std::set<EngineChannel*> MidiChannelMap_t[17];
215                SynchronizedConfig<MidiChannelMap_t> MidiChannelMap; ///< Contains the list of connected engines for each MIDI channel, where index 0 points to the list of engines which are connected to all MIDI channels. Usually it's not necessary for the descendant to use this map, instead it should just use the Dispatch* methods.
216                SynchronizedConfig<MidiChannelMap_t>::Reader MidiChannelMapReader; ///< MIDI thread access to MidiChannelMap
217              Mutex MidiChannelMapMutex; ///< Used to protect the MidiChannelMap from being used at the same time by different threads.              Mutex MidiChannelMapMutex; ///< Used to protect the MidiChannelMap from being used at the same time by different threads.
218                SynchronizedConfig<std::set<Engine*> >::Reader SysexListenersReader; ///< MIDI thread access to SysexListeners
219    
220              /**              /**
221               * Constructor               * Constructor
# Line 216  namespace LinuxSampler { Line 231  namespace LinuxSampler {
231    
232          private:          private:
233              EngineChannel* pPreviousProgramChangeEngineChannel; ///< Points to the engine channel which was connected by the previous DispatchProgramChange() call.              EngineChannel* pPreviousProgramChangeEngineChannel; ///< Points to the engine channel which was connected by the previous DispatchProgramChange() call.
234                static SynchronizedConfig<std::set<Engine*> > SysexListeners; ///< All engines that are listening to sysex messages.
235      };      };
236    
237  } // namsepace LinuxSampler  } // namsepace LinuxSampler

Legend:
Removed from v.675  
changed lines
  Added in v.846

  ViewVC Help
Powered by ViewVC