Captura.MainViewModel.GetImageProvider C# (CSharp) Method

GetImageProvider() private method

private GetImageProvider ( ) : IImageProvider
return IImageProvider
        IImageProvider GetImageProvider()
        {
            var mouseKeyHook = new MouseKeyHook(OthersViewModel.MouseClicks, OthersViewModel.KeyStrokes);

            switch (VideoViewModel.SelectedVideoSourceKind)
            {
                case VideoSourceKind.Window:
                    var src = VideoViewModel.SelectedVideoSource as WindowVSLI;

                    if (src.Window == RegionSelector.Instance.Window
                        && OthersViewModel.StaticRegion)
                    {
                        return new StaticRegionProvider(RegionSelector.Instance,
                            _cursor,
                            mouseKeyHook);
                    }

                    Func<WColor, Color> convertColor = C => Color.FromArgb(C.A, C.R, C.G, C.B);

                    return new WindowProvider(() => (VideoViewModel.SelectedVideoSource as WindowVSLI).Window,
                            convertColor(VideoViewModel.BackgroundColor),
                            _cursor,
                            mouseKeyHook);

                case VideoSourceKind.Screen:
                    return new ScreenProvider((VideoViewModel.SelectedVideoSource as ScreenVSLI).Screen,
                        _cursor,
                        mouseKeyHook);

                default:
                    return null;
            }
        }