コード例 #1
0
    public void HapticPulse(int slider, int period, int value)
    {
        var message = new OSCMessage(MadeAxisName + "/haptic");

        message.AddValue(OSCValue.Int(slider)); // 1 or 2
        message.AddValue(OSCValue.Int(period)); // suggest 3-5 ms
        message.AddValue(OSCValue.Int(value));  //0 -255, but 100 up is better
        transmitter.Send(message);
    }
コード例 #2
0
        public override OSCValue GetValue()
        {
            if (Input.text.Length > 0)
            {
                return(OSCValue.Char(Input.text[0]));
            }

            return(OSCValue.Char(' '));
        }
コード例 #3
0
 protected override void ValueToOSCValues(List <OSCValue> values, Bounds value)
 {
     values.Add(OSCValue.Float(value.center.x));
     values.Add(OSCValue.Float(value.center.y));
     values.Add(OSCValue.Float(value.center.z));
     values.Add(OSCValue.Float(value.size.x));
     values.Add(OSCValue.Float(value.size.y));
     values.Add(OSCValue.Float(value.size.z));
 }
コード例 #4
0
    private void SendFloat(OSCTransmitter _transmitter, string address, float value)
    {
        //Send OSC message
        var message = new OSCMessage(string.Format("{0}", address));

        // Populate values.
        message.AddValue(OSCValue.Float((float)value));
        _transmitter.Send(message);
    }
コード例 #5
0
        protected virtual void Start()
        {
            var message = new OSCMessage(Address);

            message.AddValue(OSCValue.Int(440));
            Transmitter.Send(message);
            StartCoroutine(End(3));
            StartCoroutine(Wind(3));
        }
コード例 #6
0
    //Ready
    public void SendReplay()
    {
        OSCMessage message = new OSCMessage(_osc_replay);

        message.AddValue(OSCValue.String(localIP));
        message.AddValue(OSCValue.Bool(ready));

        _transmitter.Send(message);
    }
コード例 #7
0
        public void SendChar(string value)
        {
            if (value.Length == 0)
            {
                return;
            }

            Send(_charAddress, OSCValue.Char(value[0]));
        }
コード例 #8
0
    //Ready
    public void SendJump()
    {
        Debug.Log("Sending Jump Message");
        _transmitter_control.RemoteHost = serverIP;
        OSCMessage message = new OSCMessage(_osc_jump);

        message.AddValue(OSCValue.String(localIP));
        _transmitter_control.Send(message);
    }
コード例 #9
0
    private void CollectedSound(int collectedItems)
    {
        var message = new OSCMessage("/collect");

        message.AddValue(OSCValue.Float(collectedItems));
        message.AddValue(OSCValue.Float(100));
        message.AddValue(OSCValue.Float(69 - collectedItems * 2));
        transmitter.Send(message);
    }
コード例 #10
0
        protected override void ValueToOSCValues(List <OSCValue> values, IList value)
        {
            values.Add(OSCValue.Int(value.Count));

            foreach (var element in value)
            {
                OSCSerializer.Pack(values, element);
            }
        }
コード例 #11
0
    private void SendBang(OSCTransmitter _transmitter, string address)
    {
        //Send OSC message
        var message = new OSCMessage(string.Format("{0}", address));

        // Populate values.
        message.AddValue(OSCValue.Impulse());
        _transmitter.Send(message);
    }
コード例 #12
0
        IEnumerator End(float delay)
        {
            var message = new OSCMessage("/end");

            message.AddValue(OSCValue.Int(0));
            yield return(new WaitForSeconds(delay));

            Transmitter.Send(message);
        }
コード例 #13
0
ファイル: OSCValueTester.cs プロジェクト: iKadmium/OSCforPCL
        public static T TestOSCValueParser <T>(T value, Func <BinaryReader, IOSCValue <T> > parser)
        {
            IOSCValue <T> val    = OSCValue.Wrap(value) as IOSCValue <T>;
            BinaryReader  reader = new BinaryReader(new MemoryStream(val.Bytes));
            IOSCValue <T> parsed = parser.Invoke(reader);

            Assert.Equal(reader.BaseStream.Position, reader.BaseStream.Length);
            return(parsed.Contents);
        }
