Files
vimix/ControlManager.h
2021-12-20 00:30:50 +01:00

76 lines
1.8 KiB
C++

#ifndef CONTROL_H
#define CONTROL_H
#include "NetworkToolkit.h"
#define OSC_LOG "log"
#define OSC_LOG_INFO "info"
#define OSC_OUTPUT "output"
#define OSC_OUTPUT_ENABLE "enable"
#define OSC_OUTPUT_DISABLE "disable"
#define OSC_OUTPUT_FADING "fading"
#define OSC_ALL "all"
#define OSC_SELECTED "selected"
#define OSC_CURRENT "current"
#define OSC_CURRENT_NONE "none"
#define OSC_CURRENT_NEXT "next"
#define OSC_CURRENT_PREVIOUS "previous"
#define OSC_SOURCE_PLAY "play"
#define OSC_SOURCE_PAUSE "pause"
#define OSC_SOURCE_ALPHA "alpha"
#define OSC_SOURCE_TRANSPARENCY "transparency"
#define OSC_SOURCE_DEPTH "depth"
#define OSC_SOURCE_TRANSLATE "translate"
class Session;
class Source;
class Control
{
// Private Constructor
Control();
Control(Control const& copy) = delete;
Control& operator=(Control const& copy) = delete;
public:
static Control& manager ()
{
// The only instance
static Control _instance;
return _instance;
}
~Control();
bool init();
void terminate();
// void setOscPort(int P);
protected:
class RequestListener : public osc::OscPacketListener {
protected:
virtual void ProcessMessage( const osc::ReceivedMessage& m,
const IpEndpointName& remoteEndpoint );
};
void setOutputAttribute(const std::string &attribute,
osc::ReceivedMessageArgumentStream arguments);
void setSourceAttribute(Source *target, const std::string &attribute,
osc::ReceivedMessageArgumentStream arguments);
private:
static void listen();
RequestListener listener_;
UdpListeningReceiveSocket *receiver_;
};
#endif // CONTROL_H