git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@2584 0c269be4-1314-0410-8aa9-9f06e86f4224tags/1.90
| @@ -68,6 +68,13 @@ int JackCallbackNetIOAdapter::Process(jack_nframes_t frames, void* arg) | |||||
| return 0; | return 0; | ||||
| } | } | ||||
| int JackCallbackNetIOAdapter::BufferSize(jack_nframes_t nframes, void *arg) | |||||
| { | |||||
| JackCallbackNetIOAdapter* adapter = static_cast<JackCallbackNetIOAdapter*>(arg); | |||||
| adapter->fIOAdapter->SetBufferSize(nframes); | |||||
| return 0; | |||||
| } | |||||
| JackCallbackNetIOAdapter::JackCallbackNetIOAdapter(jack_client_t* jack_client, | JackCallbackNetIOAdapter::JackCallbackNetIOAdapter(jack_client_t* jack_client, | ||||
| JackIOAdapterInterface* audio_io, | JackIOAdapterInterface* audio_io, | ||||
| int input, | int input, | ||||
| @@ -87,6 +94,9 @@ JackCallbackNetIOAdapter::JackCallbackNetIOAdapter(jack_client_t* jack_client, | |||||
| if (jack_set_process_callback(fJackClient, Process, this) < 0) | if (jack_set_process_callback(fJackClient, Process, this) < 0) | ||||
| goto fail; | goto fail; | ||||
| if (jack_set_buffer_size_callback(fJackClient, BufferSize, this) < 0) | |||||
| goto fail; | |||||
| if (jack_activate(fJackClient) < 0) | if (jack_activate(fJackClient) < 0) | ||||
| goto fail; | goto fail; | ||||
| @@ -35,6 +35,7 @@ namespace Jack | |||||
| jack_ringbuffer_t* fPlaybackRingBuffer; | jack_ringbuffer_t* fPlaybackRingBuffer; | ||||
| static int Process(jack_nframes_t, void* arg); | static int Process(jack_nframes_t, void* arg); | ||||
| static int BufferSize(jack_nframes_t nframes, void *arg); | |||||
| public: | public: | ||||
| @@ -43,7 +44,7 @@ namespace Jack | |||||
| int input, | int input, | ||||
| int output); | int output); | ||||
| ~JackCallbackNetIOAdapter(); | ~JackCallbackNetIOAdapter(); | ||||
| }; | }; | ||||
| } | } | ||||
| @@ -56,11 +56,16 @@ namespace Jack | |||||
| fCaptureRingBuffer = input; | fCaptureRingBuffer = input; | ||||
| fPlaybackRingBuffer = output; | fPlaybackRingBuffer = output; | ||||
| } | } | ||||
| bool IsRunning() {return fRunning;} | bool IsRunning() {return fRunning;} | ||||
| virtual int Open() = 0; | virtual int Open() = 0; | ||||
| virtual int Close() = 0; | virtual int Close() = 0; | ||||
| virtual void SetBufferSize(int buffer_size) | |||||
| { | |||||
| fBufferSize = buffer_size; | |||||
| } | |||||
| }; | }; | ||||
| } | } | ||||
| @@ -49,7 +49,7 @@ namespace Jack | |||||
| int input, | int input, | ||||
| int output); | int output); | ||||
| virtual ~JackNetIOAdapter(); | virtual ~JackNetIOAdapter(); | ||||
| int Open(); | int Open(); | ||||
| int Close(); | int Close(); | ||||
| @@ -143,4 +143,11 @@ int JackPortAudioIOAdapter::Close() | |||||
| return 0; | return 0; | ||||
| } | } | ||||
| void JackPortAudioIOAdapter::SetBufferSize(int buffer_size) | |||||
| { | |||||
| JackIOAdapterInterface::SetBufferSize(buffer_size); | |||||
| Close(); | |||||
| Open(); | |||||
| } | |||||
| } // namespace | } // namespace | ||||
| @@ -52,6 +52,8 @@ namespace Jack | |||||
| int Open(); | int Open(); | ||||
| int Close(); | int Close(); | ||||
| void SetBufferSize(int buffer_size); | |||||
| }; | }; | ||||
| } | } | ||||