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

Diff of /linuxsampler/trunk/src/engines/EngineChannel.h

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

revision 1001 by schoenebeck, Wed Dec 27 16:17:08 2006 UTC revision 1130 by iliev, Sun Mar 25 18:59:14 2007 UTC
# Line 1  Line 1 
1  /***************************************************************************  /***************************************************************************
2   *                                                                         *   *                                                                         *
3   *   Copyright (C) 2005, 2006 Christian Schoenebeck                        *   *   Copyright (C) 2005 - 2007 Christian Schoenebeck                       *
4   *                                                                         *   *                                                                         *
5   *   This program is free software; you can redistribute it and/or modify  *   *   This program is free software; you can redistribute it and/or modify  *
6   *   it under the terms of the GNU General Public License as published by  *   *   it under the terms of the GNU General Public License as published by  *
# Line 21  Line 21 
21  #ifndef __LS_ENGINECHANNEL_H__  #ifndef __LS_ENGINECHANNEL_H__
22  #define __LS_ENGINECHANNEL_H__  #define __LS_ENGINECHANNEL_H__
23    
24    #include "../EventListeners.h"
25  #include "../drivers/audio/AudioOutputDevice.h"  #include "../drivers/audio/AudioOutputDevice.h"
26  #include "../drivers/midi/midi.h"  #include "../drivers/midi/midi.h"
27  #include "../drivers/midi/MidiInputDevice.h"  #include "../drivers/midi/MidiInputDevice.h"
# Line 225  namespace LinuxSampler { Line 226  namespace LinuxSampler {
226               */               */
227              void SetMidiInstrumentMap(int MidiMap) throw (Exception);              void SetMidiInstrumentMap(int MidiMap) throw (Exception);
228    
229                /**
230                 * Set MIDI Registered Parameter Number (RPN) Controller
231                 * (upper 8 bits / coarse).
232                 */
233                void SetMidiRpnControllerMsb(uint8_t CtrlMSB);
234    
235                /**
236                 * Set MIDI Registered Parameter Number (RPN) Controller
237                 * (lower 8 bits / fine).
238                 */
239                void SetMidiRpnControllerLsb(uint8_t CtrlLSB);
240    
241                /**
242                 * Reset to no RPN controller currently selected.
243                 */
244                void ResetMidiRpnController();
245                
246                 /**
247                 * Registers the specified listener to be notified when the number
248                 * of effect sends on this channel is changed.
249                 */
250                void AddFxSendCountListener(FxSendCountListener* l);
251    
252                /**
253                 * Removes the specified listener.
254                 */
255                void RemoveFxSendCountListener(FxSendCountListener* l);
256    
257                /**
258                 * Removes all listeners.
259                 */
260                void RemoveAllFxSendCountListeners();
261    
262                /**
263                 * Get currently selected MIDI Registered Parameter Number
264                 * (RPN) Controller, this method will return the already merged
265                 * value (MSB and LSB value).
266                 *
267                 * @e WARNING: you have to call @c ResetMidiRpnController()
268                 * after using this value, otherwise all subsequent MIDI CC #6
269                 * (Data) messages are interpreted as RPN controller value
270                 * messages.
271                 *
272                 * @returns currently selected RPN controller number, a negative
273                 *          value if no RPN controller currently selected
274                 */
275                int GetMidiRpnController();
276    
277              int iSamplerChannelIndex; ///< FIXME: nasty hack, might be removed (should be 'virtual EngineChannel* EngineChannel() = 0;', but due to cyclic dependencies only a void* solution would be possible ATM)              int iSamplerChannelIndex; ///< FIXME: nasty hack, might be removed (should be 'virtual EngineChannel* EngineChannel() = 0;', but due to cyclic dependencies only a void* solution would be possible ATM)
278    
279          protected:          protected:
280              EngineChannel();              EngineChannel();
281              virtual ~EngineChannel() {}; // MUST only be destroyed by EngineChannelFactory              virtual ~EngineChannel() {}; // MUST only be destroyed by EngineChannelFactory
282    
283                /**
284                 * Notifies listeners that the number of effect sends
285                 * on a this channel is changed.
286                 * @param ChannelId The numerical ID of the sampler channel.
287                 * @param NewCount The new number of sampler channels.
288                 */
289                void fireFxSendCountChanged(int ChannelId, int NewCount);
290    
291              friend class EngineChannelFactory;              friend class EngineChannelFactory;
292    
293          private:          private:
# Line 238  namespace LinuxSampler { Line 296  namespace LinuxSampler {
296              uint8_t uiMidiProgram;              uint8_t uiMidiProgram;
297              uint8_t uiMidiBankMsb;              uint8_t uiMidiBankMsb;
298              uint8_t uiMidiBankLsb;              uint8_t uiMidiBankLsb;
299                uint8_t uiMidiRpnMsb; ///< MIDI Registered Parameter Number (upper 8 bits / coarse)
300                uint8_t uiMidiRpnLsb; ///< MIDI Registered Parameter Number (lower 8 bits / fine)
301              bool    bMidiBankMsbReceived;              bool    bMidiBankMsbReceived;
302              bool    bMidiBankLsbReceived;              bool    bMidiBankLsbReceived;
303              bool    bProgramChangeReceived;              bool    bProgramChangeReceived;
304                bool    bMidiRpnReceived;
305              int     iMidiInstrumentMap;              int     iMidiInstrumentMap;
306                ListenerList<FxSendCountListener*> llFxSendCountListeners;
307      };      };
308    
309  } // namespace LinuxSampler  } // namespace LinuxSampler

Legend:
Removed from v.1001  
changed lines
  Added in v.1130

  ViewVC Help
Powered by ViewVC