//SenderNameと一致するsenderを探す //Syphonは"appName:senderName"なので、appNameは判定しない void FindSyphonSender() { var list = SyphonPluginEntry.Plugin_CreateServerList(); var count = SyphonPluginEntry.Plugin_GetServerListCount(list); if (senderInfoList.Count == count) { return; } //senderの数が変わっていれば、更新 senderInfoList = new List <SenderInfo>(); for (var i = 0; i < count; i++) { var pSenderName = SyphonPluginEntry.Plugin_GetNameFromServerList(list, i); var pAppName = SyphonPluginEntry.Plugin_GetAppNameFromServerList(list, i); var senderInfo = new SenderInfo(); senderInfo.senderName = (pSenderName != IntPtr.Zero) ? Marshal.PtrToStringAnsi(pSenderName) : "(no sender name)"; senderInfo.appName = (pAppName != IntPtr.Zero) ? Marshal.PtrToStringAnsi(pAppName) : ""; senderInfo.fullName = String.Format("{0}:{1}", senderInfo.appName, senderInfo.senderName); // print(senderInfo.fullName)); //senderInfoListを更新 senderInfoList.Add(senderInfo); } //comboBox用のsenderNameListを更新 senderNameList = senderInfoList.Select(info => info.fullName).ToList(); _comboBox.list = senderNameList; }
void CheckSyphonSender() { var list = SyphonPluginEntry.Plugin_CreateServerList(); var count = SyphonPluginEntry.Plugin_GetServerListCount(list); for (var i = 0; i < count; i++) { var pSenderName = SyphonPluginEntry.Plugin_GetNameFromServerList(list, i); var pAppName = SyphonPluginEntry.Plugin_GetAppNameFromServerList(list, i); var _senderName = (pSenderName != IntPtr.Zero) ? Marshal.PtrToStringAnsi(pSenderName) : "(no sender name)"; var _appName = (pAppName != IntPtr.Zero) ? Marshal.PtrToStringAnsi(pAppName) : "(no app name)"; print(String.Format("- {0}:{1}", _appName, _senderName)); if (_senderName == senderName && _appName == (Application.platform == RuntimePlatform.OSXEditor ? "Unity" : Application.productName)) { Debug.LogError(String.Format("- {0}:{1} is already being used by other sender. ", _appName, _senderName)); } } }