Пример #1
0
        private static OscMidiMessage GetMidiExpectedData(out byte[] expectedData)
        {
            var value = new OscMidiMessage(0, 1, 2, 3); // a dummy value.

            expectedData = BitConverter.GetBytes(value.ToInt32());
            return(value);
        }
Пример #2
0
        public void TestOscMidiMessageToInt32()
        {
            var value  = new OscMidiMessage(1, 0, 0, 0);
            var actual = value.ToInt32();

            actual.Should().Be(16777216);
        }
Пример #3
0
 public void OnReceiveMidi(OscMidiMessage message)
 {
     midiPortInputField.text   = message.port.ToString();
     midiStatusInputField.text = message.status.ToString();
     midiData1InputField.text  = message.data1.ToString();
     midiData2InputField.text  = message.data2.ToString();
 }
Пример #4
0
 void Awake()
 {
     _defaultColor = emptyInputImage.color;
     _timetag      = new OscTimeTag(new System.DateTime(1900, 1, 1));
     _midiMessage  = new OscMidiMessage();
     _sb           = new StringBuilder();
 }
Пример #5
0
        private object ParseObject(string value, IFormatProvider provider)
        {
            string name = ReadObjectNameToken();

            if (name.Length == 0)
            {
                throw new Exception(@"Malformed object missing type name");
            }

            string nameLower = name.ToLowerInvariant();

            switch (nameLower)
            {
            case "midi":
            case "m":
                return(OscMidiMessage.Parse(ref this, provider));

            case "time":
            case "t":
                return(OscTimeTag.Parse(ref this, provider));

            case "color":
            case "c":
                return(OscColor.Parse(ref this, provider));

            case "blob":
            case "b":
            case "data":
            case "d":
                return(ParseBlob(provider));

            default:
                throw new Exception($@"Unknown object type '{name}'");
            }
        }
Пример #6
0
    /// <summary>
    /// Creates a program change message.
    /// </summary>
    public static OscMidiMessage ProgramChange(Channel channel, byte number)
    {
        OscMidiMessage message = new OscMidiMessage();

        message.SetTypeAndChannel(Type.ProgramChange, channel);
        message.data1 = number;
        return(message);
    }
Пример #7
0
    /// <summary>
    /// Creates a note off message.
    /// </summary>
    public static OscMidiMessage NoteOff(Channel channel, byte key)
    {
        OscMidiMessage message = new OscMidiMessage();

        message.SetTypeAndChannel(Type.NoteOff, channel);
        message.data1 = key;
        return(message);
    }
Пример #8
0
        public void WriteMidi(ref OscMidiMessage value)
        {
            CheckWriterState(WriterState.Arguments);

            Write(unchecked ((int)value.FullMessage));

            Flush();
        }
Пример #9
0
        public void GetHashCodeTest()
        {
            OscMidiMessage target   = new OscMidiMessage(0x03F35626);
            int            expected = 0x03F35626;
            int            actual;

            actual = target.GetHashCode();
            Assert.Equal(expected, actual);
        }
Пример #10
0
        public void Data14BitValueTest()
        {
            ushort         expected = 0x1356;
            OscMidiMessage target   = new OscMidiMessage(0x03F35626);
            ushort         actual;

            actual = target.Data14BitValue;
            Assert.Equal(expected, actual);
        }
Пример #11
0
    /// <summary>
    /// Creates a note on message.
    /// </summary>
    public static OscMidiMessage NoteOn(Channel channel, byte key, byte velocity)
    {
        OscMidiMessage message = new OscMidiMessage();

        message.SetTypeAndChannel(Type.NoteOn, channel);
        message.data1 = key;
        message.data2 = velocity;
        return(message);
    }
Пример #12
0
    /// <summary>
    /// Creates a control change (CC) message.
    /// </summary>
    public static OscMidiMessage ControlChange(Channel channel, byte number, byte value)
    {
        OscMidiMessage message = new OscMidiMessage();

        message.SetTypeAndChannel(Type.ControlChange, channel);
        message.data1 = number;
        message.data2 = value;
        return(message);
    }
