Loading...
Searching...
No Matches
score-plugin-engine/Engine/ApplicationPlugin.hpp
1#pragma once
2
3#include <Process/TimeValue.hpp>
4
5#include <Execution/ContextMenu/PlayContextMenu.hpp>
6#include <Execution/ExecutionController.hpp>
7
8#include <score/plugins/application/GUIApplicationPlugin.hpp>
9#include <score/plugins/documentdelegate/plugin/DocumentPlugin.hpp>
10
11#include <QPointer>
12#include <QTimer>
13
14#include <score_plugin_engine_export.h>
15
16#include <memory>
17namespace Scenario
18{
19class SpeedWidget;
20}
21namespace Scenario
22{
23class IntervalModel;
24}
25namespace Execution
26{
27struct Context;
28class Clock;
29class BaseScenarioElement;
30}
31
32namespace LocalTree
33{
34class ReferencesDialog;
35class DocumentPlugin;
36}
37
38namespace ossia
39{
40class audio_engine;
41}
42
43class QLabel;
44namespace Engine
45{
46
47class SCORE_PLUGIN_ENGINE_EXPORT ApplicationPlugin final
48 : public QObject
50{
51public:
53 ~ApplicationPlugin() override;
54
55 void initialize() override;
56
57 void afterStartup() override;
58 score::GUIElements makeGUIElements() override;
59
60 void prepareNewDocument() override;
61 void on_initDocument(score::Document& doc) override;
62 void on_createdDocument(score::Document& doc) override;
63 void on_documentChanged(score::Document* olddoc, score::Document* newdoc) override;
64
65 QWidget* setupTimingWidget(QLabel*);
66 void initLocalTreeNodes(LocalTree::DocumentPlugin&);
67
68 Execution::ExecutionController& execution() { return m_execution; }
69
70 QTimer execution_ui_clock_timer{};
71
72private:
73 Execution::PlayContextMenu m_playActions;
75
76 // A child of the Transport toolbar, which score::ToolbarManager owns and
77 // deletes before this plug-in.
78 QPointer<Scenario::SpeedWidget> m_speedSlider{};
79 QAction* m_musicalAct{};
80 QPointer<LocalTree::ReferencesDialog> m_references;
81};
82}
Definition score-plugin-engine/Engine/ApplicationPlugin.hpp:50
Definition ExecutionController.hpp:33
Definition PlayContextMenu.hpp:29
Definition LocalTreeDocumentPlugin.hpp:67
The Document class is the central part of the software.
Definition Document.hpp:51
Used to extend the software with application-wide data.
Definition GUIApplicationPlugin.hpp:97
Link of score with the OSSIA API execution engine.
Definition CurveConversion.hpp:8
Components used for the execution of a score.
Definition PortTap.cpp:24
Local tree provides a way to extend the tree given through the Engine::Network::LocalDevice.
Definition BaseCallbackWrapper.hpp:9
Main plug-in of score.
Definition ConnectionsList.hpp:22
Specializes ApplicationContext with the QMainWindow.
Definition GUIApplicationContext.hpp:15
What an application plug-in adds to the menus, toolbars and actions.
Definition GUIApplicationPlugin.hpp:32