Exemplo n.º 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;
            }
        }
Exemplo n.º 2
0
        public LuteBotForm()
        {
            InitializeComponent();

            onlineManager                             = new OnlineSyncManager();
            playList                                  = new PlayListManager();
            trackSelectionManager                     = new TrackSelectionManager();
            playList.PlayListUpdatedEvent            += new EventHandler <PlayListEventArgs>(HandlePlayListChanged);
            soundBoardManager                         = new SoundBoardManager();
            soundBoardManager.SoundBoardTrackRequest += new EventHandler <SoundBoardEventArgs>(HandleSoundBoardTrackRequest);
            player                                       = new MidiPlayer(trackSelectionManager);
            player.SongLoaded                           += new EventHandler <AsyncCompletedEventArgs>(PlayerLoadCompleted);
            hotkeyManager                                = new HotkeyManager();
            hotkeyManager.NextKeyPressed                += new EventHandler(NextButton_Click);
            hotkeyManager.PlayKeyPressed                += new EventHandler(PlayButton_Click);
            hotkeyManager.PreviousKeyPressed            += new EventHandler(PreviousButton_Click);
            trackSelectionManager.OutDeviceResetRequest += new EventHandler(ResetDevice);
            trackSelectionManager.ToggleTrackRequest    += new EventHandler <TrackItem>(ToggleTrack);

            PlayButton.Enabled       = false;
            StopButton.Enabled       = false;
            PreviousButton.Enabled   = false;
            NextButton.Enabled       = false;
            MusicProgressBar.Enabled = false;

            _hookID = SetHook(_proc);
            OpenDialogs();
            this.StartPosition = FormStartPosition.Manual;
            Point coords = WindowPositionUtils.CheckPosition(ConfigManager.GetCoordsProperty(PropertyItem.MainWindowPos));

            Top  = coords.Y;
            Left = coords.X;
        }
Exemplo n.º 3
0
        public PartitionsForm(TrackSelectionManager tsm, MidiPlayer player)
        {
            this.tsm    = tsm;
            this.player = player;
            InitializeComponent();
            this.FormClosing            += PartitionsForm_FormClosing1;
            listBoxPartitions.MouseMove += ListBoxPartitions_MouseMove;

            if (!LuteBotForm.IsLuteModInstalled())
            {
                var popup = new PopupForm("Install LuteMod", "Would you like to update/install LuteMod?", "LuteMod is a Mordhau Mod that lets you manage your songs in game and move freely, and play duets with lute and flute\n\nLuteMod was not detected as installed, or an old version was detected\n\nThanks to Monty for LuteMod, and cswic for the autoloader\n\nFor more information, see:",
                                          new Dictionary <string, string>()
                {
                    { "What is LuteMod", "https://mordhau-bards-guild.fandom.com/wiki/LuteMod" },
                    { "LuteMod mod.io page", "https://mordhau.mod.io/lutemod" },
                    { "Autoloader mod.io page", "https://mordhau.mod.io/clientside-mod-autoloader" },
                    { "Flute and Duets", "https://mordhau-bards-guild.fandom.com/wiki/LuteMod#Flute_and_Duets" },
                    { "The Bard's Guild Discord", "https://discord.gg/4xnJVuz" },
                }, MessageBoxButtons.YesNo);
                popup.ShowDialog(this);
                if (popup.DialogResult == DialogResult.Yes)
                {
                    LuteBotForm.InstallLuteMod();
                }
                else
                {
                    Hide();
                }
            }
            RefreshPartitionList();
        }
Exemplo n.º 4
0
 public TrackSelectionForm(TrackSelectionManager trackSelectionManager)
 {
     this.trackSelectionManager          = trackSelectionManager;
     trackSelectionManager.TrackChanged += new EventHandler(TrackChangedHandler);
     InitializeComponent();
     InitLists();
     trackSelectionManager.autoLoadProfile = AutoActivateCheckBox.Checked;
 }
Exemplo n.º 5
0
        public LuteBotForm()
        {
            InitializeComponent();

            onlineManager                             = new OnlineSyncManager();
            playList                                  = new PlayListManager();
            trackSelectionManager                     = new TrackSelectionManager();
            playList.PlayListUpdatedEvent            += new EventHandler <PlayListEventArgs>(HandlePlayListChanged);
            soundBoardManager                         = new SoundBoardManager();
            soundBoardManager.SoundBoardTrackRequest += new EventHandler <SoundBoardEventArgs>(HandleSoundBoardTrackRequest);
            player                                       = new MidiPlayer(trackSelectionManager);
            player.SongLoaded                           += new EventHandler <AsyncCompletedEventArgs>(PlayerLoadCompleted);
            hotkeyManager                                = new HotkeyManager();
            hotkeyManager.NextKeyPressed                += new EventHandler(NextButton_Click);
            hotkeyManager.PlayKeyPressed                += new EventHandler(PlayButton_Click);
            hotkeyManager.StopKeyPressed                += new EventHandler(StopButton_Click);
            hotkeyManager.SynchronizePressed            += HotkeyManager_SynchronizePressed;
            hotkeyManager.PreviousKeyPressed            += new EventHandler(PreviousButton_Click);
            trackSelectionManager.OutDeviceResetRequest += new EventHandler(ResetDevice);
            trackSelectionManager.ToggleTrackRequest    += new EventHandler <TrackItem>(ToggleTrack);
            liveMidiManager                              = new LiveMidiManager(trackSelectionManager);
            hotkeyManager.LiveInputManager               = liveMidiManager;

            PlayButton.Enabled       = false;
            StopButton.Enabled       = false;
            PreviousButton.Enabled   = false;
            NextButton.Enabled       = false;
            MusicProgressBar.Enabled = false;


            _hookID = SetHook(_proc);
            OpenDialogs();
            this.StartPosition = FormStartPosition.Manual;
            Point coords = WindowPositionUtils.CheckPosition(ConfigManager.GetCoordsProperty(PropertyItem.MainWindowPos));

            Top  = coords.Y;
            Left = coords.X;

            // We may package this with a guild library for now.  Check for it and extract it, if so
            var files = Directory.GetFiles(Environment.CurrentDirectory, "BGML*.zip", SearchOption.TopDirectoryOnly);

            if (files.Length > 0)
            {
                Task.Run(() =>
                {
                    // extract to libraryPath + "\songs\"
                    try
                    {
                        ZipFile.ExtractToDirectory(files[0], libraryPath + @"\songs\");
                        //File.Delete(files[0]);
                    }
                    catch (Exception e) { } // Gross I know, but no reason to do anything
                });
            }
        }
Exemplo n.º 6
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...
 }