public STAApplicationContext() { SetupServer(); if (!featureToggles[isDeviceMockedKey]) { var touchOverlay = (new TouchOverlay()).AddToDisposeBag(_disposeBag); _deviceController = (IDeviceController)touchOverlay; _touchInputProvider = (IInputProvider)touchOverlay; } else { var deviceMock = (new DeviceMock()).AddToDisposeBag(_disposeBag); _deviceController = (IDeviceController)deviceMock; _touchInputProvider = (IInputProvider)deviceMock; } if (featureToggles[inputLoggingKey]) { _inputSerializer = (new InputSerializer(_touchInputProvider)) .AddToDisposeBag(_disposeBag); _inputLogger = (new InputLogger(_touchInputProvider)) .AddToDisposeBag(_disposeBag); } _tuioInputProvider = (new TuioObjectController(_touchInputProvider, _tangibleMarkerController)) .AddToDisposeBag(_disposeBag); _tuioServer = (new TuioServer(_tuioInputProvider)) .AddToDisposeBag(_disposeBag); _menuViewController = (new MenuViewController(_deviceController)) .AddToDisposeBag(_disposeBag); _deviceController.Init(); _deviceController.Start(); }