Example #1
0
        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());
        }
Example #2
0
        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;
            }
        }
Example #3
0
 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));
 }
Example #4
0
        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");
        }
Example #5
0
        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);
        }
Example #6
0
        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));
        }
Example #7
0
        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);
        }
Example #8
0
		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);
        }
Example #9
0
        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());
        }
Example #10
0
        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();
        }