forked from mirrors/qmk_userspace
		
	Add conditional compile for MOUSE_ENABLE and EXTRAKEY_ENABLE.
This commit is contained in:
		
					parent
					
						
							
								52011f08c9
							
						
					
				
			
			
				commit
				
					
						f2ebac101d
					
				
			
		
					 4 changed files with 105 additions and 23 deletions
				
			
		| 
						 | 
					@ -100,9 +100,9 @@ F_USB = $(F_CPU)
 | 
				
			||||||
#   comment out to disable the options.
 | 
					#   comment out to disable the options.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
MOUSEKEY_ENABLE = yes	# Mouse keys
 | 
					MOUSEKEY_ENABLE = yes	# Mouse keys
 | 
				
			||||||
#PS2_MOUSE_ENABLE = yes	# PS/2 mouse(TrackPoint) support
 | 
					 | 
				
			||||||
EXTRAKEY_ENABLE = yes	# Audio control and System control
 | 
					EXTRAKEY_ENABLE = yes	# Audio control and System control
 | 
				
			||||||
#NKRO_ENABLE = yes	# USB Nkey Rollover
 | 
					#NKRO_ENABLE = yes	# USB Nkey Rollover
 | 
				
			||||||
 | 
					#PS2_MOUSE_ENABLE = yes	# PS/2 mouse(TrackPoint) support
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Search Path
 | 
					# Search Path
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -54,8 +54,8 @@ const USB_Descriptor_HIDReport_Datatype_t PROGMEM KeyboardReport[] =
 | 
				
			||||||
        HID_RI_USAGE_MAXIMUM(8, 0xE7), /* Keyboard Right GUI */
 | 
					        HID_RI_USAGE_MAXIMUM(8, 0xE7), /* Keyboard Right GUI */
 | 
				
			||||||
        HID_RI_LOGICAL_MINIMUM(8, 0x00),
 | 
					        HID_RI_LOGICAL_MINIMUM(8, 0x00),
 | 
				
			||||||
        HID_RI_LOGICAL_MAXIMUM(8, 0x01),
 | 
					        HID_RI_LOGICAL_MAXIMUM(8, 0x01),
 | 
				
			||||||
        HID_RI_REPORT_SIZE(8, 0x01),
 | 
					 | 
				
			||||||
        HID_RI_REPORT_COUNT(8, 0x08),
 | 
					        HID_RI_REPORT_COUNT(8, 0x08),
 | 
				
			||||||
 | 
					        HID_RI_REPORT_SIZE(8, 0x01),
 | 
				
			||||||
        HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE),
 | 
					        HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE),
 | 
				
			||||||
        HID_RI_REPORT_COUNT(8, 0x01),
 | 
					        HID_RI_REPORT_COUNT(8, 0x01),
 | 
				
			||||||
        HID_RI_REPORT_SIZE(8, 0x08),
 | 
					        HID_RI_REPORT_SIZE(8, 0x08),
 | 
				
			||||||
| 
						 | 
					@ -69,11 +69,11 @@ const USB_Descriptor_HIDReport_Datatype_t PROGMEM KeyboardReport[] =
 | 
				
			||||||
        HID_RI_REPORT_COUNT(8, 0x01),
 | 
					        HID_RI_REPORT_COUNT(8, 0x01),
 | 
				
			||||||
        HID_RI_REPORT_SIZE(8, 0x03),
 | 
					        HID_RI_REPORT_SIZE(8, 0x03),
 | 
				
			||||||
        HID_RI_OUTPUT(8, HID_IOF_CONSTANT),
 | 
					        HID_RI_OUTPUT(8, HID_IOF_CONSTANT),
 | 
				
			||||||
        HID_RI_LOGICAL_MINIMUM(8, 0x00),
 | 
					 | 
				
			||||||
        HID_RI_LOGICAL_MAXIMUM(8, 0x65),
 | 
					 | 
				
			||||||
        HID_RI_USAGE_PAGE(8, 0x07), /* Keyboard */
 | 
					        HID_RI_USAGE_PAGE(8, 0x07), /* Keyboard */
 | 
				
			||||||
        HID_RI_USAGE_MINIMUM(8, 0x00), /* Reserved (no event indicated) */
 | 
					        HID_RI_USAGE_MINIMUM(8, 0x00), /* Reserved (no event indicated) */
 | 
				
			||||||
        HID_RI_USAGE_MAXIMUM(8, 0x65), /* Keyboard Application */
 | 
					        HID_RI_USAGE_MAXIMUM(8, 0xFF), /* Keyboard Application */
 | 
				
			||||||
 | 
					        HID_RI_LOGICAL_MINIMUM(8, 0x00),
 | 
				
			||||||
 | 
					        HID_RI_LOGICAL_MAXIMUM(8, 0xFF),
 | 
				
			||||||
        HID_RI_REPORT_COUNT(8, 0x06),
 | 
					        HID_RI_REPORT_COUNT(8, 0x06),
 | 
				
			||||||
        HID_RI_REPORT_SIZE(8, 0x08),
 | 
					        HID_RI_REPORT_SIZE(8, 0x08),
 | 
				
			||||||
        HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_ARRAY | HID_IOF_ABSOLUTE),
 | 
					        HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_ARRAY | HID_IOF_ABSOLUTE),
 | 
				
			||||||
