diff options
Diffstat (limited to 'src/engine/Context.hpp')
-rw-r--r-- | src/engine/Context.hpp | 107 |
1 files changed, 0 insertions, 107 deletions
diff --git a/src/engine/Context.hpp b/src/engine/Context.hpp deleted file mode 100644 index 5ffb8a93..00000000 --- a/src/engine/Context.hpp +++ /dev/null @@ -1,107 +0,0 @@ -/* This file is part of Ingen. - * Copyright 2007-2011 David Robillard <http://drobilla.net> - * - * Ingen is free software; you can redistribute it and/or modify it under the - * terms of the GNU General Public License as published by the Free Software - * Foundation; either version 2 of the License, or (at your option) 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 General Public License for details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef INGEN_ENGINE_CONTEXT_HPP -#define INGEN_ENGINE_CONTEXT_HPP - -#include "shared/World.hpp" - -#include "Engine.hpp" -#include "EventSink.hpp" -#include "types.hpp" - -namespace Ingen { -namespace Engine { - -class Engine; - -/** Graph execution context. - * - * This is used to pass whatever information a GraphObject might need to - * process; such as the current time, a sink for generated events, etc. - * - * Note the logical distinction between nframes (jack relative) and start/end - * (timeline relative). If transport speed != 1.0, then end-start != nframes - * (though currently this is never the case, it may be if ingen incorporates - * tempo and varispeed). - * - * \ingroup engine - */ -class Context -{ -public: - enum ID { - AUDIO, - MESSAGE - }; - - Context(Engine& engine, ID id) - : _engine(engine) - , _id(id) - , _event_sink(engine, engine.event_queue_size()) - , _start(0) - , _end(0) - , _nframes(0) - , _offset(0) - , _realtime(true) - {} - - virtual ~Context() {} - - ID id() const { return _id; } - - void locate(FrameTime s, SampleCount nframes, SampleCount offset) { - _start = s; - _end = s + nframes; - _nframes = nframes; - _offset = offset; - } - - void locate(const Context& other) { - _start = other._start; - _end = other._end; - _nframes = other._nframes; - _offset = other._offset; - } - - inline Engine& engine() const { return _engine; } - inline FrameTime start() const { return _start; } - inline FrameTime end() const { return _end; } - inline SampleCount nframes() const { return _nframes; } - inline SampleCount offset() const { return _offset; } - inline bool realtime() const { return _realtime; } - - inline const EventSink& event_sink() const { return _event_sink; } - inline EventSink& event_sink() { return _event_sink; } - -protected: - Engine& _engine; ///< Engine we're running in - ID _id; ///< Fast ID for this context - - EventSink _event_sink; ///< Sink for events generated in a realtime context - FrameTime _start; ///< Start frame of this cycle, timeline relative - FrameTime _end; ///< End frame of this cycle, timeline relative - SampleCount _nframes; ///< Length of this cycle in frames - SampleCount _offset; ///< Start offset relative to start of driver buffers - bool _realtime; ///< True iff context is hard realtime -}; - -} // namespace Engine -} // namespace Ingen - -#endif // INGEN_ENGINE_CONTEXT_HPP - |