From e5bcc3068af2cbacfe97a5cc89a4946b897e09ff Mon Sep 17 00:00:00 2001 From: sletz Date: Thu, 3 Jul 2008 10:37:59 +0000 Subject: [PATCH] Add IsFixedBufferSize method in all drivers. git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@2636 0c269be4-1314-0410-8aa9-9f06e86f4224 --- ChangeLog | 4 ++++ common/JackDriver.cpp | 5 +++++ common/JackDriver.h | 2 ++ common/JackDummyDriver.h | 6 ++++++ common/JackNetDriver.h | 6 ++++++ common/JackServer.cpp | 5 +++++ common/JackThreadedDriver.cpp | 5 +++++ common/JackThreadedDriver.h | 1 + linux/alsa/JackAlsaDriver.h | 6 ++++++ macosx/JackCoreAudioDriver.h | 6 ++++++ 10 files changed, 46 insertions(+) diff --git a/ChangeLog b/ChangeLog index d06c5717..527c12c1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -21,6 +21,10 @@ Romain Moret Jackdmp changes log --------------------------- +2008-07-03 Stephane Letz + + * Add IsFixedBufferSize method in all drivers. + 2008-07-02 Stephane Letz * New netioadapter in server client. diff --git a/common/JackDriver.cpp b/common/JackDriver.cpp index c07ab1e1..4cf8a06a 100644 --- a/common/JackDriver.cpp +++ b/common/JackDriver.cpp @@ -275,6 +275,11 @@ int JackDriver::Stop() return 0; } +bool JackDriver::IsFixedBufferSize() +{ + return true; +} + int JackDriver::SetBufferSize(jack_nframes_t buffer_size) { return 0; diff --git a/common/JackDriver.h b/common/JackDriver.h index d1e2fee7..77d7c014 100644 --- a/common/JackDriver.h +++ b/common/JackDriver.h @@ -71,6 +71,7 @@ class EXPORT JackDriverInterface virtual int Start() = 0; virtual int Stop() = 0; + virtual bool IsFixedBufferSize() = 0; virtual int SetBufferSize(jack_nframes_t buffer_size) = 0; virtual int SetSampleRate(jack_nframes_t sample_rate) = 0; @@ -163,6 +164,7 @@ class EXPORT JackDriver : public JackDriverClientInterface virtual int Start(); virtual int Stop(); + virtual bool IsFixedBufferSize(); virtual int SetBufferSize(jack_nframes_t buffer_size); virtual int SetSampleRate(jack_nframes_t sample_rate); diff --git a/common/JackDummyDriver.h b/common/JackDummyDriver.h index c84aee45..a5d63cae 100644 --- a/common/JackDummyDriver.h +++ b/common/JackDummyDriver.h @@ -58,6 +58,12 @@ class JackDummyDriver : public JackAudioDriver int Process(); + // BufferSize can be changed + bool IsFixedBufferSize() + { + return false; + } + int SetBufferSize(jack_nframes_t buffer_size); }; diff --git a/common/JackNetDriver.h b/common/JackNetDriver.h index dbd94254..59d3b296 100644 --- a/common/JackNetDriver.h +++ b/common/JackNetDriver.h @@ -84,6 +84,12 @@ namespace Jack int Read(); int Write(); + // BufferSize can be changed + bool IsFixedBufferSize() + { + return true; + } + int SetBufferSize(jack_nframes_t buffer_size) { return -1; diff --git a/common/JackServer.cpp b/common/JackServer.cpp index 2cc30e80..288d4752 100644 --- a/common/JackServer.cpp +++ b/common/JackServer.cpp @@ -193,6 +193,11 @@ int JackServer::SetBufferSize(jack_nframes_t buffer_size) jack_log("SetBufferSize: requirement for new buffer size equals current value"); return 0; } + + if (fAudioDriver->IsFixedBufferSize()) { + jack_log("SetBufferSize: driver only supports a fixed buffer size"); + return 0; + } if (fAudioDriver->Stop() != 0) { jack_error("Cannot stop audio driver"); diff --git a/common/JackThreadedDriver.cpp b/common/JackThreadedDriver.cpp index 6f8fd55f..0990bedc 100644 --- a/common/JackThreadedDriver.cpp +++ b/common/JackThreadedDriver.cpp @@ -101,6 +101,11 @@ int JackThreadedDriver::Write() return fDriver->Write(); } +bool JackThreadedDriver::IsFixedBufferSize() +{ + return fDriver->IsFixedBufferSize(); +} + int JackThreadedDriver::SetBufferSize(jack_nframes_t buffer_size) { return fDriver->SetBufferSize(buffer_size); diff --git a/common/JackThreadedDriver.h b/common/JackThreadedDriver.h index 73c37c94..60d4ec05 100644 --- a/common/JackThreadedDriver.h +++ b/common/JackThreadedDriver.h @@ -70,6 +70,7 @@ class EXPORT JackThreadedDriver : public JackDriverClientInterface, public JackR virtual int Start(); virtual int Stop(); + virtual bool IsFixedBufferSize(); virtual int SetBufferSize(jack_nframes_t buffer_size); virtual int SetSampleRate(jack_nframes_t sample_rate); diff --git a/linux/alsa/JackAlsaDriver.h b/linux/alsa/JackAlsaDriver.h index db4bdadb..8815c693 100644 --- a/linux/alsa/JackAlsaDriver.h +++ b/linux/alsa/JackAlsaDriver.h @@ -150,6 +150,12 @@ class JackAlsaDriver : public JackAudioDriver int Read(); int Write(); + // BufferSize can be changed + bool IsFixedBufferSize() + { + return false; + } + int SetBufferSize(jack_nframes_t nframes); // jack api emulation for the midi driver diff --git a/macosx/JackCoreAudioDriver.h b/macosx/JackCoreAudioDriver.h index 26507edc..2f87c2ef 100644 --- a/macosx/JackCoreAudioDriver.h +++ b/macosx/JackCoreAudioDriver.h @@ -172,6 +172,12 @@ class JackCoreAudioDriver : public JackAudioDriver int Read(); int Write(); + // BufferSize can be changed + bool IsFixedBufferSize() + { + return false; + } + int SetBufferSize(jack_nframes_t buffer_size); };