コード例 #1
0
ファイル: RTPMessage.cs プロジェクト: yuritkach/MidiStyler
        public OutDataBuffer GeneratePayload()
        {
            OutDataBuffer buffer = new OutDataBuffer();

            int firstByte = 0;

            firstByte |= this.version << 6;
            firstByte |= this.padding ? 0x20 : 0;
            firstByte |= this.hasExtension ? 0x10 : 0;
            // csrcs = 0... so just skip this
            //        firstByte |= (this.csrcs.length > 15 ? 15 : this.csrcs.length);

            int secondByte = this.payloadType | (this.marker ? 0x80 : 0);

            buffer.Write8(firstByte);
            buffer.Write8(secondByte);
            buffer.Write16(SequenceNumber);
            long t = MIDISession.GetInstance().GetNow();

            //        Log.e("RTPMessage","t:"+t+" t8:"+(t >>> 8)+" t16:"+(t >>>16)+" tint:"+(int)t);
            //        timestamp = (int)t >>> 8;
            timestamp = (int)t;
            buffer.Write32(timestamp << 0);
            buffer.Write32(ssrc);
            return(buffer);
        }
コード例 #2
0
        public byte[] GenerateBuffer()
        {
            OutDataBuffer buffer = GeneratePayload();

            buffer.Write8(message.Length);
            foreach (byte b in message)
            {
                buffer.Write8(b);
            }
            return(buffer.ToByteArray());
        }
コード例 #3
0
        public byte[] generateBuffer()
        {
            OutDataBuffer buffer = generatePayload();

// TODO : this doesn't handle channel_status or channel correctly
//        buffer.write8(0x00);
            buffer.write16(0x0390);
            buffer.write8(note);
            buffer.write8(velocity);
            return(buffer.toByteArray());
        }
コード例 #4
0
        public byte[] GenerateBuffer()
        {
            OutDataBuffer buffer = new OutDataBuffer();

            switch (this.command)
            {
            case AppleMIDICommand.INVITATION:
            case AppleMIDICommand.INVITATION_ACCEPTED:
            case AppleMIDICommand.INVITATION_REJECTED:
            case AppleMIDICommand.END:
                buffer.Write16(0xFFFF);
                buffer.Write16(GetCommandKey(this.command));
                buffer.Write(this.protocol_version);
                buffer.Write(this.initiator_token);
                buffer.Write(this.ssrc);
                buffer.Write(new String(name));
                break;

            case AppleMIDICommand.SYNCHRONIZATION:
                buffer.Write16(0xFFFF);
                buffer.Write16(GetCommandKey(this.command));
                buffer.Write(this.ssrc);
                buffer.Write8(this.count);
                buffer.Write24(this.padding);
                buffer.Write64(new Long(this.timestamp1));
                buffer.Write64(new Long(this.timestamp2));
                buffer.Write64(new Long(this.timestamp3));
                break;

            case AppleMIDICommand.RECEIVER_FEEDBACK:
                buffer.Write16(0xFFFF);
                buffer.Write16(GetCommandKey(this.command));
                buffer.Write(this.ssrc);
                buffer.Write(this.sequenceNumber);
                break;

            default:
                return(null);
            }
            return(buffer.ToByteArray());
        }
コード例 #5
0
ファイル: MIDIControl.cs プロジェクト: yuritkach/MidiStyler
        public byte[] generateBuffer()
        {
            OutDataBuffer buffer = new OutDataBuffer();

            switch (this.command)
            {
            case INVITATION:
            case INVITATION_ACCEPTED:
            case INVITATION_REJECTED:
            case END:
                buffer.write16(0xFFFF);
                buffer.write16(getCommandKey(this.command));
                buffer.write(this.protocol_version);
                buffer.write(this.initiator_token);
                buffer.write(this.ssrc);
                buffer.write(this.name);
                break;

            case SYNCHRONIZATION:
                buffer.write16(0xFFFF);
                buffer.write16(getCommandKey(this.command));
                buffer.write(this.ssrc);
                buffer.write8(this.count);
                buffer.write24(this.padding);
                buffer.write64(this.timestamp1);
                buffer.write64(this.timestamp2);
                buffer.write64(this.timestamp3);
                break;

            case RECEIVER_FEEDBACK:
                buffer.write16(0xFFFF);
                buffer.write16(getCommandKey(this.command));
                buffer.write(this.ssrc);
                buffer.write(this.sequenceNumber);
                break;

            default:
                return(null);
            }
            return(buffer.toByteArray());
        }