| 
						 | 
					@ -133,21 +133,22 @@ const USB_Descriptor_HIDReport_Datatype_t PROGMEM ConsoleReport[] =
 | 
				
			||||||
    HID_RI_USAGE_PAGE(16, 0xFF31), /* Vendor Page(PJRC Teensy compatible) */
 | 
					    HID_RI_USAGE_PAGE(16, 0xFF31), /* Vendor Page(PJRC Teensy compatible) */
 | 
				
			||||||
    HID_RI_USAGE(8, 0x74), /* Vendor Usage(PJRC Teensy compatible) */
 | 
					    HID_RI_USAGE(8, 0x74), /* Vendor Usage(PJRC Teensy compatible) */
 | 
				
			||||||
    HID_RI_COLLECTION(8, 0x01), /* Application */
 | 
					    HID_RI_COLLECTION(8, 0x01), /* Application */
 | 
				
			||||||
        HID_RI_USAGE(8, 0x02), /* Vendor Usage 2 */
 | 
					        HID_RI_USAGE(8, 0x75), /* Vendor Usage 0x75 */
 | 
				
			||||||
        HID_RI_LOGICAL_MINIMUM(8, 0x00),
 | 
					        HID_RI_LOGICAL_MINIMUM(8, 0x00),
 | 
				
			||||||
        HID_RI_LOGICAL_MAXIMUM(8, 0xFF),
 | 
					        HID_RI_LOGICAL_MAXIMUM(8, 0xFF),
 | 
				
			||||||
        HID_RI_REPORT_SIZE(8, 0x08),
 | 
					 | 
				
			||||||
        HID_RI_REPORT_COUNT(8, CONSOLE_EPSIZE),
 | 
					        HID_RI_REPORT_COUNT(8, CONSOLE_EPSIZE),
 | 
				
			||||||
 | 
					        HID_RI_REPORT_SIZE(8, 0x08),
 | 
				
			||||||
        HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE),
 | 
					        HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE),
 | 
				
			||||||
        HID_RI_USAGE(8, 0x03), /* Vendor Usage 3 */
 | 
					        HID_RI_USAGE(8, 0x76), /* Vendor Usage 0x76 */
 | 
				
			||||||
        HID_RI_LOGICAL_MINIMUM(8, 0x00),
 | 
					        HID_RI_LOGICAL_MINIMUM(8, 0x00),
 | 
				
			||||||
        HID_RI_LOGICAL_MAXIMUM(8, 0xFF),
 | 
					        HID_RI_LOGICAL_MAXIMUM(8, 0xFF),
 | 
				
			||||||
        HID_RI_REPORT_SIZE(8, 0x08),
 | 
					 | 
				
			||||||
        HID_RI_REPORT_COUNT(8, CONSOLE_EPSIZE),
 | 
					        HID_RI_REPORT_COUNT(8, CONSOLE_EPSIZE),
 | 
				
			||||||
 | 
					        HID_RI_REPORT_SIZE(8, 0x08),
 | 
				
			||||||
        HID_RI_OUTPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE),
 | 
					        HID_RI_OUTPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE),
 | 
				
			||||||
    HID_RI_END_COLLECTION(0),
 | 
					    HID_RI_END_COLLECTION(0),
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef EXTRAKEY_ENABLE
 | 
				
			||||||
