Exemplo n.º 1
0
        internal override IEnumerable <DataValidationError> Load(DataSegment segment)
        {
            var indexValue = segment.ReadInt32(Offset, NumericCodec.Range32);
            var bankValue  = (InstrumentBank)segment.ReadInt32(SchemaField.BankOffset, NumericCodec.Range8);

            if (bankValue == InstrumentBank.Preset && indexValue >= 0 && indexValue < Schema.PresetInstruments.Count)
            {
                Instrument = Schema.PresetInstruments[indexValue];
                return(DataValidationError.None);
            }
            else if (bankValue == InstrumentBank.UserSamples && indexValue >= 0 && indexValue < Schema.UserSampleInstruments.Count)
            {
                Instrument = Schema.UserSampleInstruments[indexValue];
                return(DataValidationError.None);
            }
            else
            {
                return(new[] { new DataValidationError(this, $"Invalid instrument field bank/index combination: {bankValue}/{indexValue}") });
            }
        }
Exemplo n.º 2
0
 internal override void Load(DataSegment segment)
 {
     index = segment.ReadInt32(Offset, Size);
     bank  = (InstrumentBank)segment.ReadInt32(SchemaField.BankOffset, 1);
 }