Loading...
Searching...
No Matches
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/Graph/OutputNode.hpp>
8#include <Gfx/GfxDevice.hpp>
9#include <Gfx/SharedOutputSettings.hpp>
10
11#include <score_plugin_gfx_export.h>
12
13#include <QLineEdit>
14
15namespace Gfx
16{
17class gfx_protocol_base;
18
22SCORE_PLUGIN_GFX_EXPORT
25{
26 SCORE_CONCRETE("087D032D-9A42-4BC9-B3DF-AD9BA9E86C07")
27
28public:
29 QString prettyName() const noexcept override;
30 QUrl manual() const noexcept override;
31
32 Device::DeviceInterface* makeDevice(
33 const Device::DeviceSettings& settings, const Explorer::DeviceDocumentPlugin& doc,
34 const score::DocumentContext& ctx) override;
35 const Device::DeviceSettings& defaultSettings() const noexcept override;
36
37 Device::ProtocolSettingsWidget* makeSettingsWidget() override;
38};
39
40class SyphonDevice final : public GfxOutputDevice
41{
42 W_OBJECT(SyphonDevice)
43public:
44 using GfxOutputDevice::GfxOutputDevice;
46
47private:
48 void disconnect() override;
49 bool reconnect() override;
50 ossia::net::device_base* getDevice() const override { return m_dev.get(); }
51
52 gfx_protocol_base* m_protocol{};
53 mutable std::unique_ptr<ossia::net::device_base> m_dev;
54};
55
57{
58public:
59 SyphonSettingsWidget(QWidget* parent = nullptr);
60
61 Device::DeviceSettings getSettings() const override;
62};
63}
Definition DeviceInterface.hpp:107
Definition ProtocolSettingsWidget.hpp:27
Definition GfxDevice.hpp:36
Definition SharedOutputSettings.hpp:28
Definition SharedOutputSettings.hpp:52
Definition SyphonOutput.hpp:41
Definition SyphonOutput.hpp:25
Definition SyphonOutput.hpp:57
Definition GfxParameter.hpp:52
Base class for sink nodes (QWindow, spout, syphon, NDI output, ...)
Definition OutputNode.hpp:54
Binds the rendering pipeline to ossia processes.
Definition AssetTable.cpp:7
score::gfx::OutputNode * makeSyphonOutput(const SharedOutputSettings &s)
Definition DeviceSettings.hpp:20
Definition SharedOutputSettings.hpp:19
Definition DocumentContext.hpp:18