const USB_Descriptor_HIDReport_Datatype_t PROGMEM ExtraReport[] =
 | 
					const USB_Descriptor_HIDReport_Datatype_t PROGMEM ExtraReport[] =
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    HID_RI_USAGE_PAGE(8, 0x01), /* Generic Desktop */
 | 
					    HID_RI_USAGE_PAGE(8, 0x01), /* Generic Desktop */
 | 
				
			||||||
| 
						 | 
					@ -176,6 +177,42 @@ const USB_Descriptor_HIDReport_Datatype_t PROGMEM ExtraReport[] =
 | 
				
			||||||
        HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_ARRAY | HID_IOF_ABSOLUTE),
 | 
					        HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_ARRAY | HID_IOF_ABSOLUTE),
 | 
				
			||||||
    HID_RI_END_COLLECTION(0),
 | 
					    HID_RI_END_COLLECTION(0),
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef NKRO_ENABLE
 | 
				
			||||||
 | 
					const USB_Descriptor_HIDReport_Datatype_t PROGMEM NKROReport[] =
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    HID_RI_USAGE_PAGE(8, 0x01), /* Generic Desktop */
 | 
				
			||||||
 | 
					    HID_RI_USAGE(8, 0x06), /* Keyboard */
 | 
				
			||||||
 | 
					    HID_RI_COLLECTION(8, 0x01), /* Application */
 | 
				
			||||||
 | 
					        HID_RI_USAGE_PAGE(8, 0x07), /* Key Codes */
 | 
				
			||||||
 | 
					        HID_RI_USAGE_MINIMUM(8, 0xE0), /* Keyboard Left Control */
 | 
				
			||||||
 | 
					        HID_RI_USAGE_MAXIMUM(8, 0xE7), /* Keyboard Right GUI */
 | 
				
			||||||
 | 
					        HID_RI_LOGICAL_MINIMUM(8, 0x00),
 | 
				
			||||||
 | 
					        HID_RI_LOGICAL_MAXIMUM(8, 0x01),
 | 
				
			||||||
 | 
					        HID_RI_REPORT_COUNT(8, 0x08),
 | 
				
			||||||
 | 
					        HID_RI_REPORT_SIZE(8, 0x01),
 | 
				
			||||||
 | 
					        HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        HID_RI_USAGE_PAGE(8, 0x08), /* LEDs */
 | 
				
			||||||
 | 
					        HID_RI_USAGE_MINIMUM(8, 0x01), /* Num Lock */
 | 
				
			||||||
 | 
					        HID_RI_USAGE_MAXIMUM(8, 0x05), /* Kana */
 | 
				
			||||||
 | 
					        HID_RI_REPORT_COUNT(8, 0x05),
 | 
				
			||||||
 | 
					        HID_RI_REPORT_SIZE(8, 0x01),
 | 
				
			||||||
 | 
					        HID_RI_OUTPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE),
 | 
				
			||||||
 | 
					        HID_RI_REPORT_COUNT(8, 0x01),
 | 
				
			||||||
 | 
					        HID_RI_REPORT_SIZE(8, 0x03),
 | 
				
			||||||
 | 
					        HID_RI_OUTPUT(8, HID_IOF_CONSTANT),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        HID_RI_USAGE_PAGE(8, 0x07), /* Key Codes */
 | 
				
			||||||
 | 
					        HID_RI_USAGE_MINIMUM(8, 0x00), /* Keyboard 0 */
 | 
				
			||||||
 | 
					        HID_RI_USAGE_MAXIMUM(8, NKRO_SIZE*8-1), /* Keyboard Right GUI */
 | 
				
			||||||
 | 
					        HID_RI_LOGICAL_MINIMUM(8, 0x00),
 | 
				
			||||||
 | 
					        HID_RI_LOGICAL_MAXIMUM(8, 0x01),
 | 
				
			||||||
 | 
					        HID_RI_REPORT_COUNT(8, NKRO_SIZE*8),
 | 
				
			||||||
 | 
					        HID_RI_REPORT_SIZE(8, 0x01),
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*******************************************************************************
 | 
					/*******************************************************************************
 | 
				
			||||||
 * Device Descriptors
 | 
					 * Device Descriptors
 | 
				
			||||||
| 
						 | 
					@ -265,6 +302,7 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 | 
				
			||||||
    /*
 | 
					    /*
 | 
				
			||||||
     * Mouse
 | 
					     * Mouse
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
 | 
					#ifdef MOUSE_ENABLE
 | 
				
			||||||
    .Mouse_Interface =
 | 
					    .Mouse_Interface =
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            .Header                 = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface},
 | 
					            .Header                 = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface},
 | 
				
			||||||
| 
						 | 
					@ -301,6 +339,7 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 | 
				
			||||||
            .EndpointSize           = MOUSE_EPSIZE,
 | 
					            .EndpointSize           = MOUSE_EPSIZE,
 | 
				
			||||||
            .PollingIntervalMS      = 0x01
 | 
					            .PollingIntervalMS      = 0x01
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /*
 | 
					    /*
 | 
				
			||||||
     * Console
 | 
					     * Console
 | 
				
			||||||
| 
						 | 
					@ -355,6 +394,7 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 | 
				
			||||||
    /*
 | 
					    /*
 | 
				
			||||||
     * Extra
 | 
					     * Extra
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
 | 
					#ifdef EXTRAKEY_ENABLE
 | 
				
			||||||
    .Extra_Interface =
 | 
					    .Extra_Interface =
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            .Header                 = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface},
 | 
					            .Header                 = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface},
 | 
				
			||||||
| 
						 | 
					@ -391,6 +431,7 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 | 
				
			||||||
            .EndpointSize           = EXTRA_EPSIZE,
 | 
					            .EndpointSize           = EXTRA_EPSIZE,
 | 
				
			||||||
            .PollingIntervalMS      = 0x01
 | 
					            .PollingIntervalMS      = 0x01
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -468,18 +509,22 @@ uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
 | 
				
			||||||
                Address = &ConfigurationDescriptor.Keyboard_HID;
 | 
					                Address = &ConfigurationDescriptor.Keyboard_HID;
 | 
				
			||||||
                Size    = sizeof(USB_HID_Descriptor_HID_t);
 | 
					                Size    = sizeof(USB_HID_Descriptor_HID_t);
 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
 | 
					#ifdef MOUSE_ENABLE
 | 
				
			||||||
            case MOUSE_INTERFACE:
 | 
					            case MOUSE_INTERFACE:
 | 
				
			||||||
                Address = &ConfigurationDescriptor.Mouse_HID;
 | 
					                Address = &ConfigurationDescriptor.Mouse_HID;
 | 
				
			||||||
                Size    = sizeof(USB_HID_Descriptor_HID_t);
 | 
					                Size    = sizeof(USB_HID_Descriptor_HID_t);
 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
            case CONSOLE_INTERFACE:
 | 
					            case CONSOLE_INTERFACE:
 | 
				
			||||||
                Address = &ConfigurationDescriptor.Console_HID;
 | 
					                Address = &ConfigurationDescriptor.Console_HID;
 | 
				
			||||||
                Size    = sizeof(USB_HID_Descriptor_HID_t);
 | 
					                Size    = sizeof(USB_HID_Descriptor_HID_t);
 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
 | 
					#ifdef EXTRAKEY_ENABLE
 | 
				
			||||||
            case EXTRA_INTERFACE:
 | 
					            case EXTRA_INTERFACE:
 | 
				
			||||||
                Address = &ConfigurationDescriptor.Extra_HID;
 | 
					                Address = &ConfigurationDescriptor.Extra_HID;
 | 
				
			||||||
                Size    = sizeof(USB_HID_Descriptor_HID_t);
 | 
					                Size    = sizeof(USB_HID_Descriptor_HID_t);
 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
        case HID_DTYPE_Report:
 | 
					        case HID_DTYPE_Report:
 | 
				
			||||||
| 
						 | 
					@ -488,18 +533,22 @@ uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
 | 
				
			||||||
                Address = &KeyboardReport;
 | 
					                Address = &KeyboardReport;
 | 
				
			||||||
                Size    = sizeof(KeyboardReport);
 | 
					                Size    = sizeof(KeyboardReport);
 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
 | 
					#ifdef MOUSE_ENABLE
 | 
				
			||||||
            case MOUSE_INTERFACE:
 | 
					            case MOUSE_INTERFACE:
 | 
				
			||||||
                Address = &MouseReport;
 | 
					                Address = &MouseReport;
 | 
				
			||||||
                Size    = sizeof(MouseReport);
 | 
					                Size    = sizeof(MouseReport);
 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
            case CONSOLE_INTERFACE:
 | 
					            case CONSOLE_INTERFACE:
 | 
				
			||||||
                Address = &ConsoleReport;
 | 
					                Address = &ConsoleReport;
 | 
				
			||||||
                Size    = sizeof(ConsoleReport);
 | 
					                Size    = sizeof(ConsoleReport);
 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
 | 
					#ifdef EXTRAKEY_ENABLE
 | 
				
			||||||
            case EXTRA_INTERFACE:
 | 
					            case EXTRA_INTERFACE:
 | 
				
			||||||
                Address = &ExtraReport;
 | 
					                Address = &ExtraReport;
 | 
				
			||||||
                Size    = sizeof(ExtraReport);
 | 
					                Size    = sizeof(ExtraReport);
 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -51,9 +51,11 @@ typedef struct
 | 
				
			||||||
    USB_Descriptor_Endpoint_t             Keyboard_INEndpoint;
 | 
					    USB_Descriptor_Endpoint_t             Keyboard_INEndpoint;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Mouse HID Interface
 | 
					    // Mouse HID Interface
 | 
				
			||||||
 | 
					#ifdef MOUSE_ENABLE
 | 
				
			||||||
    USB_Descriptor_Interface_t            Mouse_Interface;
 | 
					    USB_Descriptor_Interface_t            Mouse_Interface;
 | 
				
			||||||
    USB_HID_Descriptor_HID_t              Mouse_HID;
 | 
					    USB_HID_Descriptor_HID_t              Mouse_HID;
 | 
				
			||||||
    USB_Descriptor_Endpoint_t             Mouse_INEndpoint;
 | 
					    USB_Descriptor_Endpoint_t             Mouse_INEndpoint;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Console HID Interface
 | 
					    // Console HID Interface
 | 
				
			||||||
    USB_Descriptor_Interface_t            Console_Interface;
 | 
					    USB_Descriptor_Interface_t            Console_Interface;
 | 
				
			||||||
| 
						 | 
					@ -62,20 +64,35 @@ typedef struct
 | 
				
			||||||
    USB_Descriptor_Endpoint_t             Console_OUTEndpoint;
 | 
					    USB_Descriptor_Endpoint_t             Console_OUTEndpoint;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Extra HID Interface
 | 
					    // Extra HID Interface
 | 
				
			||||||
 | 
					#ifdef EXTRAKEY_ENABLE
 | 
				
			||||||
    USB_Descriptor_Interface_t            Extra_Interface;
 | 
					    USB_Descriptor_Interface_t            Extra_Interface;
 | 
				
			||||||
    USB_HID_Descriptor_HID_t              Extra_HID;
 | 
					    USB_HID_Descriptor_HID_t              Extra_HID;
 | 
				
			||||||
    USB_Descriptor_Endpoint_t             Extra_INEndpoint;
 | 
					    USB_Descriptor_Endpoint_t             Extra_INEndpoint;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
} USB_Descriptor_Configuration_t;
 | 
					} USB_Descriptor_Configuration_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* nubmer of interfaces */
 | 
					 | 
				
			||||||
