From: Robin Gareus Date: Fri, 4 Dec 2015 09:04:22 +0000 (+0100) Subject: add an interface to select playback buffers/period X-Git-Tag: 4.5~306 X-Git-Url: https://main.carlh.net/gitweb/?a=commitdiff_plain;h=13926d9bbb15d204031cb5533262a4ed9e1209c8;p=ardour.git add an interface to select playback buffers/period --- diff --git a/libs/ardour/ardour/audio_backend.h b/libs/ardour/ardour/audio_backend.h index 73310bddb6..0428c36b44 100644 --- a/libs/ardour/ardour/audio_backend.h +++ b/libs/ardour/ardour/audio_backend.h @@ -228,6 +228,22 @@ class LIBARDOUR_API AudioBackend : public PortEngine { virtual std::vector enumerate_output_devices () const { return std::vector(); } + + /** An interface to set buffers/period for playback latency. + * useful for ALSA or JACK/ALSA on Linux. + * + * @return true if the backend supports period-size configuration + */ + virtual bool can_set_period_size () const { return false; } + + /** Returns a vector of supported period-sizes for the given driver */ + virtual std::vector available_period_sizes (const std::string& driver) const { return std::vector(); } + + /** Set the period size to be used. + * must be called before starting the backend. + */ + virtual int set_peridod_size (uint32_t) { return -1; } + /** * @return true if backend supports requesting an update to the device list * and any cached properties associated with the devices. @@ -426,6 +442,7 @@ class LIBARDOUR_API AudioBackend : public PortEngine { virtual uint32_t systemic_output_latency () const = 0; virtual uint32_t systemic_midi_input_latency (std::string const) const = 0; virtual uint32_t systemic_midi_output_latency (std::string const) const = 0; + virtual uint32_t period_size () const { return 0; } /** override this if this implementation returns true from * requires_driver_selection()