/// <summary> /// /// </summary> /// <param name="memory"></param> private void ReadSyxMidContent(ISysExMemory memory) { memory.Convert7To8Bits(); switch (ContentType) { case PcgMemory.ContentType.CurrentProgram: ReadSingleProgram(SysExStartOffset); memory.SynchronizeProgramName(); break; case PcgMemory.ContentType.CurrentCombi: ReadSingleCombi(SysExStartOffset); memory.SynchronizeCombiName(); break; case PcgMemory.ContentType.All: // Fall through case PcgMemory.ContentType.AllCombis: // Fall through case PcgMemory.ContentType.AllPrograms: ReadAllData(); break; case PcgMemory.ContentType.Global: // Fall through case PcgMemory.ContentType.AllSequence: // Fall through case PcgMemory.ContentType.Drums: // Do not read anything. break; default: throw new NotSupportedException("Unsupported SysEx function"); } }
/// <summary> /// /// </summary> /// <param name="filetype"></param> /// <param name="modelType"></param> public override void ReadContent(Memory.FileType filetype, Models.EModelType modelType) { ISysExMemory memory = SkipModeChange(filetype); Index = SysExStartOffset; // Continue parsing. switch (filetype) { case Memory.FileType.Syx: // Fall through case Memory.FileType.Mid: memory.Convert7To8Bits(); switch (ContentType) { case PcgMemory.ContentType.CurrentProgram: ReadSingleProgram(SysExStartOffset); memory.SynchronizeProgramName(); break; case PcgMemory.ContentType.CurrentCombi: ReadSingleCombi(SysExStartOffset); memory.SynchronizeCombiName(); break; case PcgMemory.ContentType.All: ReadAllData(); break; case PcgMemory.ContentType.AllCombis: // Not used. break; case PcgMemory.ContentType.AllPrograms: ReadPrograms(memory); break; case PcgMemory.ContentType.Global: case PcgMemory.ContentType.AllSequence: // Do not read anything. break; // default: Do nothing, should result in: No Patch data in file } break; default: throw new NotSupportedException("Unsupported file type"); } }