#define TOTAL_INTERFACES            4
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* index of interface */
 | 
					/* index of interface */
 | 
				
			||||||
#define KEYBOARD_INTERFACE          0
 | 
					#define KEYBOARD_INTERFACE          0
 | 
				
			||||||
#define MOUSE_INTERFACE             1
 | 
					
 | 
				
			||||||
#define CONSOLE_INTERFACE           2
 | 
					#ifdef MOUSE_ENABLE
 | 
				
			||||||
#define EXTRA_INTERFACE             3
 | 
					#   define MOUSE_INTERFACE          (KEYBOARD_INTERFACE + 1)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#   define MOUSE_INTERFACE          KEYBOARD_INTERFACE
 | 
				
			||||||
 | 
					#endif 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef EXTRAKEY_ENABLE
 | 
				
			||||||
 | 
					#   define EXTRA_INTERFACE          (MOUSE_INTERFACE + 1)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#   define EXTRA_INTERFACE          MOUSE_INTERFACE
 | 
				
			||||||
 | 
					#endif 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define CONSOLE_INTERFACE           (EXTRA_INTERFACE + 1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* nubmer of interfaces */
 | 
				
			||||||
 | 
					#define TOTAL_INTERFACES            (CONSOLE_INTERFACE + 1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Endopoint number and size
 | 
					// Endopoint number and size
 | 
				
			||||||
