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

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

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

revision 1662 by schoenebeck, Sun Feb 3 16:21:38 2008 UTC revision 1924 by persson, Sun Jun 28 16:43:38 2009 UTC
# Line 3  Line 3 
3   *   LinuxSampler - modular, streaming capable sampler                     *   *   LinuxSampler - modular, streaming capable sampler                     *
4   *                                                                         *   *                                                                         *
5   *   Copyright (C) 2003, 2004 by Benno Senoner and Christian Schoenebeck   *   *   Copyright (C) 2003, 2004 by Benno Senoner and Christian Schoenebeck   *
6   *   Copyright (C) 2005 - 2008 Christian Schoenebeck                       *   *   Copyright (C) 2005 - 2009 Christian Schoenebeck                       *
7   *                                                                         *   *                                                                         *
8   *   This program is free software; you can redistribute it and/or modify  *   *   This program is free software; you can redistribute it and/or modify  *
9   *   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 29  Line 29 
29  #include "../../common/RingBuffer.h"  #include "../../common/RingBuffer.h"
30  #include "../../common/ArrayList.h"  #include "../../common/ArrayList.h"
31  #include "../../drivers/audio/AudioChannel.h"  #include "../../drivers/audio/AudioChannel.h"
 #include "../../drivers/midi/VirtualMidiDevice.h"  
32  #include "EngineGlobals.h"  #include "EngineGlobals.h"
33  #include "Engine.h"  #include "Engine.h"
34  #include "Voice.h"  #include "Voice.h"
# Line 63  namespace LinuxSampler { namespace gig { Line 62  namespace LinuxSampler { namespace gig {
62              virtual void    SendPitchbend(int Pitch, int32_t FragmentPos);              virtual void    SendPitchbend(int Pitch, int32_t FragmentPos);
63              virtual void    SendControlChange(uint8_t Controller, uint8_t Value);              virtual void    SendControlChange(uint8_t Controller, uint8_t Value);
64              virtual void    SendControlChange(uint8_t Controller, uint8_t Value, int32_t FragmentPos);              virtual void    SendControlChange(uint8_t Controller, uint8_t Value, int32_t FragmentPos);
65                virtual void    SendProgramChange(uint8_t Program);
66              virtual bool    StatusChanged(bool bNewStatus = false);              virtual bool    StatusChanged(bool bNewStatus = false);
67              virtual float   Volume();              virtual float   Volume();
68              virtual void    Volume(float f);              virtual void    Volume(float f);
69                virtual float   Pan();
70                virtual void    Pan(float f);
71              virtual uint    Channels();              virtual uint    Channels();
72              virtual void    Connect(AudioOutputDevice* pAudioOut);              virtual void    Connect(AudioOutputDevice* pAudioOut);
73              virtual void    DisconnectAudioOutputDevice();              virtual void    DisconnectAudioOutputDevice();
# Line 86  namespace LinuxSampler { namespace gig { Line 88  namespace LinuxSampler { namespace gig {
88              virtual FxSend* GetFxSend(uint FxSendIndex);              virtual FxSend* GetFxSend(uint FxSendIndex);
89              virtual uint    GetFxSendCount();              virtual uint    GetFxSendCount();
90              virtual void    RemoveFxSend(FxSend* pFxSend);              virtual void    RemoveFxSend(FxSend* pFxSend);
91                virtual void    Connect(VirtualMidiDevice* pDevice);
92                virtual void    Disconnect(VirtualMidiDevice* pDevice);
93    
94              // implementation of abstract methods derived from interface class 'InstrumentConsumer'              // implementation of abstract methods derived from interface class 'InstrumentConsumer'
95              virtual void ResourceToBeUpdated(::gig::Instrument* pResource, void*& pUpdateArg);              virtual void ResourceToBeUpdated(::gig::Instrument* pResource, void*& pUpdateArg);
96              virtual void ResourceUpdated(::gig::Instrument* pOldResource, ::gig::Instrument* pNewResource, void* pUpdateArg);              virtual void ResourceUpdated(::gig::Instrument* pOldResource, ::gig::Instrument* pNewResource, void* pUpdateArg);
97              virtual void OnResourceProgress(float fProgress);              virtual void OnResourceProgress(float fProgress);
98    
             void Connect(VirtualMidiDevice* pDevice);  
             void Disconnect(VirtualMidiDevice* pDevice);  
   
99          //protected:          //protected:
100              Engine*                 pEngine;              Engine*                 pEngine;
101              AudioChannel*           pChannelLeft;             ///< encapsulates the audio rendering buffer (left)              AudioChannel*           pChannelLeft;             ///< encapsulates the audio rendering buffer (left)
# Line 131  namespace LinuxSampler { namespace gig { Line 132  namespace LinuxSampler { namespace gig {
132              bool                    bStatusChanged;           ///< true in case an engine parameter has changed (e.g. new instrument, another volumet)              bool                    bStatusChanged;           ///< true in case an engine parameter has changed (e.g. new instrument, another volumet)
133              std::vector<FxSend*>    fxSends;              std::vector<FxSend*>    fxSends;
134              int                     GlobalTranspose;          ///< amount of semi tones all notes should be transposed              int                     GlobalTranspose;          ///< amount of semi tones all notes should be transposed
135                int                     iLastPanRequest; ///< just for the return value of Pan(), so we don't have to make an injective function
136    
137              /// Command used by the instrument loader thread to              /// Command used by the instrument loader thread to
138              /// request an instrument change on a channel.              /// request an instrument change on a channel.
# Line 159  namespace LinuxSampler { namespace gig { Line 161  namespace LinuxSampler { namespace gig {
161          private:          private:
162              void ResetInternal();              void ResetInternal();
163              void RemoveAllFxSends();              void RemoveAllFxSends();
164                void ClearDimRegionsInUse();
165                void ResetDimRegionsInUse();
166              instrument_change_command_t& ChangeInstrument(::gig::Instrument* pInstrument);              instrument_change_command_t& ChangeInstrument(::gig::Instrument* pInstrument);
167      };      };
168    

Legend:
Removed from v.1662  
changed lines
  Added in v.1924

  ViewVC Help
Powered by ViewVC