Example #1
0
        /// <summary>
        /// Renders an output into a user-chosen file.
        /// </summary>
        public IEnumerable <IResult> SaveNodeOutput(Node.Output output)
        {
            var file = new ChooseFileResult {
                Filter = "YUV-Video|*.yuv", OpenReadOnly = false
            };

            yield return(file);

            IoC.Get <IWindowManager>().ShowDialog(new SaveNodeOutputViewModel(output, file.Stream(), Parent.Parent.Model));
        }
Example #2
0
        public Node.Input AddInput(Node.Output source)
        {
            var input = new Node.Input {
                Source = source
            };

            Model.Inputs.Add(input);
            inputs.Add(new InOutputViewModel(input, this));
            NotifyOfPropertyChange(() => Inputs);
            return(input);
        }
Example #3
0
        public SaveNodeOutputViewModel(Node.Output output, Stream stream, PipelineState model)
        {
            this.model = model;
            IEnumerable <Frame> frames = model.Driver.RenderTicks(new[] { output.Node }, 0, TickCount, cts.Token)
                                         .Do(_ => { CurrentTick++; NotifyOfPropertyChange(() => CurrentTick); })
                                         .Select(dic => dic[output])
                                         .ToEnumerable();

            Task.Factory.StartNew(() => {
                using (stream)
                    YuvEncoder.Encode(stream, frames);
                TryClose();
            });
        }
Example #4
0
 /// <summary>
 /// Opens a new output window for a node output.
 /// </summary>
 public void ShowNodeOutput(Node.Output output)
 {
     Parent.Parent.OpenWindow(new VideoOutputViewModel(output));
 }
Example #5
0
 public OutputWindowViewModel(Node nodeModel, Node.Output outputModel)
 {
     NodeModel   = nodeModel;
     OutputModel = outputModel;
 }
Example #6
0
 InOutputViewModel GetOutputViewModel(Node.Output output)
 {
     return(output == null ? null : Nodes.SelectMany(n => n.Outputs).Single(o => o.Model == output));
 }
Example #7
0
 /// <summary>
 /// Creates a new VideoOutputViewModel.
 /// </summary>
 public VideoOutputViewModel(Node.Output output)
     : base(output.Node, output)
 {
 }