public ClientViewModel(Views.Client window)
        {
            Window = window;
            if (!string.IsNullOrWhiteSpace(Properties.Settings.Default.IP))
            {
                IP = Properties.Settings.Default.IP;
            }
            else
            {
                IP = "";
            }

            KinectController = new KinectController(false);
            KinectController.PropertyChanged       += new EventHandler((sender, e) => { RaisePropertyChanged("KinectController"); });
            KinectController.NewRemoteFrameArrived += new EventHandler <NewRemoteFrameArgs>((sender, e) => { client.SendFrameToServer(e); });
            KinectController.InitKinect();

            Client = new Common.TCP.Client(Properties.Settings.Default.Port);
            Client.ClientPropertyChanged   += new EventHandler((sender, e) => { RaisePropertyChanged("Client"); });
            Client.ClientStartRequested    += new EventHandler((sender, e) => { KinectController.Start(); });
            Client.ClientStopRequested     += new EventHandler((sender, e) => { KinectController.Stop(); });
            Client.ClientPrepareRequested  += new EventHandler((sender, e) => { KinectController.Prepare(); });
            client.ClientForceFPSRequested += new EventHandler <bool>((sender, e) => { KinectController.ForceFPS(e); });
            Client.ClientCloseRequested    += new EventHandler((sender, e) => { CloseTimer.Start(); });

            CloseTimer.Tick += CloseTimer_Tick;
        }