AddTracks() public method

public AddTracks ( MidiFile file ) : void
file MidiFile
return void
コード例 #1
0
ファイル: iMUSE.cs プロジェクト: joeriedel/DarkForcesUnity
    public void PlayLevelMusic(GMD stalk, GMD fight)
    {
        _bIsPlayingLevelMusic = true;

        MidiFile stalkMidi = new MidiFile(stalk.MidiData);

        _stalkSequences = new MusicSequences();
        _stalkSequences.FirstTrack = 0;
        _stalkSequences.NumTracks = stalkMidi.Tracks.Length;

        foreach (var Track in stalkMidi.Tracks) {
            _stalkSequences.TrackSections.Add(Track.Sections);
        }

        if (fight != null) {
            MidiFile fightMidi = new MidiFile(fight.MidiData);

            _fightSequences = new MusicSequences();
            _fightSequences.FirstTrack = _stalkSequences.NumTracks;
            _fightSequences.NumTracks = fightMidi.Tracks.Length;

            foreach (var Track in fightMidi.Tracks) {
                _fightSequences.TrackSections.Add(Track.Sections);
            }

            // merge
            stalkMidi.AddTracks(fightMidi);
        }

        PitchTo(0f, 0f);

        lock (this) {
            _midiSequencer.LoadMidi(stalkMidi, false);
            _currentTrack = 0;
            _currentSection = _stalkSequences.TrackSections[0][0];
            _midiSequencer.Play();
            _midiSequencer.SwitchSection(_currentTrack, _currentSection, 0f);
        }
    }