Esempio n. 1
0
        //... commented out because we have created menu shortcuts
        //public override bool TriggerByKeyPress(KeyEventArgs e)
        //{
        //    return (e.Control && e.Shift && e.KeyCode == Keys.E);
        //}

        public override void Run()
        {
            if (String.IsNullOrEmpty(Context.CurFileName))
            {
                Context.iiii("Context.CurFileName is null!");
                return;
            }
            var nBreakups    = Context.Proj.RenderBreakupsCount();
            var fileOutVideo = Context.CurFileName + Settings.Default.ExportVideoExtension;

            if (nBreakups == 1)
            {
                RenderToAvi(Context.CurFileName, Context.Proj, fileOutVideo, Settings.Default.mencoderArguments);
            }
            else
            {
                var subProjs     = Context.Proj.RenderBreakupsSplitIntoSubProjects();
                var aviFilenames = new string[subProjs.Length];
                for (int i = 0; i < subProjs.Length; i++)
                {
                    aviFilenames[i] = GetSegmentVideoSegmentOutputPath(i);
                    if (i == 0)
                    {
                        OpUtils.OpenWinExplorerAndSelectNothing(Path.GetDirectoryName(aviFilenames[i]));
                    }
                    RenderToAvi(Context.CurFileName, subProjs[i], aviFilenames[i], Settings.Default.mencoderArguments);
                }
            }
        }
Esempio n. 2
0
 private void whereIsTheCurrentFileToolStripMenuItem1_Click(object sender, EventArgs e)
 {
     if (logic.CurMediaFileName == null)
     {
         return;
     }
     OpUtils.OpenWinExplorerAndSelectThisFile(logic.CurMediaFileName);
     //var folder = Path.GetDirectoryName(logic.CurMediaFileName);
     //Process.Start(folder);
 }
