/[svn]/linuxsampler/trunk/src/drivers/audio/AudioOutputDeviceJack.h
ViewVC logotype

Diff of /linuxsampler/trunk/src/drivers/audio/AudioOutputDeviceJack.h

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

revision 225 by schoenebeck, Fri Aug 20 17:25:19 2004 UTC revision 226 by schoenebeck, Wed Aug 25 22:00:33 2004 UTC
# Line 45  namespace LinuxSampler { Line 45  namespace LinuxSampler {
45              AudioOutputDeviceJack(std::map<String,DeviceCreationParameter*> Parameters);              AudioOutputDeviceJack(std::map<String,DeviceCreationParameter*> Parameters);
46              ~AudioOutputDeviceJack();              ~AudioOutputDeviceJack();
47    
48              /** Audio Channel Parameter 'JACK_BINDINGS'              /**
49               *               * Audio channel implementation for the JACK audio driver.
              * Used to connect to other JACK clients.  
50               */               */
51              class ParameterJackBindings : public DeviceRuntimeParameterStrings {              class AudioChannelJack : public AudioChannel {
52                  public:                  public:
53                      ParameterJackBindings(AudioChannel* pChannel, std::vector<String> InitialBindings) : DeviceRuntimeParameterStrings(InitialBindings) { this->pChannel = pChannel; }                      /** Audio Channel Parameter 'NAME'
54                      virtual String              Description()                      { return "Bindings to other JACK clients";                     }                       *
55                      virtual bool                Fix()                              { return false;                                                }                       * Used to assign an arbitrary name to an audio channel.
56                      virtual std::vector<String> PossibilitiesAsString()            { return std::vector<String>(); /* TODO: to be implemented */  }                       */
57                      virtual void                OnSetValue(std::vector<String> vS) { /* TODO: code to connect to other jack clients */            }                      class ParameterName : public AudioChannel::ParameterName {
58                            public:
59                                ParameterName(AudioChannelJack* pChannel);
60                                virtual void OnSetValue(String s);
61                            protected:
62                                AudioChannelJack* pChannel;
63                        };
64    
65                        /** Audio Channel Parameter 'JACK_BINDINGS'
66                         *
67                         * Used to connect to other JACK clients.
68                         */
69                        class ParameterJackBindings : public DeviceRuntimeParameterStrings {
70                            public:
71                                ParameterJackBindings(AudioChannelJack* pChannel);
72                                virtual String              Description();
73                                virtual bool                Fix();
74                                virtual std::vector<String> PossibilitiesAsString();
75                                virtual void                OnSetValue(std::vector<String> vS);
76                                static String Name();
77                            protected:
78                                AudioChannelJack* pChannel;
79                        };
80                  protected:                  protected:
81                      AudioChannel* pChannel;                      AudioChannelJack(uint ChannelNr, AudioOutputDeviceJack* pDevice) throw (AudioOutputException);
82                        ~AudioChannelJack();
83                        friend class AudioOutputDeviceJack;
84                    private:
85                        AudioOutputDeviceJack* pDevice;
86                        jack_port_t*           hJackPort;
87                        uint                   ChannelNr;
88    
89                        float* CreateJackPort(uint ChannelNr, AudioOutputDeviceJack* pDevice) throw (AudioOutputException);
90              };              };
91    
92              // derived abstract methods from class 'AudioOutputDevice'              // derived abstract methods from class 'AudioOutputDevice'
93              virtual void Play();              virtual void Play();
94              virtual bool IsPlaying();              virtual bool IsPlaying();
95              virtual void Stop();              virtual void Stop();
             virtual void AcquireChannels(uint uiChannels);  
96              virtual uint MaxSamplesPerCycle();              virtual uint MaxSamplesPerCycle();
97              virtual uint SampleRate();              virtual uint SampleRate();
98                virtual AudioChannel* CreateChannel(uint ChannelNr);
99    
100    
101              static String Name();              static String Name();
102    
# Line 74  namespace LinuxSampler { Line 104  namespace LinuxSampler {
104    
105              static String Description();              static String Description();
106              static String Version();              static String Version();
             static std::map<String,DeviceCreationParameter*> AvailableParameters();  
107    
108              int Process(uint Samples);  // FIXME: should be private              int Process(uint Samples);  // FIXME: should be private
109          protected:          protected:
110              AudioOutputDeviceJack(String* AutoConnectPortIDs = NULL, uint AutoConnectPorts = 0);              AudioOutputDeviceJack(String* AutoConnectPortIDs = NULL, uint AutoConnectPorts = 0);
111          private:          private:
112              ConditionServer           csIsPlaying;              ConditionServer csIsPlaying;
113              uint                      uiMaxSamplesPerCycle;              uint            uiMaxSamplesPerCycle;
114              jack_client_t*            hJackClient;              jack_client_t*  hJackClient;
             std::vector<jack_port_t*> hJackPorts;  
115      };      };
116    
117      // Callback functions for the libjack API      // Callback functions for the libjack API

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

  ViewVC Help
Powered by ViewVC