2#include <Process/TimeValue.hpp>
4#include <score/plugins/Interface.hpp>
5#include <score/plugins/InterfaceList.hpp>
7#include <ossia/editor/scenario/time_value.hpp>
9#include <score_plugin_engine_export.h>
10#include <smallfun.hpp>
13struct DocumentContext;
19class BaseScenarioElement;
40using reverse_time_function = smallfun::function<
TimeVal(
const ossia::time_value&)>;
41class SCORE_PLUGIN_ENGINE_EXPORT
Clock
48 std::shared_ptr<BaseScenarioElement> scenario;
54 virtual bool paused()
const;
57 virtual bool setStepping(
bool stepping);
58 virtual bool stepping()
const noexcept;
62 virtual bool stepTo(
double seconds);
68 static int64_t playCount()
noexcept;
75 virtual void play_impl(
const TimeVal& t) = 0;
76 virtual void pause_impl() = 0;
77 virtual void resume_impl() = 0;
78 virtual void stop_impl() = 0;
83 SCORE_INTERFACE(
ClockFactory,
"fb2b3624-ee6f-4e9a-901a-a096bb5fec0a")
87 virtual QString prettyName()
const = 0;
91 virtual reverse_time_function
103Q_DECLARE_METATYPE(Execution::ClockFactory::ConcreteKey)
104W_REGISTER_ARGTYPE(Execution::ClockFactory::ConcreteKey)
Definition ClockFactory.hpp:82
Definition ClockFactory.hpp:97
Definition ClockFactory.hpp:42
The Document class is the central part of the software.
Definition Document.hpp:51
Base class for plug-in interfaces.
Definition Interface.hpp:52
InterfaceList Default implementation of InterfaceListBase.
Definition InterfaceList.hpp:97
Components used for the execution of a score.
Definition ProcessComponent.cpp:14
smallfun::function< ossia::time_value(const TimeVal &)> time_function
Sets-up and manages the main execution clock.
Definition ExecutionContext.hpp:66
Base toolkit upon which the software is built.
Definition Application.cpp:83
Definition ExecutionContext.hpp:201
Definition TimeValue.hpp:21
Definition DocumentContext.hpp:18