Пример #13
0
        public void EqualsTest2()
        {
            OscMidiMessage target   = new OscMidiMessage(0x03F35626);
            uint           obj      = 0x0832626;
            bool           expected = false;
            bool           actual;

            actual = target.Equals(obj);
            Assert.Equal(expected, actual);
        }
    /// <summary>
    /// Set argument at specified index, expanding message capacity if necessary.
    /// </summary>
    public OscMessage Set(int index, OscMidiMessage value)
    {
        int dataStartIndex = AdaptiveSet(index, OscArgInfo.midiInfo);

        if (!new FourByteOscData(value).TryWriteTo(_argData, ref dataStartIndex))
        {
            Debug.Log(OscDebug.FailedWritingBytesWarning(this));
        }
        return(this);
    }
Пример #15
0
        public OscMidiMessage ReadMidi(ref OscTypeTag typeTag)
        {
            CheckToken(OscToken.Midi);

            CheckForPacketEnd(OscError.ErrorParsingInt32, 4);

            OscMidiMessage result = new OscMidiMessage(unchecked ((uint)IPAddress.NetworkToHostOrder(BitConverter.ToInt32(buffer.Array, buffer.Offset + Position))));

            Position    += 4;
            currentToken = typeTag.NextToken();

            return(result);
        }
Пример #16
0
        public void OscMidiMessageConstructorTest1()
        {
            OscMidiMessage expected = new OscMidiMessage(0x03F35626);

            byte portID = 3;
            OscMidiSystemMessageType type = OscMidiSystemMessageType.SongSelect;
            ushort value = 0x1356;

            OscMidiMessage target = new OscMidiMessage(portID, type, value);

            Assert.Equal(expected, target);
            Assert.Equal(target.PortID, portID);
            Assert.Equal(target.MessageType, OscMidiMessageType.SystemExclusive);
            Assert.Equal(target.SystemMessageType, type);
            Assert.Equal(target.Data14BitValue, value);
        }
Пример #17
0
        public void OscMidiMessageConstructorTest()
        {
            OscMidiMessage expected = new OscMidiMessage(0x03962200);

            byte portID             = 3;
            OscMidiMessageType type = OscMidiMessageType.NoteOn;
            byte           channel  = 6;
            byte           data1    = 34;
            OscMidiMessage target   = new OscMidiMessage(portID, type, channel, data1);

            Assert.Equal(expected, target);
            Assert.Equal(target.PortID, portID);
            Assert.Equal(target.Channel, channel);
            Assert.Equal(target.MessageType, type);
            Assert.Equal(target.Data1, data1);
            Assert.Equal(target.Data2, 0);
        }
    /// <summary>
    /// Tries to get argument at index of midi message. Returns success status.
    /// </summary>
    public bool TryGet(int index, out OscMidiMessage value)
    {
        if (!ValidateTryGet(index, OscArgType.Midi))
        {
            value = new OscMidiMessage();
            return(false);
        }

        // Get.
        int             dataStartIndex = GetDataIndex(index);
        FourByteOscData dataValue;

        if (!FourByteOscData.TryReadFrom(_argData, ref dataStartIndex, out dataValue))
        {
            value = new OscMidiMessage();
            Debug.Log(OscDebug.FailedReadingBytesWarning(this));
            return(false);
        }
        value = dataValue.midiMessage;
        return(true);
    }
 public void Invoke(OscMidiMessage m)
 {
     CleanAndInvoke(ref _midiMessageAction, m);
 }
Пример #20
0
	/// <summary>
	/// Send an OscMessage with a single argument.
	/// </summary>
	public void Send( string address, OscMidiMessage value ){ SendPooled( OscPool.GetMessage( address ).Add( value ) ); }
 /// <summary>
 /// Adds argument.
 /// </summary>
 public OscMessage Add(OscMidiMessage value)
 {
     Set(_argInfo.Count, value); return(this);
 }
Пример #22
0
 public void Write(ref OscMidiMessage value)
 {
     builder.Append($"{{ Midi: {value} }}");
 }
Пример #23
0
 public void Write(OscMidiMessage value)
 {
     Write(ref value);
 }
 public FourByteOscData(OscMidiMessage value) : this()
 {
     _midiMessage = value;
 }