// to indicate buttonUp, set buttonDown to be false
        private void ReturnStatusUpdate(Button button, bool buttonDown)
        {
            if (ButtonStateChanged == null) return;

            ButtonStateChangedArgs args = new ButtonStateChangedArgs(button, buttonDown);
            ButtonStateChanged(this, args);
        }
        void OnButtonStateChanged(object sender, ButtonStateChangedArgs e)
        {
            if (e.buttonDown)
            {
                if (WiimoteAddin.Win32Api.isPowerPointSlideShowActive())
                {
                    if (e.button == Button.Up)
                    {
                        App.ui.DoSendKey("{UP}");
                    }
                    if (e.button == Button.Down)
                    {
                        App.ui.DoSendKey("{DOWN}");
                    }
                    if (e.button == Button.Left)
                    {
                        App.ui.DoSendKey("{LEFT}");
                    }
                    if (e.button == Button.Right)
                    {
                        App.ui.DoSendKey("{RIGHT}");
                    }
                    if (e.button == Button.A)
                    {
                        App.ui.DoSendKey("{ENTER}");
                    }
                    if (e.button == Button.B)
                    {
                        App.ui.DoSendKey("{BKSP}");
                    }
                    if (e.button == Button.One)
                    {
                        pptController.blankBlack();
                    }
                    if (e.button == Button.Two)
                    {
                        pptController.blankWhite();
                    }
                    if (e.button == Button.Plus)
                    {
                        pptController.zoomIn();
                    }
                    if (e.button == Button.Minus)
                    {
                        pptController.zoomOut();
                    }
                    if (e.button == Button.Home)
                    {
                        App.ui.DoSendKey("{ESC}");
                    }
                } else {

                    if (e.button == Button.Right || e.button == Button.Down || e.button == Button.A)
                    {
                        pptController.NextSlide();
                    }
                    if (e.button == Button.Left || e.button == Button.Up || e.button == Button.B)
                    {
                        pptController.PrevSlide();
                    }
                    if (e.button == Button.One)
                    {
                        pptController.blankBlack();
                    }
                    if (e.button == Button.Two)
                    {
                        pptController.blankWhite();
                    }
                    if (e.button == Button.Plus)
                    {
                        pptController.zoomIn();
                    }
                    if (e.button == Button.Minus)
                    {
                        pptController.zoomOut();
                    }
                    if (e.button == Button.Home)
                    {
                        pptController.slideshowStart();
                    }
                }
            }
        }