// UNPACK VALUE private static object UnpackValue(OSCValueType valueType, byte[] bytes, ref int start) { if (!_packersDictionary.ContainsKey(valueType)) { throw new Exception("[OSCConverter.UnpackValue] Unknown value type: '" + valueType + "'."); } return(_packersDictionary[valueType].Unpack(bytes, ref start)); }
private T GetValue <T>(OSCValueType requiredType) { if (requiredType == type) { return((T)value); } return(default(T)); }
// PACK VALUE private static void PackValue(byte[] buffer, ref int index, OSCValueType valueType, object value) { if (!_packersDictionary.ContainsKey(valueType)) { throw new Exception("[OSCConverter.PackValue] Unknown value type: '" + valueType + "'."); } _packersDictionary[valueType].Pack(buffer, ref index, value); }
public static OSCValue CreateOSCValue(OSCValueType valueType) { switch (valueType) { case OSCValueType.Unknown: return(null); case OSCValueType.Int: return(OSCValue.Int(0)); case OSCValueType.Long: return(OSCValue.Long(0)); case OSCValueType.True: return(OSCValue.Bool(true)); case OSCValueType.False: return(OSCValue.Bool(false)); case OSCValueType.Float: return(OSCValue.Float(0)); case OSCValueType.Double: return(OSCValue.Double(0)); case OSCValueType.String: return(OSCValue.String("")); case OSCValueType.Null: return(OSCValue.Null()); case OSCValueType.Impulse: return(OSCValue.Impulse()); case OSCValueType.Blob: return(OSCValue.Blob(new byte[0])); case OSCValueType.Char: return(OSCValue.Char(' ')); case OSCValueType.Color: return(OSCValue.Color(Color.white)); case OSCValueType.TimeTag: return(OSCValue.TimeTag(DateTime.Now)); case OSCValueType.Midi: return(OSCValue.Midi(new OSCMidi(0, 0, 0, 0))); case OSCValueType.Array: return(OSCValue.Array()); default: throw new ArgumentOutOfRangeException(); } }
public static char GetTag(OSCValueType valueType) { switch (valueType) { case OSCValueType.Unknown: return('N'); case OSCValueType.Int: return('i'); case OSCValueType.Long: return('h'); case OSCValueType.True: return('T'); case OSCValueType.False: return('F'); case OSCValueType.Float: return('f'); case OSCValueType.Double: return('d'); case OSCValueType.String: return('s'); case OSCValueType.Null: return('N'); case OSCValueType.Impulse: return('I'); case OSCValueType.Blob: return('b'); case OSCValueType.Char: return('c'); case OSCValueType.Color: return('r'); case OSCValueType.TimeTag: return('t'); case OSCValueType.Midi: return('m'); case OSCValueType.Array: return('N'); default: return('N'); } }
public OSCValueType[] GetTypes() { var types = new OSCValueType[values.Count]; for (var i = 0; i < values.Count; i++) { types[i] = values[i].Type; } return(types); }
private static byte[] PackValue(OSCValueType valueType, object value) { var packer = GetPacker(valueType); if (packer != null) { return(packer.PackValue(value)); } Debug.LogErrorFormat("[OSCConverter] Unknown value type: '{0}' [2].", valueType); return(default(byte[])); }
private REValueInput GetPrefab(OSCValueType valueType) { foreach (var prefab in Prefabs) { if (prefab.Type == valueType) { return(prefab); } } return(DefaultPrefab); }
private static string GenerateValue(OSCValueType type, object value) { if (type == OSCValueType.Impulse || type == OSCValueType.Null) { return(string.Format("OSCValue.{0}()", type)); } if (type == OSCValueType.True || type == OSCValueType.False) { return(string.Format("OSCValue.Bool({0})", value.ToString().ToLower())); } if (type == OSCValueType.Float) { return(string.Format("OSCValue.Float({0}f)", value)); } if (type == OSCValueType.Char) { return(string.Format("OSCValue.Char(\'{0}\')", value)); } if (type == OSCValueType.String) { return(string.Format("OSCValue.String(\"{0}\")", value)); } if (type == OSCValueType.TimeTag) { return(string.Format("OSCValue.TimeTag(DateTime.Parse(\"{0}\"))", value)); } if (type == OSCValueType.Color) { var color = (Color)value; return(string.Format("OSCValue.Color(new Color({0}f, {1}f, {2}f, {3}f))", color.r, color.g, color.b, color.a)); } if (type == OSCValueType.Midi) { var midi = (OSCMidi)value; return(string.Format("OSCValue.Midi(new OSCMidi({0}, {1}, {2}, {3}))", midi.Channel, midi.Status, midi.Data1, midi.Data2)); } if (type == OSCValueType.Blob) { var stringValue = "new byte[] {"; var datas = (byte[])value; if (datas.Length > 0) { foreach (var data in datas) { stringValue += string.Format("{0:x2}, ", data); } stringValue = stringValue.Remove(stringValue.Length - 2); } stringValue += "}"; return(string.Format("OSCValue.Blob({0})", stringValue)); } return(string.Format("OSCValue.{0}({1})", type, value)); }
private static string GenerateValue(OSCValueType type, object value) { if (type == OSCValueType.Impulse || type == OSCValueType.Null) { return($"OSCValue.{type}()"); } if (type == OSCValueType.True || type == OSCValueType.False) { return($"OSCValue.Bool({value.ToString().ToLower()})"); } if (type == OSCValueType.Float) { return($"OSCValue.Float({value}f)"); } if (type == OSCValueType.Char) { return($"OSCValue.Char(\'{value}\')"); } if (type == OSCValueType.String) { return($"OSCValue.String(\"{value}\")"); } if (type == OSCValueType.TimeTag) { return($"OSCValue.TimeTag(DateTime.Parse(\"{value}\"))"); } if (type == OSCValueType.Color) { var color = (Color)value; return($"OSCValue.Color(new Color({color.r}f, {color.g}f, {color.b}f, {color.a}f))"); } if (type == OSCValueType.Midi) { var midi = (OSCMidi)value; return($"OSCValue.Midi(new OSCMidi({midi.Channel}, {midi.Status}, {midi.Data1}, {midi.Data2}))"); } if (type == OSCValueType.Blob) { var stringValue = "new byte[] {"; var datas = (byte[])value; if (datas.Length > 0) { foreach (var data in datas) { stringValue += $"{data:x2}, "; } stringValue = stringValue.Remove(stringValue.Length - 2); } stringValue += "}"; return($"OSCValue.Blob({stringValue})"); } return($"OSCValue.{type}({value})"); }
public OSCValue(OSCValueType type, object value) { this.value = value; this.type = type; }
public static Type GetType(OSCValueType valueType) { if (valueType == OSCValueType.Unknown) { return(null); } if (valueType == OSCValueType.Int) { return(typeof(int)); } if (valueType == OSCValueType.Long) { return(typeof(long)); } if (valueType == OSCValueType.True) { return(typeof(bool)); } if (valueType == OSCValueType.False) { return(typeof(bool)); } if (valueType == OSCValueType.Float) { return(typeof(float)); } if (valueType == OSCValueType.Double) { return(typeof(double)); } if (valueType == OSCValueType.String) { return(typeof(string)); } if (valueType == OSCValueType.Null) { return(null); } if (valueType == OSCValueType.Impulse) { return(null); } if (valueType == OSCValueType.Blob) { return(typeof(byte[])); } if (valueType == OSCValueType.Char) { return(typeof(char)); } if (valueType == OSCValueType.Color) { return(typeof(Color)); } if (valueType == OSCValueType.TimeTag) { return(typeof(DateTime)); } if (valueType == OSCValueType.Midi) { return(typeof(OSCMidi)); } if (valueType == OSCValueType.Array) { return(typeof(List <OSCValue>)); } return(null); }
private static OSCPacker GetPacker(OSCValueType valueType) { return(_packersDictionary.ContainsKey(valueType) ? _packersDictionary[valueType] : null); }
private static object UnpackValue(OSCValueType valueType, byte[] bytes, ref int start) { var packer = GetPacker(valueType); return(packer != null?packer.UnpackValue(bytes, ref start) : default(object)); }