private string _oscOutMulticastIPAddress = "224.0.1.0";//224.0.0.0 - 239.255.255.255 ! private void _ValidateOscOutIPAddress() { IPAddress addr; _isValidOscOutIPAddress = UniOSCUtils.ValidateIPAddress(_oscOutIPAddress, out addr); _oscOutIPAddressAsIPAddress = addr; }
private string _oscMulticastIPAddress = "224.0.1.0"; //224.0.0.0 - 239.255.255.255 ! private void _ValidateOscIPAddress() { //Debug.Log("OSCConnection.ValidateOscIPAddress"); IPAddress addr; _isValidOscIPAddress = UniOSCUtils.ValidateIPAddress(localIPAddress, out addr); _oscInIPAddressAsIPAddress = addr; }
private void _ValidateOscOutMulticastIPAddress() { IPAddress addr; _isValidOscOutMulticastIPAddress = UniOSCUtils.ValidateIPAddress(_oscOutMulticastIPAddress, out addr); _oscOutMulticastIPAddressAsIPAddress = addr; if (_isValidOscOutMulticastIPAddress) { //Second validation _isValidOscOutMulticastIPAddress = UniOSCUtils.RegexMatch(_oscOutMulticastIPAddress, UniOSCUtils.MULTICASTREGEX); } }
private void _ValidateOscMulticastIPAddress() { //Debug.Log("OSCConnection.ValidateOscMulticastIPAddress"); IPAddress addr; _isValidOscMulticastIPAddress = UniOSCUtils.ValidateIPAddress(_oscMulticastIPAddress, out addr); _oscMulticastIPAddressAsIPAddress = addr; if (_isValidOscMulticastIPAddress) { //Second validation _isValidOscMulticastIPAddress = UniOSCUtils.RegexMatch(_oscMulticastIPAddress, UniOSCUtils.MULTICASTREGEX); } }
private void _CreateConnectionOut() { if (_oscTransmitter != null) { _DeleteConnectionOut(); } //Debug.Log("UniOSCConnection._CreateConnectionOut:"+oscOutPort); IPAddress addr; if (UniOSCUtils.ValidateIPAddress(oscOutIPAddress, out addr)) { _oscTransmitter = new UniOSCTransmitter(addr, oscOutPort); } else { //Invalid IPAdress Debug.LogWarning("OSCConnection.Invalid IPAdress:" + oscOutIPAddress); } }
public static void ShowOSCReciverStatus(UniOSCConnection oscConnection) { EditorGUI.BeginChangeCheck(); EditorGUILayout.BeginHorizontal(); Event evt = Event.current; GUIStyle style = new GUIStyle(GUI.skin.button); style.padding = new RectOffset(0, 0, 0, 0); style.border = new RectOffset(0, 0, 0, 0); #region IN EditorGUILayout.BeginVertical(GUILayout.MaxWidth(200)); Rect area = GUILayoutUtility.GetRect(195.0f, 40.0f); area.width *= 1f; Rect r1 = GUILayoutUtility.GetRect(195.0f, 20.0f); r1.width *= 1f; int btnsize1 = 20; Rect r1b = new Rect(area); r1b.x += r1b.width - (btnsize1 * 1); r1b.y += r1b.height - btnsize1; r1b.width = btnsize1 * 1; r1b.height = btnsize1; if (oscConnection.isConnected) { GUI.contentColor = Color.white; //GUI.backgroundColor = UniOSCUtils.CONNECTION_BG; //GUI.Box(area,"");//to dimm the background GUI.backgroundColor = oscConnection.dispatchOSC ? UniOSCUtils.CONNECTION_ON_COLOR : UniOSCUtils.CONNECTION_PAUSE_COLOR; EditorGUI.HelpBox(area, "OSC IN: " + UniOSCConnection.localIPAddress + "\nPort: " + oscConnection.oscPort + "\nListening", MessageType.Info); if (GUI.Button(r1, "Disconnect")) { oscConnection.DisconnectOSC(); } GUI.backgroundColor = Color.white; GUI.contentColor = Color.white; //if (GUI.Button (r1b,new GUIContent(tex2,""),style ) ){oscConnection.SendTestMessage();} Texture2D currTex = oscConnection.dispatchOSC ? texON : texOFF; oscConnection.dispatchOSC = GUI.Toggle(r1b, oscConnection.dispatchOSC, new GUIContent(currTex, "Turn the OSC dispatching into Unity on/off"), style); } else { GUI.contentColor = Color.white; GUI.backgroundColor = UniOSCUtils.CONNECTION_BG; //GUI.Box(area,"");//GUI.skin.box GUI.backgroundColor = UniOSCUtils.CONNECTION_OFF_COLOR; EditorGUI.HelpBox(area, "OSC IN: " + UniOSCConnection.localIPAddress + "\nPort: " + oscConnection.oscPort + "\nNot listening", MessageType.Warning); if (GUI.Button(r1, "Connect")) { oscConnection.ConnectOSC(); } } _DropArea(evt, area, oscConnection); EditorGUILayout.EndVertical(); #endregion IN if (oscConnection.oscOut) { GUILayout.Space(5f); //GUILayout.FlexibleSpace(); //OUT------------------------- EditorGUILayout.BeginVertical(GUILayout.MaxWidth(200f)); Rect area_out = GUILayoutUtility.GetRect(100.0f, 40.0f); //, GUILayout.ExpandWidth (true) area_out.width *= 1f; //0.95f; Rect r2 = GUILayoutUtility.GetRect(100.0f, 20.0f); r2.width *= 1f; //0.95f; int btnsize = 20; Rect r2b = new Rect(area_out); r2b.x += r2b.width - (btnsize * 1); r2b.y += r2b.height - btnsize; r2b.width = btnsize * 1; r2b.height = btnsize; if (oscConnection.isConnectedOut) { GUI.contentColor = Color.white; GUI.backgroundColor = oscConnection.dispatchOSCOut ? UniOSCUtils.CONNECTION_ON_COLOR : UniOSCUtils.CONNECTION_PAUSE_COLOR; EditorGUI.HelpBox(area_out, "OSC OUT: " + oscConnection.oscOutIPAddress + "\nPort: " + oscConnection.oscOutPort + "\nIs sending", MessageType.Info); //oscConnection.name+ if (GUI.Button(r2, "Disconnect")) { oscConnection.DisconnectOSCOut(); } GUI.backgroundColor = Color.white; GUI.contentColor = Color.white; //if ( GUI.Button (r2b,new GUIContent(texTestMessage,""),style ) ){oscConnection.SendTestMessage();} Texture2D currTex = oscConnection.dispatchOSCOut ? texON : texOFF; oscConnection.dispatchOSCOut = GUI.Toggle(r2b, oscConnection.dispatchOSCOut, new GUIContent(currTex, "Turn the OSC sending from Unity on/off without start/stop the network resources"), style); } else { GUI.backgroundColor = Color.red; GUI.contentColor = Color.white; EditorGUI.HelpBox(area_out, "OSC OUT: " + oscConnection.oscOutIPAddress + "\nPort: " + oscConnection.oscOutPort + "\nNot sending", MessageType.Warning); //oscConnection.name+ if (GUI.Button(r2, "Connect")) { IPAddress addr; if (UniOSCUtils.ValidateIPAddress(oscConnection.oscOutIPAddress, out addr)) { oscConnection.ConnectOSCOut(); } else { EditorUtility.DisplayDialog("Invalid IP Address", "The IPAddress you have choosen is not valid! Please use a different.", "OK"); } //oscConnection.ConnectOSCOut(); } } _DropArea(evt, area_out, oscConnection); EditorGUILayout.EndVertical(); //OUT-------------------------------- } //if(oscConnection.OSCOut){ GUI.backgroundColor = Color.white; GUI.contentColor = Color.white; EditorGUILayout.EndHorizontal(); if (EditorGUI.EndChangeCheck()) { EditorUtility.SetDirty(oscConnection); } }
// void OnGUI(){ // // } /// <summary> /// Renders the GUI of a OSCConnection in the GameView. /// This is different from the rendering in the editor/inspector /// </summary> public void RenderGUI() { if (UniOSCUtils.TEX_CONNECTION_BG == null) { UniOSCUtils.TEX_CONNECTION_BG = UniOSCUtils.MakeTexture(2, 2, UniOSCUtils.CONNECTION_BG); } _gs = new GUIStyle(GUI.skin.box); _gs.normal.background = UniOSCUtils.TEX_CONNECTION_BG; _gs.fontSize = 11; GUILayout.BeginVertical(_gs); #region Header GUILayout.BeginHorizontal(); GUILayout.Label(name); GUILayout.EndHorizontal(); #endregion Header GUILayout.BeginHorizontal(); #region IN GUILayout.BeginVertical(); GUI.backgroundColor = _connected ? UniOSCUtils.CONNECTION_ON_COLOR : UniOSCUtils.CONNECTION_OFF_COLOR; GUIContent gc; StringBuilder sb = new StringBuilder(); sb.AppendLine("OSC IN"); sb.AppendLine(String.Format("Port:{0}", oscPort)); if (_connected) { sb.AppendLine(String.Format("Listening:{0}", localIPAddress)); gc = new GUIContent(sb.ToString()); Rect area = GUILayoutUtility.GetRect(gc, _gs, GUILayout.MinWidth(150f)); GUI.Box(area, gc, _gs); } else { //sb.AppendLine("Not listening"); GUIStyle _gs2 = new GUIStyle(GUI.skin.label); _gs2.normal.background = UniOSCUtils.TEX_CONNECTION_BG; _gs2.fontSize = 11; GUILayout.BeginVertical(_gs); GUILayout.Label(new GUIContent("OSC IN"), _gs); GUILayout.BeginHorizontal(_gs2); GUILayout.Label(new GUIContent("Port:"), _gs2); gc = new GUIContent("65536"); Rect areaPort = GUILayoutUtility.GetRect(gc, _gs, GUILayout.MinWidth(20f)); oscPort = Mathf.Min(UniOSCUtils.MAXPORT, Convert.ToInt32(GUI.TextField(areaPort, oscPort.ToString()))); GUILayout.EndHorizontal(); GUILayout.EndVertical(); } GUI.backgroundColor = Color.white; if (GUILayout.Button(_connected ? "Disconnect":"Connect")) { if (_connected) { DisconnectOSC(); } else { ConnectOSC(); } } GUILayout.EndVertical(); #endregion IN GUILayout.Space(5f); #region OUT GUILayout.BeginVertical(); GUI.backgroundColor = _connectedOut ? UniOSCUtils.CONNECTION_ON_COLOR : UniOSCUtils.CONNECTION_OFF_COLOR; GUIContent gcOut; StringBuilder sb_out = new StringBuilder(); sb_out.AppendLine("OSC OUT"); if (_connectedOut) { sb_out.AppendLine(String.Format("Port:{0}", oscOutPort)); sb_out.AppendLine(String.Format("Sending:{0}", oscOutIPAddress)); gcOut = new GUIContent(sb_out.ToString()); Rect areaOut = GUILayoutUtility.GetRect(gcOut, _gs, GUILayout.MinWidth(150f)); //GUILayoutUtility.GetRect(150,50); GUI.Box(areaOut, gcOut, _gs); } else { //sb_out.AppendLine(String.Format("Not Sending:{0}",oscOutIPAddress)); GUIStyle _gs2 = new GUIStyle(GUI.skin.label); _gs2.normal.background = UniOSCUtils.TEX_CONNECTION_BG; _gs2.fontSize = 11; GUILayout.BeginVertical(_gs); GUILayout.Label(new GUIContent("OSC OUT"), _gs); GUILayout.BeginHorizontal(_gs2); GUILayout.Label(new GUIContent("Port:"), _gs2); gc = new GUIContent("65536"); Rect areaPort = GUILayoutUtility.GetRect(gc, _gs, GUILayout.MinWidth(20f)); oscOutPort = Mathf.Min(UniOSCUtils.MAXPORT, Convert.ToInt32(GUI.TextField(areaPort, oscOutPort.ToString()))); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(_gs2); GUILayout.Label(new GUIContent("IP:"), _gs); gc = new GUIContent("255.255.255.255"); Rect areaIp = GUILayoutUtility.GetRect(gc, _gs, GUILayout.MinWidth(100f)); if (_tfgs == null) { _tfgs = new GUIStyle(GUI.skin.textField); } string oscOutIPAddressTemp = GUI.TextField(areaIp, oscOutIPAddress, _tfgs); GUILayout.EndHorizontal(); IPAddress addr; if (UniOSCUtils.ValidateIPAddress(oscOutIPAddressTemp, out addr)) { //oscOutIPAddress = oscOutIPAddressTemp; _tfgs = new GUIStyle(GUI.skin.textField); } else { //When the IP-Address is invalid we get visual feedback _tfgs.normal.textColor = new Color(0.8f, 0.0f, 0.0f, 1f); _tfgs.hover.textColor = new Color(0.9f, 0.0f, 0.0f, 1f); _tfgs.active.textColor = Color.red; _tfgs.focused.textColor = Color.red; } oscOutIPAddress = oscOutIPAddressTemp; GUILayout.EndVertical(); } GUI.backgroundColor = Color.white; if (GUILayout.Button(_connectedOut ? "Disconnect":"Connect")) { if (_connectedOut) { DisconnectOSCOut(); } else { ConnectOSCOut(); } } GUILayout.EndVertical(); #endregion OUT GUILayout.EndHorizontal(); #region session GUILayout.BeginHorizontal(); if (hasOSCSessionFileAttached) { if (!_connectedOut) { GUI.backgroundColor = Color.red; GUI.contentColor = Color.red; } if (GUILayout.Button(new GUIContent("Send Session Data", "Tooltip"))) { SendSessionData(); } GUI.backgroundColor = Color.white; GUI.contentColor = Color.white; } GUILayout.EndHorizontal(); #endregion GUILayout.EndVertical(); }