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