#define KEYBOARD_IN_EPNUM           1
 | 
					#define KEYBOARD_IN_EPNUM           1
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -50,7 +50,9 @@ static uint8_t keyboard_led_stats = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// TODO: impl Control Request GET_REPORT
 | 
					// TODO: impl Control Request GET_REPORT
 | 
				
			||||||
static report_keyboard_t keyboard_report_sent;
 | 
					static report_keyboard_t keyboard_report_sent;
 | 
				
			||||||
 | 
					#ifdef MOUSE_ENABLE
 | 
				
			||||||
static report_mouse_t mouse_report_sent;
 | 
					static report_mouse_t mouse_report_sent;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Host driver */
 | 
					/* Host driver */
 | 
				
			||||||
static uint8_t keyboard_leds(void);
 | 
					static uint8_t keyboard_leds(void);
 | 
				
			||||||
| 
						 | 
					@ -171,19 +173,23 @@ void EVENT_USB_Device_ConfigurationChanged(void)
 | 
				
			||||||
    ConfigSuccess &= Endpoint_ConfigureEndpoint(KEYBOARD_IN_EPNUM, EP_TYPE_INTERRUPT, ENDPOINT_DIR_IN,
 | 
					    ConfigSuccess &= Endpoint_ConfigureEndpoint(KEYBOARD_IN_EPNUM, EP_TYPE_INTERRUPT, ENDPOINT_DIR_IN,
 | 
				
			||||||
                                                KEYBOARD_EPSIZE, ENDPOINT_BANK_SINGLE);
 | 
					                                                KEYBOARD_EPSIZE, ENDPOINT_BANK_SINGLE);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef MOUSE_ENABLE
 | 
				
			||||||
    /* Setup Mouse HID Report Endpoint */
 | 
					    /* Setup Mouse HID Report Endpoint */
 | 
				
			||||||
    ConfigSuccess &= Endpoint_ConfigureEndpoint(MOUSE_IN_EPNUM, EP_TYPE_INTERRUPT, ENDPOINT_DIR_IN,
 | 
					    ConfigSuccess &= Endpoint_ConfigureEndpoint(MOUSE_IN_EPNUM, EP_TYPE_INTERRUPT, ENDPOINT_DIR_IN,
 | 
				
			||||||
                                                MOUSE_EPSIZE, ENDPOINT_BANK_SINGLE);
 | 
					                                                MOUSE_EPSIZE, ENDPOINT_BANK_SINGLE);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef EXTRAKEY_ENABLE
 | 
				
			||||||
 | 
					    /* Setup Extra HID Report Endpoint */
 | 
				
			||||||
 | 
					    ConfigSuccess &= Endpoint_ConfigureEndpoint(EXTRA_IN_EPNUM, EP_TYPE_INTERRUPT, ENDPOINT_DIR_IN,
 | 
				
			||||||
 | 
					                                                EXTRA_EPSIZE, ENDPOINT_BANK_SINGLE);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* Setup Console HID Report Endpoints */
 | 
					    /* Setup Console HID Report Endpoints */
 | 
				
			||||||
    ConfigSuccess &= Endpoint_ConfigureEndpoint(CONSOLE_IN_EPNUM, EP_TYPE_INTERRUPT, ENDPOINT_DIR_IN,
 | 
					    ConfigSuccess &= Endpoint_ConfigureEndpoint(CONSOLE_IN_EPNUM, EP_TYPE_INTERRUPT, ENDPOINT_DIR_IN,
 | 
				
			||||||
                                                CONSOLE_EPSIZE, ENDPOINT_BANK_SINGLE);
 | 
					                                                CONSOLE_EPSIZE, ENDPOINT_BANK_SINGLE);
 | 
				
			||||||
    ConfigSuccess &= Endpoint_ConfigureEndpoint(CONSOLE_OUT_EPNUM, EP_TYPE_INTERRUPT, ENDPOINT_DIR_OUT,
 | 
					    ConfigSuccess &= Endpoint_ConfigureEndpoint(CONSOLE_OUT_EPNUM, EP_TYPE_INTERRUPT, ENDPOINT_DIR_OUT,
 | 
				
			||||||
                                                CONSOLE_EPSIZE, ENDPOINT_BANK_SINGLE);
 | 
					                                                CONSOLE_EPSIZE, ENDPOINT_BANK_SINGLE);
 | 
				
			||||||
 | 
					 | 
				
			||||||
    /* Setup Extra HID Report Endpoint */
 | 
					 | 
				
			||||||
    ConfigSuccess &= Endpoint_ConfigureEndpoint(EXTRA_IN_EPNUM, EP_TYPE_INTERRUPT, ENDPOINT_DIR_IN,
 | 
					 | 
				
			||||||
                                                EXTRA_EPSIZE, ENDPOINT_BANK_SINGLE);
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
| 
						 | 
					@ -222,15 +228,19 @@ void EVENT_USB_Device_ControlRequest(void)
 | 
				
			||||||
                    ReportData = (uint8_t*)&keyboard_report_sent;
 | 
					                    ReportData = (uint8_t*)&keyboard_report_sent;
 | 
				
			||||||
                    ReportSize = sizeof(keyboard_report_sent);
 | 
					                    ReportSize = sizeof(keyboard_report_sent);
 | 
				
			||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
 | 
					#ifdef MOUSE_ENABLE
 | 
				
			||||||
                case MOUSE_INTERFACE:
 | 
					                case MOUSE_INTERFACE:
 | 
				
			||||||
                    // TODO: test/check
 | 
					                    // TODO: test/check
 | 
				
			||||||
                    ReportData = (uint8_t*)&mouse_report_sent;
 | 
					                    ReportData = (uint8_t*)&mouse_report_sent;
 | 
				
			||||||
                    ReportSize = sizeof(mouse_report_sent);
 | 
					                    ReportSize = sizeof(mouse_report_sent);
 | 
				
			||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
                case CONSOLE_INTERFACE:
 | 
					#endif
 | 
				
			||||||
                    break;
 | 
					#ifdef EXTRAKEY_ENABLE
 | 
				
			||||||
                case EXTRA_INTERFACE:
 | 
					                case EXTRA_INTERFACE:
 | 
				
			||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					                case CONSOLE_INTERFACE:
 | 
				
			||||||
 | 
					                    break;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                /* Write the report data to the control endpoint */
 | 
					                /* Write the report data to the control endpoint */
 | 
				
			||||||