コード例 #14
0
        private void DrawValue(OSCValue value)
        {
            if (value.Type == OSCValueType.Array)
            {
                DrawArray(value);
                return;
            }

            var firstColumn  = 40f;
            var secondColumn = 60f;

            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.BeginVertical("box");

            GUILayout.Label(string.Format("Tag: {0}", value.Tag), OSCEditorStyles.CenterLabel, GUILayout.Width(firstColumn));

            EditorGUILayout.EndVertical();
            EditorGUILayout.BeginHorizontal();

            if (value.Type == OSCValueType.Blob ||
                value.Type == OSCValueType.Impulse ||
                value.Type == OSCValueType.Null)
            {
                EditorGUILayout.BeginHorizontal("box");
                EditorGUILayout.LabelField(value.Type.ToString(), OSCEditorStyles.CenterLabel);
                EditorGUILayout.EndHorizontal();
            }
            else
            {
                EditorGUILayout.BeginHorizontal("box");
                EditorGUILayout.LabelField(value.Type + ":", GUILayout.Width(secondColumn));
                EditorGUILayout.EndHorizontal();

                EditorGUILayout.BeginHorizontal("box");

                switch (value.Type)
                {
                case OSCValueType.Color:
                    EditorGUILayout.ColorField(value.ColorValue);
                    break;

                case OSCValueType.True:
                case OSCValueType.False:
                    EditorGUILayout.Toggle(value.BoolValue);
                    break;

                default:
                    EditorGUILayout.SelectableLabel(value.Value.ToString(), GUILayout.Height(EditorGUIUtility.singleLineHeight));
                    break;
                }

                EditorGUILayout.EndHorizontal();
            }

            EditorGUILayout.EndHorizontal();
            EditorGUILayout.EndHorizontal();
        }
コード例 #15
0
        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();
            }
        }
コード例 #16
0
    public void SendClear()
    {
        OSCMessage message = new OSCMessage(clearFilter);

        message.AddValue(OSCValue.String("clear"));

        Debug.Log("Sent: " + message.ToString());

        transmitter.Send(message);
    }
コード例 #17
0
    public void SendMode()
    {
        OSCMessage message = new OSCMessage(modeFilter);

        message.AddValue(OSCValue.String("mode"));

        Debug.Log("Sent: " + message.ToString());

        transmitter.Send(message);
    }
コード例 #18
0
        protected override void ValueToOSCValues(List <OSCValue> values, IDictionary value)
        {
            values.Add(OSCValue.Int(value.Count));

            for (var i = 0; i < value.Count; i++)
            {
                OSCSerializer.Pack(values, value.Keys.OfType <object>().ElementAt(i));
                OSCSerializer.Pack(values, value.Values.OfType <object>().ElementAt(i));
            }
        }
コード例 #19
0
    public void SendExit()
    {
        OSCMessage message = new OSCMessage(exitFilter);

        message.AddValue(OSCValue.String("exit"));

        Debug.Log("Sent: " + message.ToString());

        transmitter.Send(message);
    }
コード例 #20
0
    public void Hit(string mode)
    {
        var message = new OSCMessage("/hit");

        message.AddValue(OSCValue.String(mode));
        string caveMode = inCave ? "in" : "out";

        message.AddValue(OSCValue.String(caveMode));
        transmitter.Send(message);
    }
コード例 #21
0
ファイル: TableOpenSequence.cs プロジェクト: Klanly/Marrow
        void SendOSCofShowingPlate()
        {
            var message = new OSCMessage(showPlateOscAddress);

            message.AddValue(OSCValue.Int(showPlateNotes[Random.Range(0, 3)]));
            message.AddValue(OSCValue.Int(120));
            message.AddValue(OSCValue.Int(1));

            oSCTransmitter.Send(message);
        }
コード例 #22
0
    public void StopSounds()
    {
        // Create message
        var message = new OSCMessage("/stop");

        // Populate values.
        message.AddValue(OSCValue.String("useless"));
        // Send message
        _transmitter.Send(message);
    }
コード例 #23
0
        private REInvokeStatus InvokeGetComponentsCommand(Task task, List <OSCValue> inputValues, ref List <OSCValue> outputValues)
        {
            if (inputValues.Count != 4)
            {
                return(REInvokeStatus.Cancel);
            }

            if (inputValues[0].Type != OSCValueType.Int ||
                inputValues[1].Type != OSCValueType.Int ||
                inputValues[2].Type != OSCValueType.Int ||
                inputValues[3].Type != OSCValueType.String)
            {
                return(REInvokeStatus.Cancel);
            }

            var index         = inputValues[0].IntValue;
            var count         = inputValues[1].IntValue;
            var instanceId    = inputValues[2].IntValue;
            var componentType = inputValues[3].StringValue;

            var parentObject = GetItem(task.ParentId) as REObject;

            if (parentObject == null)
            {
                return(REInvokeStatus.Cancel);
            }

            var remoteComponent = new REComponent();

            remoteComponent.Name       = componentType;
            remoteComponent.InstanceId = instanceId;
            remoteComponent.Parent     = parentObject;

            parentObject.Components.Add(remoteComponent);

            if (_itemsDictionary.ContainsKey(remoteComponent.InstanceId))
            {
                _itemsDictionary.Remove(remoteComponent.InstanceId);
            }

            _itemsDictionary.Add(remoteComponent.InstanceId, remoteComponent);

            task.Process(instanceId);

            index++;

            if (index >= count)
            {
                return(REInvokeStatus.Cancel);
            }

            outputValues.Add(OSCValue.Int(index));

            return(REInvokeStatus.Complete);
        }
