From a7d83f19b08eb4c6f79a82fe60c2b86db13f4420 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sat, 24 Nov 2018 13:44:03 +0100 Subject: Squashed 'waflib/' changes from 6e726eb1..5ea8f99f 5ea8f99f Improve test output spacing 0e23b29f Raise exception when test suite fails to ensure non-zero exit status d6de073b Show run time of unit tests 5b655541 Add short configure option for ultra-strict flags 4687ba6d Use gtest-like test output 258903d9 Fix failure count in test group summaries da07e738 Fix verbose tests with Python 3 git-subtree-dir: waflib git-subtree-split: 5ea8f99f6e1246079c1fe6bb590c38a53aadd40d --- ingen/EngineBase.hpp | 145 --------------------------------------------------- 1 file changed, 145 deletions(-) delete mode 100644 ingen/EngineBase.hpp (limited to 'ingen/EngineBase.hpp') diff --git a/ingen/EngineBase.hpp b/ingen/EngineBase.hpp deleted file mode 100644 index 00436c66..00000000 --- a/ingen/EngineBase.hpp +++ /dev/null @@ -1,145 +0,0 @@ -/* - This file is part of Ingen. - Copyright 2007-2017 David Robillard - - Ingen is free software: you can redistribute it and/or modify it under the - terms of the GNU Affero General Public License as published by the Free - Software Foundation, either version 3 of the License, or any later version. - - Ingen is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. See the GNU Affero General Public License for details. - - You should have received a copy of the GNU Affero General Public License - along with Ingen. If not, see . -*/ - -#ifndef INGEN_ENGINEBASE_HPP -#define INGEN_ENGINEBASE_HPP - -#include -#include -#include - -#include "ingen/ingen.h" -#include "ingen/types.hpp" - -namespace Ingen { - -class Interface; - -/** - The audio engine which executes the graph. - - @ingroup Ingen -*/ -class INGEN_API EngineBase -{ -public: - virtual ~EngineBase() = default; - - /** - Initialise the engine for local use (e.g. without a Jack driver). - @param sample_rate Audio sampling rate in Hz. - @param block_length Audio block length (i.e. buffer size) in frames. - @param seq_size Sequence buffer size in bytes. - */ - virtual void init(double sample_rate, - uint32_t block_length, - size_t seq_size) = 0; - - /** - Return true iff the engine and driver supports dynamic ports. - - This returns false in situations where top level ports can not be - created once the driver is running, which is the case for most - environments outside Jack. - */ - virtual bool supports_dynamic_ports() const = 0; - - /** - Activate the engine. - */ - virtual bool activate() = 0; - - /** - Deactivate the engine. - */ - virtual void deactivate() = 0; - - /** - Begin listening on network sockets. - */ - virtual void listen() = 0; - - /** - Return true iff events are waiting to be processed. - */ - virtual bool pending_events() const = 0; - - /** - Flush any pending events. - - This function is only safe to call in sequential contexts, and runs both - process thread and main iterations in lock-step. - - @param sleep_ms Interval in milliseconds to sleep between each block. - */ - virtual void flush_events(const std::chrono::milliseconds& sleep_ms) = 0; - - /** - Advance audio time by the given number of frames. - */ - virtual void advance(uint32_t nframes) = 0; - - /** - Locate to a given audio position. - */ - virtual void locate(uint32_t start, uint32_t sample_count) = 0; - - /** - Process audio for `sample_count` frames. - - If the return value is non-zero, events have been processed and are - awaiting to be finalised (including responding and announcing any changes - to clients) via a call to main_iteration(). - - @return The number of events processed. - */ - virtual unsigned run(uint32_t sample_count) = 0; - - /** - Indicate that a quit is desired. - - This function simply sets a flag which affects the return value of - main_iteration, it does not actually force the engine to stop running or - block. The code driving the engine is responsible for stopping and - cleaning up when main_iteration returns false. - */ - virtual void quit() = 0; - - /** - Run a single iteration of the main context. - - The main context post-processes events and performs housekeeping duties - like collecting garbage. This should be called regularly, e.g. a few - times per second. The return value indicates whether execution should - continue; i.e. if false is returned, a quit has been requested and the - caller should cease calling main_iteration() and stop the engine. - */ - virtual bool main_iteration() = 0; - - /** - Register a client to receive updates about engine changes. - */ - virtual void register_client(SPtr client) = 0; - - /** - Unregister a client. - */ - virtual bool unregister_client(SPtr client) = 0; -}; - -} // namespace Ingen - -#endif // INGEN_ENGINEBASE_HPP -- cgit v1.2.1