override public void Append(OSCData value) { if (value is OSCPacket) { values.Add((OSCPacket)value); } else { // TODO: exception } }
/// <summary> /// Sets an OSC value at a given address. /// </summary> public void SetValue(string address, float value) { lock (this) { OSCData data; if (_data.ContainsKey(address)) { data = _data[address]; if (data.FloatValue != value) { data.FloatValue = value; data.ChangeSet = ++ChangeSet; } } else { data = new OSCData(); data.Address = address; data.FloatValue = value; data.ChangeSet = ++ChangeSet; _data.Add(address, data); } } }
private List <OSCData> OSCReceiveUpdate() { List <OSCData> oscDataList = new List <OSCData>(); // must be called before you try to read value from osc server OSCHandler.Instance.UpdateLogs(); // データ受信 servers = OSCHandler.Instance.Servers; foreach (KeyValuePair <string, ServerLog> item in servers) { // If we have received at least one packet, // show the last received from the log in the Debug console //print("servers: " + item.Value.log.Count); //print(oscReceiveLogCount + " " + item.Value.log.Count); //if (item.Value.log.Count > 0) { //if (oscReceiveLogCount != item.Value.log.Count) { for (int i = 0; i < item.Value.packets.Count; i++) { if (lastTimeStamp < item.Value.packets[i].TimeStamp) { lastTimeStamp = item.Value.packets[i].TimeStamp; int arrayNum = item.Value.packets[i].Data.Count; if (arrayNum > 0) { OSCData oscData = new OSCData(); // Server name oscData.Key = item.Key; // OSC address oscData.Address = item.Value.packets[i].Address; // First data value string dataStr = ""; int dataCount = item.Value.packets[i].Data.Count; for (int j = 0; j < dataCount; j++) { if (j == dataCount - 1) { dataStr += item.Value.packets[i].Data[j]; } else { dataStr += item.Value.packets[i].Data[j] + ","; } } oscData.Data = dataStr; oscDataList.Add(oscData); } } } //oscReceiveLogCount = item.Value.log.Count; } if (oscDataList.Count > 0) { oscReceiveEvent.Invoke(oscDataList); //print(oscDataList[0].Data); } return(oscDataList); }
abstract public void Append(OSCData value);
/// <summary>Creates a new OSC Message with a user-defined address and contains a value.</summary> /// <param name="address">Address to prefix the message with.</summary> /// <param name="value">Value to add to message.</summary> public OSCMessage(string address, OSCData value) { this.typeTag = ","; this.Address = address; Append(value); }
/// <summary>Adds a compatible object to the message</summary> /// <param name="value">Value to append</param> override public void Append(OSCData value) { values.Add(value); AppendTag(value.GetTag()); }