private void App_OnStartup(object sender, StartupEventArgs e) { var kinectSensorChooser = new KinectSensorChooser(); var kinectSensorManager = new KinectSensorManager(); var gesturesWithKeys = GesturesRegistry.CreateGesturesWithKeys(); var playerPreviewViewModel = new PlayerPreviewViewModel(kinectSensorChooser, kinectSensorManager); var mainWindowViewModel = new MainViewModel(kinectSensorChooser, playerPreviewViewModel, gesturesWithKeys, kinectSensorManager); mainWindow = new MainWindow(mainWindowViewModel); playerWindow = new PlayerPreviewWindow(playerPreviewViewModel) { Topmost = true, WindowStyle = WindowStyle.None, AllowsTransparency = true, ShowInTaskbar = false, }; imageWindow = new ImageWindow { Topmost = true, WindowStyle = WindowStyle.None, AllowsTransparency = true, }; mainWindowViewModel.GestureRecognized += (_, args) => { var imageSource = GetImageForGesture(args.GestureName); if (imageSource == null) { return; } imageWindow.ShowImage(imageSource); }; mainWindow.Closed += (_, __) => { SaveConfig(gesturesWithKeys, playerPreviewViewModel); imageWindow.Close(); playerWindow.Close(); }; mainWindow.Loaded += (_, __) => SetWindowsOnMainWindowScreen(); mainWindow.LocationChanged += (_, __) => SetWindowsOnMainWindowScreen(); LoadConfig(gesturesWithKeys, playerPreviewViewModel); mainWindow.Show(); playerWindow.Show(); }
private void LoadConfig(IEnumerable <GestureWithKeyViewModel> gesturesWithKeys, PlayerPreviewViewModel playerPreviewViewModel) { var config = ConfigurationManager.OpenExeConfiguration(Assembly.GetEntryAssembly().Location); foreach (var g in gesturesWithKeys) { g.Keys = GetSetting <string>(config, "Gesture_" + g.GestureName); } playerPreviewViewModel.Opacity = GetSetting <decimal>(config, "UserOpacity"); playerPreviewViewModel.Brightness = GetSetting <int>(config, "UserBrightness"); }
private void SaveConfig(IEnumerable <GestureWithKeyViewModel> gesturesWithKeys, PlayerPreviewViewModel playerPreviewViewModel) { var config = ConfigurationManager.OpenExeConfiguration(Assembly.GetEntryAssembly().Location); foreach (var g in gesturesWithKeys) { SetSetting(config, "Gesture_" + g.GestureName, g.Keys); } SetSetting(config, "UserOpacity", playerPreviewViewModel.Opacity); SetSetting(config, "UserBrightness", playerPreviewViewModel.Brightness); config.Save(); }
public MainViewModel(KinectSensorChooser kinectSensorChooser, PlayerPreviewViewModel playerPreviewViewModel, GestureWithKeyViewModel[] gestureWithKeyCollection, KinectSensorManager kinectSensorManager) { KinectSensorChooser = kinectSensorChooser; PlayerPreviewViewModel = playerPreviewViewModel; KinectSensorManager = kinectSensorManager; gestureControllers = new Dictionary <int, GestureController>(); GestureWithKeyCollection = gestureWithKeyCollection; gesturesDictionary = GestureWithKeyCollection.ToDictionary(g => g.GestureName, g => g); gestureControllersLock = new object(); processGestures = true; const double milisecondsBetweenGesturesMinimum = 500; frequentGestureTimer = new Timer(milisecondsBetweenGesturesMinimum); frequentGestureTimer.Elapsed += (_, __) => { lock (frequentGestureLock) processGestures = true; }; frequentGestureLock = new object(); }
public PlayerPreviewWindow(PlayerPreviewViewModel playerPreviewViewModel) { DataContext = playerPreviewViewModel; InitializeComponent(); }