an conditional for console in
This commit is contained in:
		
							parent
							
								
									f8d340a9dd
								
							
						
					
					
						commit
						426ace718b
					
				
					 5 changed files with 49 additions and 35 deletions
				
			
		| 
						 | 
				
			
			@ -44,6 +44,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		|||
#define AUDIO_VOICES
 | 
			
		||||
#define C6_AUDIO
 | 
			
		||||
 | 
			
		||||
#define CONSOLE_IN_ENABLE
 | 
			
		||||
 | 
			
		||||
#define BACKLIGHT_PIN B7
 | 
			
		||||
 | 
			
		||||
/* COL2ROW or ROW2COL */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1297,7 +1297,7 @@ void shutdown_user() {}
 | 
			
		|||
 | 
			
		||||
//------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
#ifdef CONSOLE_ENABLE
 | 
			
		||||
#ifdef CONSOLE_IN_ENABLE
 | 
			
		||||
 | 
			
		||||
__attribute__ ((weak))
 | 
			
		||||
void process_console_data_user(uint8_t * data, uint8_t length) {
 | 
			
		||||
| 
						 | 
				
			
			@ -1309,19 +1309,26 @@ void process_console_data_kb(uint8_t * data, uint8_t length) {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
void process_console_data_quantum(uint8_t * data, uint8_t length) {
 | 
			
		||||
  // This can be used for testing - it echos back the information received
 | 
			
		||||
  // print("Received message:\n  ");
 | 
			
		||||
  // while (*data) {
 | 
			
		||||
  //   sendchar(*data);
 | 
			
		||||
  //   data++;
 | 
			
		||||
  // }
 | 
			
		||||
  switch (data[0]) {
 | 
			
		||||
    case 0xFE:
 | 
			
		||||
      print("Entering bootloader\n");
 | 
			
		||||
      reset_keyboard();
 | 
			
		||||
      break;
 | 
			
		||||
    case 0x01:
 | 
			
		||||
      print("Saying hello\n");
 | 
			
		||||
      audio_on();
 | 
			
		||||
      #ifdef AUDIO_ENABLE
 | 
			
		||||
        audio_on();
 | 
			
		||||
      #endif
 | 
			
		||||
      break;
 | 
			
		||||
    case 0xFE:
 | 
			
		||||
    #ifdef CONSOLE_IN_BOOTLOADER
 | 
			
		||||
      print("Entering bootloader\n");
 | 
			
		||||
      reset_keyboard();
 | 
			
		||||
    #else
 | 
			
		||||
      print("Unable to enter bootloader\n");
 | 
			
		||||
    #endif
 | 
			
		||||
      break;
 | 
			
		||||
  }
 | 
			
		||||
  process_console_data_kb(data, length);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -193,7 +193,7 @@ void led_set_kb(uint8_t usb_led);
 | 
			
		|||
 | 
			
		||||
void api_send_unicode(uint32_t unicode);
 | 
			
		||||
 | 
			
		||||
#ifdef CONSOLE_ENABLE
 | 
			
		||||
#ifdef CONSOLE_IN_ENABLE
 | 
			
		||||
void process_console_data_user(uint8_t * data, uint8_t length);
 | 
			
		||||
void process_console_data_kb(uint8_t * data, uint8_t length);
 | 
			
		||||
void process_console_data_quantum(uint8_t * data, uint8_t length);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue