@@ -559,12 +559,39 @@ void XInputController::reset() {
559559 autoSendOption = true ;
560560}
561561
562+ static void fillBuffer (char * buff, const char fill) {
563+ uint8_t i = 0 ;
564+ while (true ) {
565+ if (buff[i] == 0 ) break ;
566+ buff[i] = fill;
567+ i++;
568+ }
569+ }
570+
562571void XInputController::printDebug (Print &output) const {
563572 const char fillCharacter = ' _' ;
573+ char buffer[34 ];
574+
575+ output.print (" XInput Debug: " );
576+
577+ // Left Side Controls
578+ char leftBumper[3 ] = " LB" ;
579+ char leftJoyBtn[3 ] = " L3" ;
564580
565- char buffer[80 ];
581+ if (!getButton (BUTTON_LB)) fillBuffer (leftBumper, fillCharacter);
582+ if (!getButton (BUTTON_L3)) fillBuffer (leftJoyBtn, fillCharacter);
583+
584+ sprintf (buffer,
585+ " LT: %3u %s L:(%6d, %6d, %s)" ,
566586
567- // Buttons
587+ getTrigger (TRIGGER_LEFT),
588+ leftBumper,
589+ getJoystickX (JOY_LEFT), getJoystickY (JOY_LEFT),
590+ leftJoyBtn
591+ );
592+ output.print (buffer);
593+
594+ // Face Buttons
568595 const char dpadLPrint = getButton (DPAD_LEFT) ? ' <' : fillCharacter;
569596 const char dpadUPrint = getButton (DPAD_UP) ? ' ^' : fillCharacter;
570597 const char dpadDPrint = getButton (DPAD_DOWN) ? ' v' : fillCharacter;
@@ -580,35 +607,27 @@ void XInputController::printDebug(Print &output) const {
580607
581608 const char logoPrint = getButton (BUTTON_LOGO) ? ' X' : fillCharacter;
582609
583- // Bumpers
584- char leftBumper[3 ] = " LB" ;
585- char rightBumper[3 ] = " RB" ;
586-
587- if (!getButton (BUTTON_LB)) {
588- leftBumper[0 ] = fillCharacter;
589- leftBumper[1 ] = fillCharacter;
590- }
591- if (!getButton (BUTTON_RB)) {
592- rightBumper[0 ] = fillCharacter;
593- rightBumper[1 ] = fillCharacter;
594- }
595-
596- output.print (" XInput Debug: " );
597610 sprintf (buffer,
598- " LT: %3u %s L:(%6d, %6d) %c%c%c%c | %c%c%c | %c%c%c%c R:(%6d, %6d) %s RT: %3u" ,
599-
600- // Left side controls
601- getTrigger (TRIGGER_LEFT),
602- leftBumper,
603- getJoystickX (JOY_LEFT), getJoystickY (JOY_LEFT),
611+ " %c%c%c%c | %c%c%c | %c%c%c%c " ,
604612
605- // Buttons
606613 dpadLPrint, dpadUPrint, dpadDPrint, dpadRPrint,
607614 backPrint, logoPrint, startPrint,
608- aButtonPrint, bButtonPrint, xButtonPrint, yButtonPrint,
615+ aButtonPrint, bButtonPrint, xButtonPrint, yButtonPrint
616+ );
617+ output.print (buffer);
618+
619+ // Right Side Controls
620+ char rightBumper[3 ] = " RB" ;
621+ char rightJoyBtn[3 ] = " R3" ;
609622
610- // Right side controls
623+ if (!getButton (BUTTON_RB)) fillBuffer (rightBumper, fillCharacter);
624+ if (!getButton (BUTTON_R3)) fillBuffer (rightJoyBtn, fillCharacter);
625+
626+ sprintf (buffer,
627+ " R:(%6d, %6d, %s) %s RT: %3u" ,
628+
611629 getJoystickX (JOY_RIGHT), getJoystickY (JOY_RIGHT),
630+ rightJoyBtn,
612631 rightBumper,
613632 getTrigger (TRIGGER_RIGHT)
614633 );
0 commit comments