#include <iostream>
#if defined(WIN32)
#include <winsock.h>
+#elif defined(__FREE_BSD__)
+#include <netinet/in.h>
+#include <sys/socket.h>
+#include <sys/_sockaddr_storage.h>
+#include <arpa/inet.h>
+#include <netinet/ip_carp.h>
+#include <sys/types.h>
+#include <sys/time.h>
+#include <sys/socket.h>
+#include <net/if.h>
+#include <net/route.h>
#else
#include <arpa/inet.h>
#include <net/if.h>
#endif
+#include <glibmm/threads.h>
+
#include <jack/types.h>
#include "pbd/xml++.h"
#include "pbd/signals.h"
#include "pbd/ringbuffer.h"
-#include "evoral/Event.hpp"
-#include "evoral/EventRingBuffer.hpp"
-
#include "midi++/types.h"
#include "midi++/parser.h"
#include "midi++/port.h"
XMLNode& get_state () const;
void set_state (const XMLNode&);
- int write (byte *msg, size_t msglen, timestamp_t timestamp);
+ int write (const byte *msg, size_t msglen, timestamp_t timestamp);
int read (byte *buf, size_t bufsize);
void parse (framecnt_t timestamp);
int selectable () const;
int sockin;
int sockout;
struct sockaddr_in addrout;
-
+ Glib::Threads::Mutex write_lock;
+
bool open_sockets (int base_port, const std::string& ifname);
void close_sockets ();