Esempio n. 1
0
        /// <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");
            }
        }