コード例 #24
0
        private static void DrawEditableArray(OSCValue value, ref OSCValue removeValue)
        {
            var      defaultColor     = GUI.color;
            OSCValue removeArrayValue = null;

            EditorGUILayout.BeginVertical("box");

            EditorGUILayout.BeginHorizontal();

            EditorGUILayout.BeginHorizontal("box");
            EditorGUILayout.LabelField(_arrayContent, OSCEditorStyles.CenterBoldLabel);
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.BeginVertical("box");
            GUI.color = Color.red;

            var deleteButton = GUILayout.Button("x", GUILayout.Height(EditorGUIUtility.singleLineHeight), GUILayout.Width(20));

            if (deleteButton)
            {
                removeValue = value;
            }

            GUI.color = defaultColor;
            EditorGUILayout.EndVertical();

            EditorGUILayout.EndHorizontal();

            foreach (var arrayValues in value.ArrayValue)
            {
                DrawEditableValue(arrayValues, ref removeArrayValue);
            }

            EditorGUILayout.BeginHorizontal();

            EditorGUILayout.BeginVertical("box");
            EditorGUILayout.LabelField(_addToArrayContent, GUILayout.Width(40));
            EditorGUILayout.EndVertical();

            var includeArrayValue = CreateValueButton(value);

            EditorGUILayout.EndHorizontal();

            EditorGUILayout.EndVertical();

            if (includeArrayValue != null)
            {
                value.ArrayValue.Add(includeArrayValue);
            }

            if (removeArrayValue != null)
            {
                value.ArrayValue.Remove(removeArrayValue);
            }
        }
コード例 #25
0
        public override OSCValue GetValue()
        {
            float value;

            if (float.TryParse(Input.text, out value))
            {
                return(OSCValue.Float(value));
            }

            return(OSCValue.Float(0));
        }
コード例 #26
0
        public override OSCValue GetValue()
        {
            int value;

            if (int.TryParse(Input.text, out value))
            {
                return(OSCValue.Int(value));
            }

            return(OSCValue.Int(0));
        }
コード例 #27
0
        public override OSCValue GetValue()
        {
            long value;

            if (long.TryParse(Input.text, out value))
            {
                return(OSCValue.Long(value));
            }

            return(OSCValue.Long(0));
        }
コード例 #28
0
        public void SendWrongMessage()
        {
            var message = new OSCMessage(_address);

            message.AddValue(OSCValue.Int(137));
            message.AddValue(OSCValue.String("Wrong Message"));
            message.AddValue(OSCValue.Blob(new byte[] { 0x1, 0x3, 0x3, 0x7 }));
            message.AddValue(OSCValue.Bool(true));

            Transmitter.Send(message);
        }
コード例 #29
0
        public void SendCorrectMessage()
        {
            var message = new OSCMessage(_address);

            message.AddValue(OSCValue.String("Correct Message"));
            message.AddValue(OSCValue.Int(137));
            message.AddValue(OSCValue.Bool(true));
            message.AddValue(OSCValue.Bool(true));

            Transmitter.Send(message);
        }
コード例 #30
0
        private void DrawArray(OSCValue value, ref OSCValue removeValue)
        {
            var defaultColor      = GUI.color;
            var removeArrayValue  = (OSCValue)null;
            var includeArrayValue = (OSCValue)null;

            using (new GUILayout.VerticalScope(OSCEditorStyles.Box))
            {
                using (new GUILayout.HorizontalScope())
                {
                    using (new GUILayout.HorizontalScope(OSCEditorStyles.Box))
                    {
                        EditorGUILayout.LabelField(_arrayContent, OSCEditorStyles.CenterBoldLabel);
                    }

                    using (new GUILayout.VerticalScope(OSCEditorStyles.Box))
                    {
                        GUI.color = Color.red;
                        if (GUILayout.Button("x", GUILayout.Height(EditorGUIUtility.singleLineHeight),
                                             GUILayout.Width(20)))
                        {
                            removeValue = value;
                        }

                        GUI.color = defaultColor;
                    }
                }

                foreach (var arrayValues in value.ArrayValue)
                {
                    DrawValue(arrayValues, ref removeArrayValue);
                }

                using (new GUILayout.HorizontalScope())
                {
                    using (new GUILayout.VerticalScope(OSCEditorStyles.Box))
                    {
                        EditorGUILayout.LabelField(_addToArrayContent, GUILayout.Width(40));
                    }

                    includeArrayValue = CreateValueButton(value);
                }
            }

            if (includeArrayValue != null)
            {
                value.ArrayValue.Add(includeArrayValue);
            }

            if (removeArrayValue != null)
            {
                value.ArrayValue.Remove(removeArrayValue);
            }
        }