private void AddFilter(SceneItemFilter filter)
 {
     if (_item.Model.Filters?.Filters != null)
     {
         _item.Model.Filters = new SceneItemFilters {
             Filters = _item.Model.Filters.Filters.Concat(new[] { filter }).ToArray()
         }
     }
     ;
     else
     {
         _item.Model.Filters = new SceneItemFilters {
             Filters = new[] { filter }
         }
     };
 }
 private void RemoveFilter(SceneItemFilter filter)
 {
     if (_item.Model.Filters?.Filters != null && filter != null)
     {
         var res = _item.Model.Filters.Filters.Where(s => s != filter).ToArray();
         if (res.Length == 0)
         {
             _item.Model.Filters = null;
         }
         else
         {
             _item.Model.Filters = new SceneItemFilters {
                 Filters = res
             }
         };
     }
 }
 private FilterActiveModel CreateActive(SceneItemFilter source)
 {
     if (source.Type == SceneItemFilterType.UserLut)
     {
         _model.CoreData.Root.Resources.TryGetValue(source.LutResourceId, out var lut);
         string name = lut?.Info.Name ?? "not found";
         return(new FilterActiveModel {
             Source = source, Name = name, SliderType = SliderType.ZeroPlus, Delete = () => RemoveFilter(source)
         });
     }
     else
     {
         var desc = _typeDescriptors.First(s => s.Type == source.Type);
         var name = desc?.Name ?? "???";
         return(new FilterActiveModel {
             Source = source, SliderType = desc.SliderType, Name = name, Delete = () => RemoveFilter(source)
         });
     }
 }
Пример #4
0
 private VideoFilterDescriptor RebuildFilter(SceneItemFilter s)
 {
     if (s.LutResourceId != null)
     {
         var data = _resourceService.GetResource(s.LutResourceId);
         if (data != null && _coreData.Root.Resources.TryGetValue(s.LutResourceId, out var res))
         {
             return(new VideoFilterDescriptor(ModelToStreamerTranslator.Translate(s.Type), s.Value, new FixedFrameData(s.LutResourceId, data, res.Info.Type == ResourceType.LutCube ? SingleFrameType.Cube : SingleFrameType.Png)));
         }
         else
         {
             return(null);
         }
     }
     else
     {
         return(new VideoFilterDescriptor(ModelToStreamerTranslator.Translate(s.Type), s.Value, null));
     }
 }
 public bool IsTheSame(SceneItemFilter s)
 {
     return(Source.Type == s.Type && Source.LutResourceId == s.LutResourceId);
 }