| 
						 | 
					@ -258,12 +268,16 @@ void EVENT_USB_Device_ControlRequest(void)
 | 
				
			||||||
                    /* Read in the LED report from the host */
 | 
					                    /* Read in the LED report from the host */
 | 
				
			||||||
                    keyboard_led_stats = Endpoint_Read_8();
 | 
					                    keyboard_led_stats = Endpoint_Read_8();
 | 
				
			||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
 | 
					#ifdef MOUSE_ENABLE
 | 
				
			||||||
                case MOUSE_INTERFACE:
 | 
					                case MOUSE_INTERFACE:
 | 
				
			||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
                case CONSOLE_INTERFACE:
 | 
					#endif
 | 
				
			||||||
                    break;
 | 
					#ifdef EXTRAKEY_ENABLE
 | 
				
			||||||
                case EXTRA_INTERFACE:
 | 
					                case EXTRA_INTERFACE:
 | 
				
			||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					                case CONSOLE_INTERFACE:
 | 
				
			||||||
 | 
					                    break;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                Endpoint_ClearOUT();
 | 
					                Endpoint_ClearOUT();
 | 
				
			||||||
| 
						 | 
					@ -302,6 +316,7 @@ static void send_keyboard(report_keyboard_t *report)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void send_mouse(report_mouse_t *report)
 | 
					static void send_mouse(report_mouse_t *report)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					#ifdef MOUSE_ENABLE
 | 
				
			||||||
    /* Select the Mouse Report Endpoint */
 | 
					    /* Select the Mouse Report Endpoint */
 | 
				
			||||||
    Endpoint_SelectEndpoint(MOUSE_IN_EPNUM);
 | 
					    Endpoint_SelectEndpoint(MOUSE_IN_EPNUM);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -315,6 +330,7 @@ static void send_mouse(report_mouse_t *report)
 | 
				
			||||||
        Endpoint_ClearIN();
 | 
					        Endpoint_ClearIN();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    mouse_report_sent = *report;
 | 
					    mouse_report_sent = *report;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef struct {
 | 
					typedef struct {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue