Added platform-specific DLL references in Unity integration. Updated Unity3D_iOS integration project

This commit is contained in:
Joseph Henry
2016-06-16 12:32:37 -07:00
parent a91826af88
commit 246c85720a
3 changed files with 62 additions and 16 deletions

View File

@@ -38,9 +38,32 @@ using System.Net;
using System.IO;
public class ZeroTierNetworkInterface {
// Apple
#if UNITY_STANDALONE_OSX || UNITY_EDITOR_OSX
const string DLL_PATH = "ZeroTierSDK_Unity3D_OSX";
#endif
#if UNITY_IOS || UNITY_IPHONE
const string DLL_PATH = "ZeroTierSDK_Unity3D_iOS";
#endif
// Windows
#if UNITY_STANDALONE_WIN || UNITY_EDITOR_WIN
const string DLL_PATH = "ZeroTierSDK_Unity3D_WIN";
#endif
// Linux
#if UNITY_STANDALONE_LINUX
const string DLL_PATH = "ZeroTierSDK_Unity3D_LINUX";
#endif
// Android
#if UNITY_ANDROID
const string DLL_PATH = "ZeroTierSDK_Unity3D_ANDROID";
#endif
// ZeroTier background thread
private Thread ztThread;
@@ -66,44 +89,43 @@ public class ZeroTierNetworkInterface {
}
// ZeroTier service / debug initialization
[DllImport ("ZeroTierSDK_Unity3D_OSX")]
[DllImport (DLL_PATH)]
public static extern void SetDebugFunction( IntPtr fp );
[DllImport ("ZeroTierSDK_Unity3D_OSX")]
[DllImport (DLL_PATH)]
private static extern int unity_start_service(string path);
// Connection calls
[DllImport ("ZeroTierSDK_Unity3D_OSX")]
[DllImport (DLL_PATH)]
private static extern int zt_socket(int family, int type, int protocol);
[DllImport ("ZeroTierSDK_Unity3D_OSX")]
[DllImport (DLL_PATH)]
unsafe private static extern int zt_bind(int sockfd, System.IntPtr addr, int addrlen);
[DllImport ("ZeroTierSDK_Unity3D_OSX")]
[DllImport (DLL_PATH)]
unsafe private static extern int zt_connect(int sockfd, System.IntPtr addr, int addrlen);
[DllImport ("ZeroTierSDK_Unity3D_OSX")]
[DllImport (DLL_PATH)]
private static extern int zt_accept(int sockfd);
[DllImport ("ZeroTierSDK_Unity3D_OSX")]
[DllImport (DLL_PATH)]
private static extern int zt_listen(int sockfd, int backlog);
[DllImport ("ZeroTierSDK_Unity3D_OSX")]
[DllImport (DLL_PATH)]
private static extern int zt_close(int sockfd);
// RX / TX
[DllImport ("ZeroTierSDK_Unity3D_OSX")]
[DllImport (DLL_PATH)]
unsafe private static extern int zt_recv(int sockfd, System.IntPtr buf, int len);
[DllImport ("ZeroTierSDK_Unity3D_OSX")]
[DllImport (DLL_PATH)]
unsafe private static extern int zt_send(int sockfd, System.IntPtr buf, int len);
// ZT Thread controls
[DllImport ("ZeroTierSDK_Unity3D_OSX")]
[DllImport (DLL_PATH)]
private static extern bool zt_is_running();
[DllImport ("ZeroTierSDK_Unity3D_OSX")]
[DllImport (DLL_PATH)]
private static extern void zt_terminate();
// ZT Network controls
[DllImport ("ZeroTierSDK_Unity3D_OSX")]
[DllImport (DLL_PATH)]
private static extern bool zt_join_network(string nwid);
[DllImport ("ZeroTierSDK_Unity3D_OSX")]
[DllImport (DLL_PATH)]
private static extern void zt_leave_network(string nwid);
// Thread which starts the ZeroTier service