示例#1
0
        public MidiPlayer(TrackSelectionManager trackSelectionManager)
        {
            isPlaying                  = false;
            mordhauOutDevice           = new MordhauOutDevice();
            this.trackSelectionManager = trackSelectionManager;
            sequence = new Sequence
            {
                Format = 1
            };

            sequencer = new Sequencer
            {
                Position = 0,
                Sequence = this.sequence
            };
            sequencer.PlayingCompleted     += new System.EventHandler(this.HandlePlayingCompleted);
            sequencer.ChannelMessagePlayed += new System.EventHandler <Sanford.Multimedia.Midi.ChannelMessageEventArgs>(this.HandleChannelMessagePlayed);
            sequencer.SysExMessagePlayed   += new System.EventHandler <Sanford.Multimedia.Midi.SysExMessageEventArgs>(this.HandleSysExMessagePlayed);
            sequencer.Chased  += new System.EventHandler <Sanford.Multimedia.Midi.ChasedEventArgs>(this.HandleChased);
            sequencer.Stopped += new System.EventHandler <Sanford.Multimedia.Midi.StoppedEventArgs>(this.HandleStopped);

            if (!(OutputDevice.DeviceCount == 0))
            {
                outDevice = new OutputDevice(0);
                sequence.LoadCompleted += HandleLoadCompleted;
            }
        }
示例#2
0
 // We need only one out device, might as well use rust, but take both for now cuz why not, feels unfair
 // Though they both get updated with the same values at the same time, for what we're doing
 public TrackSelectionForm(TrackSelectionManager trackSelectionManager, MordhauOutDevice mordhauOut)
 {
     _mordhauOut = mordhauOut;
     this.trackSelectionManager          = trackSelectionManager;
     trackSelectionManager.TrackChanged += new EventHandler(TrackChangedHandler);
     this.Load += TrackSelectionForm_Load;
     InitializeComponent();
     InitLists();
     trackSelectionManager.autoLoadProfile = AutoActivateCheckBox.Checked;
     typeof(Panel).InvokeMember("DoubleBuffered", BindingFlags.SetProperty
                                | BindingFlags.Instance | BindingFlags.NonPublic, null,
                                OffsetPanel, new object[] { true }); // Internet suggested this...
 }