AudioApplicationPlugin.hpp
1 #pragma once
2 #include <score/plugins/application/GUIApplicationPlugin.hpp>
3 
4 #include <score_plugin_audio_export.h>
5 
6 #include <memory>
7 
8 namespace ossia
9 {
10 class audio_engine;
11 }
12 
13 namespace Audio
14 {
15 class AudioPreviewExecutor;
16 class SCORE_PLUGIN_AUDIO_EXPORT ApplicationPlugin final
17  : public QObject
19 {
20 public:
22  ~ApplicationPlugin() override;
23 
24  score::GUIElements makeGUIElements() override;
25 
26  std::shared_ptr<ossia::audio_engine> audio;
27 
28 private:
29  void restart_engine();
30  void stop_engine();
31  void start_engine();
32 
33  QAction* m_audioEngineAct{};
34 
35  bool m_updating_audio = false;
36  void initialize() override;
37 
38  void on_documentChanged(score::Document* olddoc, score::Document* newdoc) override;
39 
40  void timerEvent(QTimerEvent*) override;
41 
42  std::vector<std::shared_ptr<ossia::audio_engine>> previous_audio;
43 };
44 
45 }
Definition: AudioApplicationPlugin.hpp:19
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:89
Specializes ApplicationContext with the QMainWindow.
Definition: GUIApplicationContext.hpp:15
Definition: GUIApplicationPlugin.hpp:24