SyphonOutput.hpp
1 #pragma once
2 #include <Device/Protocol/DeviceInterface.hpp>
3 #include <Device/Protocol/DeviceSettings.hpp>
4 #include <Device/Protocol/ProtocolFactoryInterface.hpp>
5 #include <Device/Protocol/ProtocolSettingsWidget.hpp>
6 
7 #include <Gfx/GfxDevice.hpp>
8 #include <Gfx/SharedOutputSettings.hpp>
9 
10 #include <QLineEdit>
11 
12 namespace Gfx
13 {
14 class gfx_protocol_base;
16 {
17  SCORE_CONCRETE("087D032D-9A42-4BC9-B3DF-AD9BA9E86C07")
18 
19 public:
20  QString prettyName() const noexcept override;
21 
22  Device::DeviceInterface* makeDevice(
23  const Device::DeviceSettings& settings, const Explorer::DeviceDocumentPlugin& doc,
24  const score::DocumentContext& ctx) override;
25  const Device::DeviceSettings& defaultSettings() const noexcept override;
26 
27  Device::ProtocolSettingsWidget* makeSettingsWidget() override;
28 };
29 
30 class SyphonDevice final : public GfxOutputDevice
31 {
32  W_OBJECT(SyphonDevice)
33 public:
34  using GfxOutputDevice::GfxOutputDevice;
35  ~SyphonDevice();
36 
37 private:
38  bool reconnect() override;
39  ossia::net::device_base* getDevice() const override { return m_dev.get(); }
40 
41  gfx_protocol_base* m_protocol{};
42  mutable std::unique_ptr<ossia::net::device_base> m_dev;
43 };
44 
46 {
47 public:
48  SyphonSettingsWidget(QWidget* parent = nullptr);
49 
50  Device::DeviceSettings getSettings() const override;
51 };
52 }
Definition: DeviceInterface.hpp:66
Definition: ProtocolSettingsWidget.hpp:22
Definition: GfxDevice.hpp:35
Definition: SharedOutputSettings.hpp:28
Definition: SharedOutputSettings.hpp:52
Definition: SyphonOutput.hpp:31
Definition: SyphonOutput.hpp:16
Definition: SyphonOutput.hpp:46
Definition: GfxParameter.hpp:41
Binds the rendering pipeline to ossia processes.
Definition: CameraDevice.cpp:28
Definition: DeviceSettings.hpp:16
Definition: DocumentContext.hpp:18