Commit a908773a authored by Dean Camera's avatar Dean Camera
Browse files

Change device demos to cache the board button values in the same manner as the...

Change device demos to cache the board button values in the same manner as the board joystick to maintain consistency.
parent 63a8f66d
......@@ -153,9 +153,10 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
*/
bool GetNextReport(USB_JoystickReport_Data_t* ReportData)
{
static uint8_t PrevJoyStatus = 0;
uint8_t JoyStatus_LCL = Joystick_GetStatus();
bool InputChanged = false;
static uint8_t PrevJoyStatus = 0;
uint8_t JoyStatus_LCL = Joystick_GetStatus();
uint8_t ButtonStatus_LCL = Buttons_GetStatus();
bool InputChanged = false;
/* Clear the report contents */
memset(ReportData, 0, sizeof(USB_JoystickReport_Data_t));
......@@ -173,14 +174,15 @@ bool GetNextReport(USB_JoystickReport_Data_t* ReportData)
if (JoyStatus_LCL & JOY_PRESS)
ReportData->Button = (1 << 1);
if (Buttons_GetStatus() & BUTTONS_BUTTON1)
if (ButtonStatus_LCL & BUTTONS_BUTTON1)
ReportData->Button |= (1 << 0);
/* Check if the new report is different to the previous report */
InputChanged = (uint8_t)(PrevJoyStatus ^ JoyStatus_LCL);
InputChanged = (uint8_t)(PrevJoyStatus ^ JoyStatus_LCL) | (uint8_t)(PrevButtonStatus ^ ButtonStatus_LCL);
/* Save the current joystick status for later comparison */
PrevJoyStatus = JoyStatus_LCL;
PrevJoyStatus = JoyStatus_LCL;
PrevButtonStatus = ButtonStatus_LCL;
/* Return whether the new report is different to the previous report or not */
return InputChanged;
......
......@@ -287,7 +287,8 @@ ISR(TIMER0_COMPA_vect, ISR_BLOCK)
*/
void CreateMouseReport(USB_MouseReport_Data_t* ReportData)
{
uint8_t JoyStatus_LCL = Joystick_GetStatus();
uint8_t JoyStatus_LCL = Joystick_GetStatus();
uint8_t ButtonStatus_LCL = Buttons_GetStatus();
/* Clear the report contents */
memset(ReportData, 0, sizeof(USB_MouseReport_Data_t));
......@@ -305,7 +306,7 @@ void CreateMouseReport(USB_MouseReport_Data_t* ReportData)
if (JoyStatus_LCL & JOY_PRESS)
ReportData->Button = (1 << 0);
if (Buttons_GetStatus() & BUTTONS_BUTTON1)
if (ButtonStatus_LCL & BUTTONS_BUTTON1)
ReportData->Button |= (1 << 1);
}
......
......@@ -131,7 +131,7 @@ static void USB_Device_SetAddress(void)
static void USB_Device_SetConfiguration(void)
{
bool AlreadyConfigured = (USB_ConfigurationNumber != 0);
bool AlreadyConfigured = (USB_ConfigurationNumber != 0);
#if defined(USE_SINGLE_DEVICE_CONFIGURATION)
if ((uint8_t)USB_ControlRequest.wValue > 1)
......@@ -188,7 +188,7 @@ static void USB_Device_GetDescriptor(void)
#if defined(USE_RAM_DESCRIPTORS)
Endpoint_Write_Control_Stream_LE(DescriptorPointer, DescriptorSize);
#else
bool SendZLP;
bool SendZLP;
if (USB_ControlRequest.wLength > DescriptorSize)
USB_ControlRequest.wLength = DescriptorSize;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment