Exemplo n.º 1
0
        protected override void OnUnprepareBuffer(MidiBufferStream buffer)
        {
            Check.IfArgumentNull(buffer, "buffer");

            int result = NativeMethods.midiOutUnprepareHeader(
                MidiPort.MidiSafeHandle, buffer.ToIntPtr(), (uint)MemoryUtil.SizeOfMidiHeader);

            MidiOutPortBase.ThrowIfError(result);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Adds the <paramref name="buffer"/> to the midi port.
        /// </summary>
        /// <param name="buffer">Must not be null.</param>
        private void AddBufferToPort(MidiBufferStream buffer)
        {
            Check.IfArgumentNull(buffer, "buffer");

            // make sure the stream is rewound.
            buffer.Position = 0;

            int result = NativeMethods.midiInAddBuffer(
                MidiPort.MidiSafeHandle,
                buffer.ToIntPtr(),
                (uint)MemoryUtil.SizeOfMidiHeader);

            MidiInPort.ThrowIfError(result);
        }
Exemplo n.º 3
0
        public override void LongData(MidiBufferStream buffer)
        {
            Check.IfArgumentNull(buffer, "buffer");

            ////if ((buffer.HeaderFlags & NativeMethods.MHDR_PREPARED) == 0)
            ////{
            ////    throw new InvalidOperationException("LongData cannot be called with a MidiBufferStream that has not been prepared.");
            ////}

            buffer.BytesRecorded = buffer.Position;

            int result = NativeMethods.midiStreamOut(
                MidiSafeHandle,
                buffer.ToIntPtr(),
                (uint)MemoryUtil.SizeOfMidiHeader);

            ThrowIfError(result);
        }