Esempio n. 3
0
        private void whereIsTheLastAVSToolStripMenuItem_Click(object sender, EventArgs e)
        {
            var tmpAvs = VidkaIO.GetGeneratedAvsTmpFilename();

            if (!File.Exists(tmpAvs))
            {
                MessageBox.Show("File does nota exista", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                return;
            }
            OpUtils.OpenWinExplorerAndSelectThisFile(tmpAvs);
        }
Esempio n. 4
0
        private void whereIsTheCurrentFileToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (logic.CurFileName == null)
            {
                MessageBox.Show("Are you aware you haven't even saved this project yet?", "Too much vodka?", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            OpUtils.OpenWinExplorerAndSelectThisFile(logic.CurFileName);
            //var folder = Path.GetDirectoryName(logic.CurFileName);
            //Process.Start(folder);
        }
Esempio n. 5
0
        //... commented out because we have created menu shortcuts
        //public override bool TriggerByKeyPress(KeyEventArgs e)
        //{
        //    return (e.Control && e.Shift && e.KeyCode == Keys.E);
        //}

        public override void Run()
        {
            if (String.IsNullOrEmpty(Context.CurFileName))
            {
                Context.iiii("Context.CurFileName is null!");
                return;
            }
            var nBreakups    = Context.Proj.RenderBreakupsCount();
            var fileOutVideo = Context.CurFileName + Settings.Default.ExportVideoExtension;

            if (nBreakups <= 1)
            {
                RenderToAvi(Context.CurFileName, Context.Proj, fileOutVideo, Settings.Default.mencoderArguments);
            }
            else
            {
                rawDumpFolder = Context.CheckRawDumpFolderIsOkAndGiveItToMe();
                var subProjs     = Context.Proj.RenderBreakupsSplitIntoSubProjects();
                var aviFilenames = new string[subProjs.Length];
                for (int i = 0; i < subProjs.Length; i++)
                {
                    aviFilenames[i] = GetRawVideoSegmentOutputPath(i);
                }
                UtilsOp.OpenWinExplorerAndSelectNothing(Path.GetDirectoryName(aviFilenames[0]));
                var anyExist = aviFilenames.FirstOrDefault(x => File.Exists(x));
                if (anyExist != null)
                {
                    if (!Context.DialogConfirm("Files exist! Proceed?", "Some segment files here exist, e.g. " + Path.GetFileName(anyExist) + @".
They will not be overwritten, because I assume you want to save long rendering time.
(If you wish to rerender those files you must delete them manually)
So, anyways, proceed, do I?"))
                    {
                        return;
                    }
                }
                for (int i = 0; i < subProjs.Length; i++)
                {
                    if (!File.Exists(aviFilenames[i]))
                    {
                        RenderToAvi(Context.CurFileName, subProjs[i], aviFilenames[i], Settings.Default.mencoderArgumentsRaw);
                    }
                }
                var vdubScript = GetVdubScriptOutputPathForConcatRawSegments();
                VidkaIO.MakeVDubScriptForOpenTheseVideosAndStartRender(aviFilenames, fileOutVideo, vdubScript);
                OpUtils.OpenVirtualDubAndRunScript(vdubScript);
            }
        }
Esempio n. 6
0
        public OperatorParameterView(Operator op)
        {
            var watch = new Stopwatch();

            watch.Start();

            InitializeComponent();
            _operator = op;

            _exampleMetaOp            = OpUtils.FindExampleOperator(_operator.Definition);
            XExampleButton.IsEnabled  = _exampleMetaOp != null;
            XExampleButton.Foreground = _exampleMetaOp != null ? Brushes.White : Brushes.Black;

            var binding = new Binding("Namespace");

            binding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
            binding.Source = op.Definition;
            binding.Path   = new PropertyPath("Namespace");
            NamespaceTextBox.SetBinding(TextBox.TextProperty, binding);

            binding = new Binding("Type");
            binding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
            binding.Source = op.Definition;
            binding.Path   = new PropertyPath("Name");
            TypeTextBox.SetBinding(TextBox.TextProperty, binding);

            binding = new Binding("OperatorName")
            {
                Mode = BindingMode.OneWay
            };
            binding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
            binding.Source = op;
            binding.Path   = new PropertyPath("Name");
            XNameTextBox.XTextEdit.SetBinding(TextBox.TextProperty, binding);
            XNameTextBox.EditingStartedEvent += () =>
            {
                _opStateEntry = new UpdateOperatorPropertiesCommand.Entry(op);
                _updateOperatorPropertiesCommand = new UpdateOperatorPropertiesCommand(op, _opStateEntry);
            };
            XNameTextBox.EditingUpdatedEvent += (o, ev) =>
            {
                _updateOperatorPropertiesCommand.ChangeEntries[0].Name = XNameTextBox.textEditButton.XTextEdit.Text;
                _updateOperatorPropertiesCommand.Do();
            };
            XNameTextBox.EditingCompletedEvent += () =>
            {
                App.Current.UndoRedoStack.Add(_updateOperatorPropertiesCommand);
                _updateOperatorPropertiesCommand = new UpdateOperatorPropertiesCommand(op, _opStateEntry);
            };
            XParameterStackPanel = new StackPanel();
            XParameterStackPanel.Children.Clear();

            // find groups
            var inputGroups = from input in op.Inputs
                              group input by input.Name.Split(new[] { '.' })[0] into g
                              select new { Name = g.Key, Inputs = g.ToArray() };

            foreach (var group in inputGroups)
            {
                var singleParameterRow = new OperatorParameterViewRow(group.Inputs.ToList());
                singleParameterRow.XParameterNameButton.Content = group.Name;

                singleParameterRow.XInputControls.Children.Add(new GroupInputControl(group.Inputs.ToList())); // This is slooww (half of operator selection time)

                // Single Parameter
                if (group.Inputs.Length == 1)
                {
                    XParameterStackPanel.Children.Add(singleParameterRow);

                    var input = group.Inputs[0];
                    if (input.Type == FunctionType.Float)
                    {
                        if (!input.IsMultiInput)
                        {
                            var metaInput  = input.Parent.GetMetaInput(input);
                            var enumValues = metaInput.EnumValues;

                            // ENUM - Parameter
                            if (enumValues.Count > 0)
                            {
                                var newEnumControl = new EnumParameterValue(input);
                                singleParameterRow.ResetToDefaultEvent += newEnumControl.ResetToDefaultHandler;
                                singleParameterRow.XParameterValue.Children.Add(newEnumControl);
                            }

                            // Single Float Parameter
                            else
                            {
                                FloatParameterControl newFloatControl = new FloatParameterControl(input);
                                singleParameterRow.XParameterValue.Children.Add(newFloatControl);
                                singleParameterRow.ResetToDefaultEvent     += newFloatControl.ParameterRow_ResetSingleParameterHandler;
                                singleParameterRow.StartManipulationEvent  += newFloatControl.ParameterRow_StartManipulationHandler;
                                singleParameterRow.UpdateManipulationEvent += newFloatControl.ParameterRow_UpdateManipulaitonHandler;
                                singleParameterRow.EndManipulationEvent    += newFloatControl.ParameterRow_EndManipulationHandler;
                            }
                        }
                    }
                    else if (input.Type == FunctionType.Text)
                    {
                        var paramEdit = new TextParameterValue(input);
                        if (input.Name.EndsWith("Text"))
                        {
                            singleParameterRow.XAdditionalContent.Child = paramEdit;
                            singleParameterRow.ResetToDefaultEvent     += paramEdit.ResetToDefaultHandler;
                        }
                        else
                        {
                            singleParameterRow.XParameterValue.Children.Add(paramEdit);
                        }
                    }
                    else if (input.Type == FunctionType.Scene)
                    {
                        var paramEdit = new SceneParameterValue(input);
                        singleParameterRow.XParameterValue.Children.Add(paramEdit);
                    }
                    else if (input.Type == FunctionType.Image)
                    {
                        var paramEdit = new ImageParameterValue(input);
                        singleParameterRow.XParameterValue.Children.Add(paramEdit);
                    }
                    else if (input.Type == FunctionType.Dynamic)
                    {
                        var paramEdit = new DynamicParameterValue(input);
                        singleParameterRow.XParameterValue.Children.Add(paramEdit);
                    }
                    else if (input.Type == FunctionType.Generic)
                    {
                        var paramEdit = new GenericParameterValue(input);
                        singleParameterRow.XParameterValue.Children.Add(paramEdit);
                    }
                    else if (input.Type == FunctionType.Mesh)
                    {
                        var paramEdit = new MeshParameterValue(input);
                        singleParameterRow.XParameterValue.Children.Add(paramEdit);
                    }
                }

                // Float Parameter Groups
                else
                {
                    if (group.Inputs.Length == 4 &&
                        group.Inputs[0].Name.EndsWith(".R") &&
                        group.Inputs[1].Name.EndsWith(".G") &&
                        group.Inputs[2].Name.EndsWith(".B") &&
                        group.Inputs[3].Name.EndsWith(".A"))
                    {
                        var rgbaControl = new RgbaParameterValue(group.Inputs);
                        singleParameterRow.ResetToDefaultEvent     += rgbaControl.ResetToDefaultHandler;
                        singleParameterRow.StartManipulationEvent  += rgbaControl.StartManipulationHandler;
                        singleParameterRow.UpdateManipulationEvent += rgbaControl.UpdateManipulationHandler;
                        singleParameterRow.EndManipulationEvent    += rgbaControl.EndManipulationHandler;
                        singleParameterRow.XParameterValue.Children.Add(rgbaControl);
                    }
                    else
                    {
                        var vectorControl = new VectorNParameterValue(group.Inputs);

                        singleParameterRow.StartManipulationEvent  += vectorControl.StartManipulationHandler;
                        singleParameterRow.UpdateManipulationEvent += vectorControl.UpdateManipulationHandler;
                        singleParameterRow.EndManipulationEvent    += vectorControl.EndManipulationHandler;
                        singleParameterRow.ResetToDefaultEvent     += vectorControl.ResetToDefaultHandler;
                        singleParameterRow.XParameterValue.Children.Add(vectorControl);
                    }

                    var parameterGroupComponent = new ParameterGroup(group.Inputs);
                    parameterGroupComponent.XParameterGroupPanel.Children.Add(singleParameterRow);
                    XParameterStackPanel.Children.Add(parameterGroupComponent);
                }
            }

            var descriptionBox = new ICSharpCode.AvalonEdit.Editing.TextArea();

            descriptionBox.ToolTip    = "Operator description. Click to edit";
            descriptionBox.Foreground = Brushes.Gray;
            descriptionBox.Margin     = new Thickness(4, 6, 4, 4);
            descriptionBox.MinHeight  = 40;
            descriptionBox.FontSize   = 13;

            _descriptionDoc              = new TextDocument(op.Definition.Description);
            _descriptionDoc.TextChanged += HandleDescriptionChange;
            descriptionBox.Document      = _descriptionDoc;
            XParameterStackPanel.Children.Add(descriptionBox);

            XParameterScrollViewer.Content = XParameterStackPanel;
            App.Current.OperatorPresetManager.FindAndShowPresetsForSelectedOp();

            watch.Stop();
        }