From 84febca8b268129cdd79ff0d1c4f8eeed092c5fb Mon Sep 17 00:00:00 2001 From: "Matthias P. Braendli" Date: Sat, 7 Oct 2017 11:47:05 +0200 Subject: Use queue for all inputs and unify interface This also changes the --fifo-silence option. Instead of inserting silence separately, it uses the drift compensation to do that. --- src/InputInterface.h | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'src/InputInterface.h') diff --git a/src/InputInterface.h b/src/InputInterface.h index b582c33..d2fcf97 100644 --- a/src/InputInterface.h +++ b/src/InputInterface.h @@ -32,6 +32,20 @@ class InputInterface { */ virtual void prepare(void) = 0; - /*! Return true if the input detected some sort of fault */ + /*! Return true if the input detected some sort of fault or + * abnormal termination + */ virtual bool fault_detected(void) const = 0; + + /*! Tell the input that it shall read from source and fill the queue. + * The num_samples argument is an indication on how many bytes + * the encoder needs. + * Some inputs fill the queue from another thread, in which case + * this function might only serve as indication that data gets + * consumed. + * + * A return value of true means data was read, a return value of + * false means a normal termination of the input (e.g. end of file) + */ + virtual bool read_source(size_t num_bytes) = 0; }; -- cgit v1.2.3