/// <summary>Subscribes the detector to all input devices</summary> private void subscribeAllEvents() { // Subscribe to all chat pads for (PlayerIndex index = PlayerIndex.One; index <= PlayerIndex.Four; ++index) { var reporter = new KeyReporter(this.detectedDelegate, (ExtendedPlayerIndex)index); var method = new KeyDelegate(reporter.KeyPressed); this.inputService.GetKeyboard(index).KeyPressed += method; this.subscribedKeyReporters.Push(method); } // Subscribe to the main PC keyboard { var reporter = new KeyReporter(this.detectedDelegate, null); var method = new KeyDelegate(reporter.KeyPressed); this.inputService.GetKeyboard().KeyPressed += method; this.subscribedKeyReporters.Push(method); } // Subscribe to the main PC mouse { var reporter = new MouseButtonReporter(this.detectedDelegate, null); var method = new MouseButtonDelegate(reporter.MouseButtonPressed); this.inputService.GetMouse().MouseButtonPressed += method; this.subscribedMouseReporters.Push(method); } // Subscribe to all game pads for ( ExtendedPlayerIndex index = ExtendedPlayerIndex.One; index <= ExtendedPlayerIndex.Eight; ++index ) { var reporter = new GamePadButtonReporter(this.detectedDelegate, index); var method = new GamePadButtonDelegate(reporter.ButtonPressed); this.inputService.GetGamePad(index).ButtonPressed += method; this.subscribedGamePadReporters.Push(method); } }