From ad5440e97de4b37388ea948a6d22fba17b4f015f Mon Sep 17 00:00:00 2001 From: alcexhim Date: Thu, 12 Jun 2014 15:54:04 -0400 Subject: [PATCH] Starting to add the Miles Sound System XMI data format to the Multimedia plugin --- .../Synthesized/ExtendedMIDI/XMIDataFormat.cs | 51 +++++++++++++++++++ .../UniversalEditor.Plugins.Multimedia.csproj | 5 +- 2 files changed, 53 insertions(+), 3 deletions(-) create mode 100644 CSharp/Plugins/UniversalEditor.Plugins.Multimedia/DataFormats/Multimedia/Audio/Synthesized/ExtendedMIDI/XMIDataFormat.cs diff --git a/CSharp/Plugins/UniversalEditor.Plugins.Multimedia/DataFormats/Multimedia/Audio/Synthesized/ExtendedMIDI/XMIDataFormat.cs b/CSharp/Plugins/UniversalEditor.Plugins.Multimedia/DataFormats/Multimedia/Audio/Synthesized/ExtendedMIDI/XMIDataFormat.cs new file mode 100644 index 00000000..4cd2317a --- /dev/null +++ b/CSharp/Plugins/UniversalEditor.Plugins.Multimedia/DataFormats/Multimedia/Audio/Synthesized/ExtendedMIDI/XMIDataFormat.cs @@ -0,0 +1,51 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using UniversalEditor.DataFormats.Chunked.RIFF; +using UniversalEditor.ObjectModels.Chunked; +using UniversalEditor.ObjectModels.Multimedia.Audio.Synthesized; + +namespace UniversalEditor.DataFormats.Multimedia.Audio.Synthesized.ExtendedMIDI +{ + public class XMIDataFormat : RIFFDataFormat + { + private static DataFormatReference _dfr = null; + public override DataFormatReference MakeReference() + { + if (_dfr == null) + { + _dfr = new DataFormatReference(this.GetType()); + _dfr.Capabilities.Add(typeof(SynthesizedAudioObjectModel), DataFormatCapabilities.All); + _dfr.Capabilities.Add(typeof(ChunkedObjectModel), DataFormatCapabilities.Bootstrap); + _dfr.Filters.Add("Miles Sound System eXtended MIDI audio", new byte?[][] { new byte?[] { (byte)'F', (byte)'O', (byte)'R', (byte)'M', null, null, null, null, 'X', (byte)'D', (byte)'I', (byte)'R', (byte)'I', (byte)'N', (byte)'F', (byte)'O' } }, new string[] { "*.xmi" }); + } + } + + protected override void BeforeLoadInternal(Stack objectModels) + { + base.BeforeLoadInternal(objectModels); + objectModels.Push(new ChunkedObjectModel()); + } + protected override void AfterLoadInternal(Stack objectModels) + { + base.AfterLoadInternal(objectModels); + + ChunkedObjectModel chunked = (objectModels.Pop() as ChunkedObjectModel); + SynthesizedAudioObjectModel audio = (objectModels.Pop() as SynthesizedAudioObjectModel); + + + } + protected override void BeforeSaveInternal(Stack objectModels) + { + base.BeforeSaveInternal(objectModels); + + SynthesizedAudioObjectModel audio = (objectModels.Pop() as SynthesizedAudioObjectModel); + ChunkedObjectModel chunked = new ChunkedObjectModel(); + + + + objectModels.Push(chunked); + } + } +} diff --git a/CSharp/Plugins/UniversalEditor.Plugins.Multimedia/UniversalEditor.Plugins.Multimedia.csproj b/CSharp/Plugins/UniversalEditor.Plugins.Multimedia/UniversalEditor.Plugins.Multimedia.csproj index fd3b2701..3b5a08d7 100644 --- a/CSharp/Plugins/UniversalEditor.Plugins.Multimedia/UniversalEditor.Plugins.Multimedia.csproj +++ b/CSharp/Plugins/UniversalEditor.Plugins.Multimedia/UniversalEditor.Plugins.Multimedia.csproj @@ -74,6 +74,7 @@ + @@ -329,9 +330,7 @@ true - - - + Designer