SpoutOutput.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("ddf45db7-9eaf-453c-8fc0-86ccdf21677c")
18 
19 public:
20  QString prettyName() const noexcept override;
21  QUrl manual() const noexcept override;
22 
23  Device::DeviceInterface* makeDevice(
24  const Device::DeviceSettings& settings, const Explorer::DeviceDocumentPlugin& doc,
25  const score::DocumentContext& ctx) override;
26  const Device::DeviceSettings& defaultSettings() const noexcept override;
27 
28  Device::ProtocolSettingsWidget* makeSettingsWidget() override;
29 };
30 
31 class SpoutDevice final : public GfxOutputDevice
32 {
33  W_OBJECT(SpoutDevice)
34 public:
35  using GfxOutputDevice::GfxOutputDevice;
36  ~SpoutDevice();
37 
38 private:
39  bool reconnect() override;
40  ossia::net::device_base* getDevice() const override { return m_dev.get(); }
41 
42  gfx_protocol_base* m_protocol{};
43  mutable std::unique_ptr<ossia::net::device_base> m_dev;
44 };
45 
47 {
48 public:
49  SpoutSettingsWidget(QWidget* parent = nullptr);
50 
51  Device::DeviceSettings getSettings() const override;
52 };
53 
54 }
Definition: DeviceInterface.hpp:66
Definition: ProtocolSettingsWidget.hpp:22
Definition: GfxDevice.hpp:35
Definition: SharedOutputSettings.hpp:28
Definition: SharedOutputSettings.hpp:52
Definition: SpoutOutput.hpp:32
Definition: SpoutOutput.hpp:16
Definition: SpoutOutput.hpp:47
Definition: GfxParameter.hpp:41
Binds the rendering pipeline to ossia processes.
Definition: CameraDevice.cpp:28
Definition: DeviceSettings.hpp:20
Definition: DocumentContext.hpp:18