diff options
author | Bent Bisballe Nyeng <deva@aasimon.org> | 2016-07-13 11:25:59 +0200 |
---|---|---|
committer | Bent Bisballe Nyeng <deva@aasimon.org> | 2016-07-13 11:25:59 +0200 |
commit | 633bac9e82aef192a803666aaf3d3dcff920ac0c (patch) | |
tree | b4b253162c0dcdbace27807e11e5915ebce1cfab /src | |
parent | 7557e5d1713337f4acc3f531e5b88a1195476eec (diff) |
Use the latency reported by the engine in the jack and wavfile output modules.
Diffstat (limited to 'src')
-rw-r--r-- | src/audiooutputengine.h | 45 |
1 files changed, 23 insertions, 22 deletions
diff --git a/src/audiooutputengine.h b/src/audiooutputengine.h index df8b0ee..338b5cd 100644 --- a/src/audiooutputengine.h +++ b/src/audiooutputengine.h @@ -24,39 +24,40 @@ * along with DrumGizmo; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -#ifndef __DRUMGIZMO_AUDIOOUTPUTENGINE_H__ -#define __DRUMGIZMO_AUDIOOUTPUTENGINE_H__ +#pragma once +#include <cstddef> #include <string> -#include <stdlib.h> + #include <audiotypes.h> #include "channel.h" -class AudioOutputEngine { +class AudioOutputEngine +{ public: - virtual ~AudioOutputEngine() {} + virtual ~AudioOutputEngine() = default; - virtual bool init(const Channels& channels) = 0; + virtual bool init(const Channels& channels) = 0; - virtual void setParm(const std::string& parm, const std::string& value) = 0; + virtual void setParm(const std::string& parm, const std::string& value) = 0; - virtual bool start() = 0; - virtual void stop() = 0; + virtual bool start() = 0; + virtual void stop() = 0; - virtual void pre(size_t nsamples) = 0; - virtual void run(int ch, sample_t *samples, size_t nsamples) = 0; - virtual void post(size_t nsamples) = 0; + virtual void pre(std::size_t nsamples) = 0; + virtual void run(int ch, sample_t *samples, std::size_t nsamples) = 0; + virtual void post(std::size_t nsamples) = 0; - // Reimplement this if you wish to use internal buffer directly. - virtual sample_t *getBuffer(int ch) const { return NULL; } + //! Overload this method to use internal buffer directly. + virtual sample_t *getBuffer(int ch) const { return NULL; } - /* - * Overload this method to force engine to use different buffer size. - */ - virtual size_t getBufferSize() const { return 1024; } - - virtual size_t getSamplerate() const { return 44100; } -}; + //! Overload this method to force engine to use different buffer size. + virtual std::size_t getBufferSize() const { return 1024; } -#endif/*__DRUMGIZMO_AUDIOOUTPUTENGINE_H__*/ + virtual std::size_t getSamplerate() const { return 44100; } + + //! Overload this method to get notification of latency changes. + //! \param latency The new latency in samples. + virtual void onLatencyChange(std::size_t latency) {} +}; |