Browse Source

Add buffer size callback

git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@2584 0c269be4-1314-0410-8aa9-9f06e86f4224
tags/1.90
sletz 17 years ago
parent
commit
18b2dbea52
6 changed files with 28 additions and 3 deletions
  1. +10
    -0
      common/JackCallbackNetIOAdapter.cpp
  2. +2
    -1
      common/JackCallbackNetIOAdapter.h
  3. +6
    -1
      common/JackIOAdapter.h
  4. +1
    -1
      common/JackNetIOAdapter.h
  5. +7
    -0
      windows/JackPortAudioIOAdapter.cpp
  6. +2
    -0
      windows/JackPortAudioIOAdapter.h

+ 10
- 0
common/JackCallbackNetIOAdapter.cpp View File

@@ -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;


+ 2
- 1
common/JackCallbackNetIOAdapter.h View File

@@ -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();
}; };
} }




+ 6
- 1
common/JackIOAdapter.h View File

@@ -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;
}
}; };
} }


+ 1
- 1
common/JackNetIOAdapter.h View File

@@ -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();


+ 7
- 0
windows/JackPortAudioIOAdapter.cpp View File

@@ -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

+ 2
- 0
windows/JackPortAudioIOAdapter.h View File

@@ -52,6 +52,8 @@ namespace Jack
int Open(); int Open();
int Close(); int Close();
void SetBufferSize(int buffer_size);
}; };
} }




Loading…
Cancel
Save