private void MainWindow_Loaded(object sender, RoutedEventArgs e)
        {
            Core.SetWnd(this);
            CuelistCtrl.Init();
            FollowCtrl.Init();
            GoCtrl.Init();
            LogCtrl.Init();
            LogCtrl.Status("CueController 3.43b");
            MidiController.Init();
            MidiInputCtrl.Init();
            MidiOutputCtrl.Init();
            PbCtrl.Init();
            BeamerlistCtrl.Init();
            RecentFilesCtrl.Init();
            ReadWriteCtrl.Init();
            MatrixCtrl.Init();
            ScriptlistCtrl.Init();
            CopyCutCtrl.Init();
            OscCtrl.Init();
            OscListCtrl.Init();

            string[] args = Environment.GetCommandLineArgs();
            if (args.Length >= 2)
            {
                ReadWriteCtrl.Read(args[1]);
            }
        }
 private void MainWindow_PreviewKeyDown(object sender, System.Windows.Input.KeyEventArgs e)
 {
     if (e.Key == Key.Space && !CuelistCtrl.editMode)
     {
         GoCtrl.GoWithThresh();
     }
     else if (!CuelistCtrl.editMode && e.Key == Key.Up)
     {
         CuelistCtrl.SelectPrevCue();
         e.Handled = true;
     }
     else if (!CuelistCtrl.editMode && e.Key == Key.Down)
     {
         CuelistCtrl.SelectNextCue();
         e.Handled = true;
     }
 }
示例#3
0
        public static bool Write(bool overwrite)
        {
            string filename;

            if (overwrite && path != null)
            {
                filename = path;
            }
            else
            {
                Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog();
                dlg.Filter = "CC Files (*.cc)|*.cc";
                bool?result = dlg.ShowDialog();
                if (result == false)
                {
                    return(false);
                }
                filename = dlg.FileName;
            }

            string p = Path.ChangeExtension(filename, ".cc");

            using (DataSet dataSet = new DataSet("Cuelist"))
            {
                dataSet.Tables.Add(GetSettingsTable());
                dataSet.Tables.Add(CuelistCtrl.GetCueTable());
                dataSet.Tables.Add(ScriptlistCtrl.GetScriptTable());
                dataSet.Tables.Add(BeamerlistCtrl.GetBeamerTable());
                dataSet.Tables.Add(MidiController.GetMidiMapTable());

                try { dataSet.WriteXml(p); }
                catch (Exception e)
                {
                    LogCtrl.Error(e.Message);
                    DialogCtrl.Show(DialogType.ERROR, OptionType.OKCANCEL, "Error", "Couldn't write file!");
                    return(false);
                }
            }

            SetPath(p);
            CuelistCtrl.saved = true;
            RecentFilesCtrl.Add(p);
            LogCtrl.Status("Saved file: " + p);
            return(true);
        }
示例#4
0
        public static void Read(string filename)
        {
            if (!CuelistCtrl.saved)
            {
                bool?result = DialogCtrl.Show(DialogType.QUESTION, OptionType.YESNO, "Open Cuelist", "Do you want to save the current cuelist?");
                if (result == true)
                {
                    if (!Write(false))
                    {
                        return;
                    }
                }
            }

            if (filename == null)
            {
                Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();
                dlg.Filter = "CC Files (*.cc)|*.cc";
                bool?result = dlg.ShowDialog();

                if (result == true)
                {
                    filename = dlg.FileName;
                }
                else
                {
                    return;
                }
            }

            using (DataSet dataSet = new DataSet("Cuelist"))
            {
                try { dataSet.ReadXml(filename); }
                catch (Exception e)
                {
                    LogCtrl.Error(e.Message);
                    DialogCtrl.Show(DialogType.ERROR, OptionType.OKCANCEL, "Error", "Can't open file!");
                    return;
                }
                DataTableCollection collection = dataSet.Tables;

                ClearCuelist();

                for (int i = 0; i < collection.Count; i++)
                {
                    DataTable table = collection[i];
                    switch (table.TableName)
                    {
                    case "Settings":
                        SetSettingsFromTable(table);
                        break;

                    case "Script":
                        ScriptlistCtrl.LoadScripts(table);
                        break;

                    case "Beamer":
                        BeamerlistCtrl.LoadBeamers(table);
                        break;

                    case "MidiMap":
                        MidiController.LoadMidiMap(table);
                        break;

                    default:
                        CuelistCtrl.SetCuesFromTable(table);
                        break;
                    }
                }
            }

            CuelistCtrl.saved = true;
            SetPath(filename);
            CuelistCtrl.DisableEditMode();
            RecentFilesCtrl.Add(filename);
            LogCtrl.Status("Open file: " + filename);
        }
