protected override int GetContentSize(WritingSettings settings) { return(DataTypesUtilities.GetVlqLength(A) + DataTypesUtilities.GetVlqLength(B?.Length ?? 0) + (B?.Length ?? 0) + 1); }
protected override void WriteContent(MidiWriter writer, WritingSettings settings) { writer.WriteVlqNumber(A); writer.WriteVlqNumber(B?.Length ?? 0); writer.WriteString(B); writer.WriteByte(C); }
public void Write(MidiEvent midiEvent, MidiWriter writer, WritingSettings settings, bool writeStatusByte) { if (writeStatusByte) { var statusByte = GetStatusByte(midiEvent); writer.WriteByte(statusByte); } midiEvent.Write(writer, settings); }
private MidiFile WriteRead(MidiFile midiFile, WritingSettings writingSettings = null, ReadingSettings readingSettings = null) { var filePath = Path.Combine(Path.GetTempPath(), $"{Guid.NewGuid():N}.mid"); midiFile.Write(filePath, settings: writingSettings); midiFile = MidiFile.Read(filePath, readingSettings); File.Delete(filePath); return(midiFile); }
public static void Write(MidiFile midiFile, Action <string> action, WritingSettings settings = null, MidiFileFormat?format = null) { var filePath = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName()); try { midiFile.Write(filePath, format: format ?? MidiFileFormat.MultiTrack, settings: settings); action(filePath); } finally { FileOperations.DeleteFile(filePath); } }
public void ReadWriteCustomMetaEvent() { const int expectedA = 1234567; const string expectedB = "Test"; const byte expectedC = 45; var customMetaEventTypes = new EventTypesCollection { { typeof(CustomMetaEvent), 0x5A } }; var writingSettings = new WritingSettings { CustomMetaEventTypes = customMetaEventTypes }; var readingSettings = new ReadingSettings { CustomMetaEventTypes = customMetaEventTypes }; var midiFile = MidiFileTestUtilities.Read( new MidiFile( new TrackChunk( new CustomMetaEvent(expectedA, expectedB, expectedC) { DeltaTime = 100 }, new TextEvent("foo"), new MarkerEvent("bar"))), writingSettings, readingSettings); var customMetaEvents = midiFile.GetEvents().OfType <CustomMetaEvent>().ToArray(); Assert.AreEqual(1, customMetaEvents.Length, "Custom meta events count is invalid."); var customMetaEvent = customMetaEvents.First(); Assert.AreEqual(100, customMetaEvent.DeltaTime, "Delta-time is invalid."); Assert.AreEqual(expectedA, customMetaEvent.A, "A value is invalid"); Assert.AreEqual(expectedB, customMetaEvent.B, "B value is invalid"); Assert.AreEqual(expectedC, customMetaEvent.C, "C value is invalid"); }
private void Write(MidiFile midiFile, Action <WritingSettings> setupCompression, Action <FileInfo, FileInfo> fileInfosAction) { MidiFileTestUtilities.Write( midiFile, filePath => { var fileInfo = new FileInfo(filePath); var writingSettings = new WritingSettings(); setupCompression(writingSettings); MidiFileTestUtilities.Write( midiFile, filePath2 => { var fileInfo2 = new FileInfo(filePath2); fileInfosAction(fileInfo, fileInfo2); }, writingSettings); }, new WritingSettings()); }
public static MidiFile Read(MidiFile midiFile, WritingSettings writingSettings, ReadingSettings readingSettings, MidiFileFormat?format = null) { var filePath = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName()); try { if (format == null) { format = MidiFileFormat.MultiTrack; try { format = midiFile.OriginalFormat; } catch { } } midiFile.Write(filePath, format: format.Value, settings: writingSettings); return(MidiFile.Read(filePath, readingSettings)); } finally { FileOperations.DeleteFile(filePath); } }
protected override uint GetContentSize(WritingSettings settings) { return((uint)DataTypesUtilities.GetVlqLength(A)); }
/// <summary> /// Gets the size of the content of a MIDI meta event. /// </summary> /// <param name="settings">Settings according to which the event's content must be written.</param> /// <returns>Size of the event's content.</returns> protected abstract int GetContentSize(WritingSettings settings);
/// <summary> /// Writes content of a MIDI meta event. /// </summary> /// <param name="writer">Writer to write the content with.</param> /// <param name="settings">Settings according to which the event's content must be written.</param> protected abstract void WriteContent(MidiWriter writer, WritingSettings settings);
/// <summary> /// Gets the size of the content of a MIDI event. /// </summary> /// <param name="settings">Settings according to which the event's content must be written.</param> /// <returns>Size of the event's content.</returns> internal sealed override int GetSize(WritingSettings settings) { return(GetContentSize(settings)); }
/// <summary> /// Writes content of a MIDI event. /// </summary> /// <param name="writer">Writer to write the content with.</param> /// <param name="settings">Settings according to which the event's content must be written.</param> internal sealed override void Write(MidiWriter writer, WritingSettings settings) { WriteContent(writer, settings); }
public int CalculateSize(MidiEvent midiEvent, WritingSettings settings, bool writeStatusByte) { return((writeStatusByte ? 1 : 0) + midiEvent.GetSize(settings)); }
protected override void WriteContent(MidiWriter writer, WritingSettings settings) { throw new System.NotImplementedException(); }
/// <summary> /// Writes content of a MIDI meta event. /// </summary> /// <param name="writer">Writer to write the content with.</param> /// <param name="settings">Settings according to which the event's content must be written.</param> protected override void WriteContent(MidiWriter writer, WritingSettings settings) { }
internal override sealed void Write(MidiWriter writer, WritingSettings settings) { }
/// <summary> /// Writes content of a MIDI meta event. /// </summary> /// <param name="writer">Writer to write the content with.</param> /// <param name="settings">Settings according to which the event's content must be written.</param> protected override void WriteContent(MidiWriter writer, WritingSettings settings) { writer.WriteByte(Port); }
/// <summary> /// Writes content of a MIDI meta event. /// </summary> /// <param name="writer">Writer to write the content with.</param> /// <param name="settings">Settings according to which the event's content must be written.</param> protected override void WriteContent(MidiWriter writer, WritingSettings settings) { writer.WriteWord(Number); }
internal override sealed int GetSize(WritingSettings settings) { return(0); }
protected override void WriteContent(MidiWriter writer, WritingSettings settings) { writer.WriteVlqNumber(A); }
/// <summary> /// Gets the size of the content of a MIDI meta event. /// </summary> /// <param name="settings">Settings according to which the event's content must be written.</param> /// <returns>Size of the event's content.</returns> protected override int GetContentSize(WritingSettings settings) { return(0); }
protected override uint GetContentSize(WritingSettings settings) { throw new System.NotImplementedException(); }