Пример #1
0
 override public void Append(OSCData value)
 {
     if (value is OSCPacket)
     {
         values.Add((OSCPacket)value);
     }
     else
     {
         // TODO: exception
     }
 }
Пример #2
0
 /// <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);
         }
     }
 }
Пример #3
0
        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);
        }
Пример #4
0
 abstract public void Append(OSCData value);
Пример #5
0
 /// <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);
 }
Пример #6
0
 /// <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());
 }