an conditional for console in

This commit is contained in:
Jack Humbert 2017-12-28 17:37:45 -05:00
parent f8d340a9dd
commit 426ace718b
5 changed files with 49 additions and 35 deletions

View file

@ -208,8 +208,11 @@ typedef struct
#ifdef CONSOLE_ENABLE
# define CONSOLE_IN_EPNUM (RAW_OUT_EPNUM + 1)
# define CONSOLE_OUT_EPNUM (RAW_OUT_EPNUM + 2)
//# define CONSOLE_OUT_EPNUM (RAW_OUT_EPNUM + 1)
# ifdef CONSOLE_IN_ENABLE
# define CONSOLE_OUT_EPNUM (RAW_OUT_EPNUM + 2)
# else
# define CONSOLE_OUT_EPNUM (RAW_OUT_EPNUM + 1)
# endif
#else
# define CONSOLE_OUT_EPNUM RAW_OUT_EPNUM
#endif

View file

@ -274,41 +274,43 @@ static bool console_flush = false;
static void Console_Task(void)
{
/* Device must be connected and configured for the task to run */
if (USB_DeviceState != DEVICE_STATE_Configured)
return;
/* Create a temporary buffer to hold the read in report from the host */
uint8_t ConsoleData[CONSOLE_EPSIZE];
bool data_read = false;
uint8_t ep = Endpoint_GetCurrentEndpoint();
// TODO: impl receivechar()/recvchar()
Endpoint_SelectEndpoint(CONSOLE_OUT_EPNUM);
#ifdef CONSOLE_IN_ENABLE
/* Create a temporary buffer to hold the read in report from the host */
uint8_t ConsoleData[CONSOLE_EPSIZE];
bool data_read = false;
/* Check to see if a packet has been sent from the host */
if (Endpoint_IsOUTReceived())
{
/* Check to see if the packet contains data */
if (Endpoint_IsReadWriteAllowed())
{
// TODO: impl receivechar()/recvchar()
Endpoint_SelectEndpoint(CONSOLE_OUT_EPNUM);
/* Read Console Report Data */
Endpoint_Read_Stream_LE(&ConsoleData, sizeof(ConsoleData), NULL);
data_read = true;
}
/* Check to see if a packet has been sent from the host */
if (Endpoint_IsOUTReceived())
{
/* Check to see if the packet contains data */
if (Endpoint_IsReadWriteAllowed())
{
/* Finalize the stream transfer to send the last packet */
Endpoint_ClearOUT();
/* Read Console Report Data */
Endpoint_Read_Stream_LE(&ConsoleData, sizeof(ConsoleData), NULL);
data_read = true;
}
if (data_read) {
/* Process Console Report Data */
process_console_data_quantum(ConsoleData, sizeof(ConsoleData));
}
/* Finalize the stream transfer to send the last packet */
Endpoint_ClearOUT();
}
if (data_read) {
/* Process Console Report Data */
process_console_data_quantum(ConsoleData, sizeof(ConsoleData));
}
}
#endif
if (console_flush) {
/* IN packet */
@ -454,10 +456,10 @@ void EVENT_USB_Device_ConfigurationChanged(void)
/* Setup Console HID Report Endpoints */
ConfigSuccess &= ENDPOINT_CONFIG(CONSOLE_IN_EPNUM, EP_TYPE_INTERRUPT, ENDPOINT_DIR_IN,
CONSOLE_EPSIZE, ENDPOINT_BANK_SINGLE);
// #if 0
#ifdef CONSOLE_IN_ENABLE
ConfigSuccess &= ENDPOINT_CONFIG(CONSOLE_OUT_EPNUM, EP_TYPE_INTERRUPT, ENDPOINT_DIR_OUT,
CONSOLE_EPSIZE, ENDPOINT_BANK_SINGLE);
// #endif
#endif
#endif
#ifdef NKRO_ENABLE