示例#5
0
        private static void ExecuteCcCmd(string cmd)
        {
            Application.Current.Dispatcher.Invoke(new Action(() =>
            {
                switch (cmd)
                {
                case "Go":
                    GoCtrl.GoWithThresh();
                    break;

                case "Back":
                    GoCtrl.GoBack();
                    break;

                case "Up":
                    CuelistCtrl.SelectPrevCue();
                    break;

                case "Down":
                    CuelistCtrl.SelectNextCue();
                    break;

                case "Mute All":
                    MidiInputCtrl.NoteMute(true);
                    MidiInputCtrl.MscMute(true);
                    break;

                case "Unmute All":
                    MidiInputCtrl.NoteMute(false);
                    MidiInputCtrl.MscMute(false);
                    break;

                case "Mute Note":
                    MidiInputCtrl.NoteMute(true);
                    break;

                case "Unmute Note":
                    MidiInputCtrl.NoteMute(false);
                    break;

                case "Mute MSC":
                    MidiInputCtrl.MscMute(true);
                    break;

                case "Unmute MSC":
                    MidiInputCtrl.MscMute(false);
                    break;

                default:
                    string[] buff = cmd.Split(' ');
                    if (buff.Length == 2 && buff[0] == "Script")
                    {
                        int nr;
                        if (int.TryParse(buff[1], out nr))
                        {
                            ScriptlistCtrl.ExecuteScript(nr);
                        }
                    }
                    break;
                }
            }));
        }
示例#6
0
        private static void InputDevice_NoteOn(NoteOnMessage msg)
        {
            Application.Current.Dispatcher.Invoke(new Action(() =>
            {
                if (msg.Velocity > 0)
                {
                    int pitch     = (int)msg.Pitch;
                    MidiNote note = MidiNote.getMidiNote(pitch);

                    if (note != null)
                    {
                        if (!noteMute)
                        {
                            if (pitch < 108)
                            {
                                for (int i = 0; i < CuelistCtrl.cues.Count; ++i)
                                {
                                    Cue cue = CuelistCtrl.cues[i];
                                    if (cue.trigger != null && cue.trigger.type == TriggerType.NOTE && cue.trigger.note.pitch == pitch)
                                    {
                                        if (Core.win.saveTriggerCheckbox.IsChecked && Core.win.cueTable.SelectedIndex != i)
                                        {
                                            LogCtrl.Error("In: " + note.note + " (" + note.pitch + ")");
                                        }
                                        else
                                        {
                                            LogCtrl.Success("In: " + note.note + " (" + note.pitch + ")");
                                            GoCtrl.Go(i);
                                        }
                                        return;
                                    }
                                }
                                LogCtrl.Status("In: " + note.note + " (" + note.pitch + ")");
                            }
                            else
                            {
                                LogCtrl.Status("In: " + note.note + " (" + note.pitch + ")");
                                if (pitch == 108)
                                {
                                    GoCtrl.GoNextCue();
                                }
                                else if (pitch == 109)
                                {
                                    GoCtrl.GoBack();
                                }
                                else if (pitch == 110)
                                {
                                    CuelistCtrl.SelectPrevCue();
                                }
                                else if (pitch == 111)
                                {
                                    CuelistCtrl.SelectNextCue();
                                }
                                else if (pitch >= 112 && pitch <= 121)
                                {
                                    ScriptlistCtrl.ExecuteScript(note.pitch - 111);
                                }
                            }
                        }
                        else
                        {
                            LogCtrl.Warning("In: " + note.note + " (" + note.pitch + ")");
                        }
                    }
                }
            }));
        }