25#include "jnetlib/jnetlib.h"
29#include "IPlugOSC_msg.h"
36static constexpr int OSC_TIMER_RATE = 100;
39using OSCLogFunc = std::function<void(WDL_String& log)>;
50 OSCDevice(
const char* dest,
int maxpacket,
int sendsleep,
struct sockaddr_in* listen_addr);
61 void AddInstance(
void (*callback)(
void* d1,
int dev_idx,
int msglen,
void* msg),
void* d1,
int dev_idx);
67 void OnMessage(
char type,
const unsigned char* msg,
int len);
72 void SendOSC(
const char* src,
int len);
77 void (*callback)(
void* d1,
int dev_idx,
int msglen,
void* msg);
82 WDL_TypedBuf<rec> mInstances;
84 double mLastOpenTime = 0;
85 bool mHasInput =
false;
86 bool mHasOutput =
false;
89 int mMaxMacketSize, mSendSleep;
90 WDL_String mDestination;
92 struct sockaddr_in mSendAddress, mReceiveAddress;
93 WDL_Queue mSendQueue, mReceiveQueue;
103 unsigned char msg[3];
138 static void MessageCallback(
void *d1,
int dev_idx,
int msglen,
void *msg);
140 void OnTimer(
Timer& timer);
143 WDL_PtrList<OSCDevice> mDevices;
147 static std::unique_ptr<Timer> mTimer;
148 static int sInstances;
149 WDL_HeapBuf mIncomingEvents;
150 WDL_Mutex mIncomingEvents_mutex;
161 OSCSender(
const char* destIP =
"127.0.0.1",
int port = 8000, OSCLogFunc logFunc =
nullptr);
183 OSCReceiver(
int port = 8000, OSCLogFunc logFunc =
nullptr);
195 char mReadBuf[MAX_OSC_MSG_LEN] = {};
IPlug logging a.k.a tracing functionality.
This file includes classes for implementing timers - in order to get a regular callback on the main t...
void OnMessage(char type, const unsigned char *msg, int len)
void SendOSC(const char *src, int len)
void AddInstance(void(*callback)(void *d1, int dev_idx, int msglen, void *msg), void *d1, int dev_idx)
void SetLogFunc(OSCLogFunc logFunc)
Set the Log Func object.
OSCDevice * CreateReceiver(WDL_String &log, int port=8000)
Create a Receiver object.
OSCDevice * CreateSender(WDL_String &log, const char *ip="127.0.0.1", int port=8000)
Create a Sender object.
virtual void OnOSCMessage(OscMessageRead &msg)
void SetReceivePort(int port)
Set the Receive Port object.
virtual void OnOSCMessage(OscMessageRead &msg)=0
void SetDestination(const char *ip, int port)
Set the Destination object.
void SendOSCMessage(OscMessageWrite &msg)