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) }); } }
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); }