Example #1
0
        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();
        }
Example #2
0
        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");
        }
Example #3
0
        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();
        }
Example #4
0
        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();
        }
Example #5
0
 public PlayerPreviewWindow(PlayerPreviewViewModel playerPreviewViewModel)
 {
     DataContext = playerPreviewViewModel;
     InitializeComponent();
 }