public FilterSpecs[] GetFiltersSpec(VideoFilters filters) { List <FilterSpecs> result = new List <FilterSpecs>(); if (filters != null) { if (filters.FlipH) { result.Add(new FilterSpecs("hflip")); } if (filters.Items != null) { foreach (var filter in filters.Items) { var filterSpec = _all.FirstOrDefault(s => s.Name == filter.Name)?.Spec(result, filter); if (filterSpec != null) { result.Add(filterSpec); } } } } return(result.OrderBy(s => s, new FilterSpecComparer()).ToArray()); }
private void OnFiltersChangedFromModel() { var videoInputId = _coreData.Settings.SelectedVideo; if (videoInputId == null || !_coreData.Root.VideoInputs.TryGetValue(videoInputId, out var videoInput)) { FiltersEnabled.Value = false; AnyFilterIsSet.Value = false; } else { FiltersEnabled.Value = true; var model = videoInput.Filters; if (!Equals(model, GetFiltersModel())) { if (model == null) { model = new VideoFilters(); } FlipH.SilentValue = model.FlipH; _all.ForEach(s => { s.IsOn.SilentValue = false; s.Slider.SilentValue = 0; }); if (model.Items == null) { _noFilter.IsOn.SilentValue = true; } else { model.Items.ToList().ForEach(s => { var target = _all.FirstOrDefault(f => s.Name == f.Name); if (target != null) { target.IsOn.SilentValue = true; target.Slider.SilentValue = s.Value; } else { Log.Warning($"Filter {s.Name} not found"); } }); } } AnyFilterIsSet.Value = !_noFilter.IsOn.Value; } }
public void VideoFiltersTest() { // get test Assert.That(VideoFilters.Mp4.ToString(), Is.EqualTo("mp4")); Assert.That(VideoFilters.Youtube.ToString(), Is.EqualTo("youtube")); Assert.That(VideoFilters.Vimeo.ToString(), Is.EqualTo("vimeo")); Assert.That(VideoFilters.Short.ToString(), Is.EqualTo("short")); Assert.That(VideoFilters.Long.ToString(), Is.EqualTo("long")); Assert.That(VideoFilters.All.ToString(), Is.EqualTo("long,mp4,short,vimeo,youtube")); // parse test Assert.That(VideoFilters.FromJson("mp4"), Is.EqualTo(VideoFilters.Mp4)); Assert.That(VideoFilters.FromJson("youtube"), Is.EqualTo(VideoFilters.Youtube)); Assert.That(VideoFilters.FromJson("vimeo"), Is.EqualTo(VideoFilters.Vimeo)); Assert.That(VideoFilters.FromJson("short"), Is.EqualTo(VideoFilters.Short)); Assert.That(VideoFilters.FromJson("long"), Is.EqualTo(VideoFilters.Long)); Assert.That(VideoFilters.FromJson("long,mp4,short,vimeo,youtube"), Is.EqualTo(VideoFilters.All)); }
public void ToString_EveryItems() { VideoFilters mp4 = VideoFilters.Mp4; VideoFilters youtube = VideoFilters.Youtube; var vimeo = VideoFilters.Vimeo; var _short = VideoFilters.Short; var _long = VideoFilters.Long; var all = VideoFilters.All; var shortLong = _short | _long; mp4.ToString().ShouldEqual("mp4"); youtube.ToString().ShouldEqual("youtube"); vimeo.ToString().ShouldEqual("vimeo"); _long.ToString().ShouldEqual("long"); _short.ToString().ShouldEqual("short"); all.ToString().ShouldEqual("mp4,youtube,vimeo,short,long"); shortLong.ToString().ShouldEqual("short,long"); }
private VideoFilters GetFiltersModel() { if (!FlipH.Value && _noFilter.IsOn.Value) { return(null); } var result = new VideoFilters(); result.FlipH = FlipH.Value; if (!_noFilter.IsOn.Value) { result.Items = _all.Where(s => s.IsOn.Value).Select(s => new VideoFilter { Name = s.Name, Value = s.Slider.Value }).ToArray(); } return(result); }
public void VideoFiltersTest() { // get test Assert.That(actual: VideoFilters.Mp4.ToString(), expression: Is.EqualTo(expected: "mp4")); Assert.That(actual: VideoFilters.Youtube.ToString(), expression: Is.EqualTo(expected: "youtube")); Assert.That(actual: VideoFilters.Vimeo.ToString(), expression: Is.EqualTo(expected: "vimeo")); Assert.That(actual: VideoFilters.Short.ToString(), expression: Is.EqualTo(expected: "short")); Assert.That(actual: VideoFilters.Long.ToString(), expression: Is.EqualTo(expected: "long")); Assert.That(actual: VideoFilters.All.ToString(), expression: Is.EqualTo(expected: "long,mp4,short,vimeo,youtube")); // parse test Assert.That(actual: VideoFilters.FromJsonString(val: "mp4"), expression: Is.EqualTo(expected: VideoFilters.Mp4)); Assert.That(actual: VideoFilters.FromJsonString(val: "youtube"), expression: Is.EqualTo(expected: VideoFilters.Youtube)); Assert.That(actual: VideoFilters.FromJsonString(val: "vimeo"), expression: Is.EqualTo(expected: VideoFilters.Vimeo)); Assert.That(actual: VideoFilters.FromJsonString(val: "short"), expression: Is.EqualTo(expected: VideoFilters.Short)); Assert.That(actual: VideoFilters.FromJsonString(val: "long"), expression: Is.EqualTo(expected: VideoFilters.Long)); Assert.That(actual: VideoFilters.FromJsonString(val: "mp4,youtube,vimeo,short,long") , expression: Is.EqualTo(expected: VideoFilters.All)); }
public ReadOnlyCollection<Video> Search(string query, VideoSort sort, bool isHd = false, bool isAdult = false, VideoFilters filters = null, bool isSearchOwn = false, int? count = null, int? offset = null) { VkErrors.ThrowIfNullOrEmpty(() => query); VkErrors.ThrowIfNumberIsNegative(() => count); VkErrors.ThrowIfNumberIsNegative(() => offset); var parameters = new VkParameters { {"q", query}, {"sort", sort}, {"hd", isHd}, {"adult", isAdult}, {"filters", filters}, {"search_own", isSearchOwn}, {"offset", offset}, {"count", count} }; VkResponseArray response = _vk.Call("video.search", parameters); return response.ToReadOnlyCollectionOf<Video>(x => x); }
public ReadOnlyCollection<Video> Search(string query, VideoSort sort, bool isHd = false, bool isAdult = false, VideoFilters filters = null, bool isSearchOwn = false, int? count = null, int? offset = null) { var parameters = new VideoSearchParams { Query = query, Sort = sort, Hd = isHd, Adult = isAdult, Filters = filters, SearchOwn = isSearchOwn, Offset = offset, Count = count }; return Search(parameters); }
public ReadOnlyCollection <Video> Search(string query, VideoSort sort, bool isHd = false, bool isAdult = false, VideoFilters filters = null, bool isSearchOwn = false, int?count = null, int?offset = null) { var parameters = new VideoSearchParams { Query = query, Sort = sort, Hd = isHd, Adult = isAdult, Filters = filters, SearchOwn = isSearchOwn, Offset = offset, Count = count }; return(Search(parameters).ToReadOnlyCollection()); }
public ReadOnlyCollection <Video> Search(string query, VideoSort sort, bool isHd = false, bool isAdult = false, VideoFilters filters = null, bool isSearchOwn = false, int?count = null, int?offset = null) { VkErrors.ThrowIfNullOrEmpty(() => query); VkErrors.ThrowIfNumberIsNegative(() => count); VkErrors.ThrowIfNumberIsNegative(() => offset); var parameters = new VkParameters { { "q", query }, { "sort", sort }, { "hd", isHd }, { "adult", isAdult }, { "filters", filters }, { "search_own", isSearchOwn }, { "offset", offset }, { "count", count } }; VkResponseArray response = _vk.Call("video.search", parameters); return(response.ToReadOnlyCollectionOf <Video>(x => x)); }
public ReadOnlyCollection<Video> SearchAll(string query, VideoSort sort, bool isHd = false, bool isAdult = false, VideoFilters filters = null, bool isSearchOwn = false) { const int count = 200; var i = 0; var result = new List<Video>(); do { var currentItems = _video.Search(query, sort, isHd, isAdult, filters, isSearchOwn, count, i * count); if (currentItems != null) result.AddRange(currentItems); } while ((++i * count < (_vk.CountFromLastResponse ?? 0)) && (i * count < 1000)); return result.ToReadOnlyCollection(); }