iPlug2 - C++ Audio Plug-in Framework
Loading...
Searching...
No Matches
IPlugOSC.cpp
1#include "IPlugOSC.h"
2
3using namespace iplug;
4
5OSCSender::OSCSender(const char* destIP, int port, OSCLogFunc logFunc)
6: OSCInterface(logFunc)
7, mDestIP("")
8{
9 SetDestination(destIP, port);
10}
11
12void OSCSender::SetDestination(const char* ip, int port)
13{
14 if (strcmp(ip, mDestIP.Get()) || port != mPort)
15 {
16 mDestIP.Set(ip);
17 mPort = port;
18
19 // Remove old device before creating new one to prevent memory leak
20 RemoveDevice(mDevice);
21 mDevice = nullptr;
22
23 WDL_String log;
24 mDevice = CreateSender(log, ip, port);
25
26 if (mLogFunc)
27 mLogFunc(log);
28 }
29}
30
32{
33 int len;
34 const char* msgStr = msg.GetBuffer(&len);
35 if (mDevice)
36 mDevice->SendOSC(msgStr, len);
37}
38
39OSCReceiver::OSCReceiver(int port, OSCLogFunc logFunc, OSCMessageReceivedFunc receiveFunc)
40: OSCInterface(logFunc)
41, mReceiveFunc(receiveFunc)
42{
43 SetReceivePort(port);
44}
45
47{
48 if (port != mPort)
49 {
50 // Remove old device before creating new one to prevent memory leak
51 RemoveDevice(mDevice);
52 mDevice = nullptr;
53
54 WDL_String log;
55 mDevice = CreateReceiver(log, port);
56 mPort = port;
57
58 if (mLogFunc)
59 mLogFunc(log);
60 }
61}
void RemoveDevice(OSCDevice *device)
Remove a device from the device list and delete it.
void SetReceivePort(int port)
Set the port number on which to listen for OSC messages.
Definition: IPlugOSC.cpp:46
OSCReceiver(int port=8000, OSCLogFunc logFunc=nullptr, OSCMessageReceivedFunc receiveFunc=nullptr)
Construct a new OSCReceiver.
Definition: IPlugOSC.cpp:39
OSCSender(const char *ip="127.0.0.1", int port=8000, OSCLogFunc logFunc=nullptr)
Construct a new OSCSender.
Definition: IPlugOSC.cpp:5
void SetDestination(const char *ip, int port)
Set the destination ip and port.
Definition: IPlugOSC.cpp:12
void SendOSCMessage(OscMessageWrite &msg)
Send an OSC message.
Definition: IPlugOSC.cpp:31