Add consumer/system control feature to LUFA.
This commit is contained in:
		
							parent
							
								
									a9a3610dd4
								
							
						
					
					
						commit
						3d81d5221e
					
				
					 10 changed files with 209 additions and 96 deletions
				
			
		| 
						 | 
				
			
			@ -62,11 +62,6 @@ int main(void)
 | 
			
		|||
 | 
			
		||||
    debug("initForUsbConnectivity()\n");
 | 
			
		||||
    initForUsbConnectivity();
 | 
			
		||||
    int i;
 | 
			
		||||
    while(--i){         /* To configured */
 | 
			
		||||
        usbPoll();
 | 
			
		||||
        _delay_ms(1);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    debug("main loop\n");
 | 
			
		||||
    while (1) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -107,32 +107,25 @@ static void send_mouse(report_mouse_t *report)
 | 
			
		|||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 | 
			
		||||
typedef struct {
 | 
			
		||||
    uint8_t report_id;
 | 
			
		||||
    uint8_t data0;
 | 
			
		||||
    uint8_t data1;
 | 
			
		||||
} __attribute__ ((packed)) vusb_system_report_t;
 | 
			
		||||
*/
 | 
			
		||||
    uint8_t  report_id;
 | 
			
		||||
    uint16_t usage;
 | 
			
		||||
} __attribute__ ((packed)) report_extra_t;
 | 
			
		||||
 | 
			
		||||
static void send_system(uint16_t data)
 | 
			
		||||
{
 | 
			
		||||
/*
 | 
			
		||||
    // Not need static?
 | 
			
		||||
    static uint8_t report[] = { REPORT_ID_SYSTEM, 0, 0 };
 | 
			
		||||
    report[1] = data&0xFF;
 | 
			
		||||
    report[2] = (data>>8)&0xFF;
 | 
			
		||||
*/
 | 
			
		||||
/*
 | 
			
		||||
    vusb_system_report_t r = {
 | 
			
		||||
    static uint16_t last_data = 0;
 | 
			
		||||
    if (data == last_data) return;
 | 
			
		||||
    last_data = data;
 | 
			
		||||
 | 
			
		||||
    report_extra_t report = {
 | 
			
		||||
        .report_id = REPORT_ID_SYSTEM,
 | 
			
		||||
        .data0 = data&0xFF,
 | 
			
		||||
        .data1 = (data>>8)&0xFF
 | 
			
		||||
        .usage = data
 | 
			
		||||
    };
 | 
			
		||||
    if (usbInterruptIsReady3()) {
 | 
			
		||||
        usbSetInterrupt3((void *)&r, sizeof(vusb_system_report_t));
 | 
			
		||||
        usbSetInterrupt3((void *)&report, sizeof(report));
 | 
			
		||||
    }
 | 
			
		||||
*/
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void send_consumer(uint16_t data)
 | 
			
		||||
| 
						 | 
				
			
			@ -141,10 +134,10 @@ static void send_consumer(uint16_t data)
 | 
			
		|||
    if (data == last_data) return;
 | 
			
		||||
    last_data = data;
 | 
			
		||||
 | 
			
		||||
    // Not need static?
 | 
			
		||||
    static uint8_t report[] = { REPORT_ID_CONSUMER, 0, 0 };
 | 
			
		||||
    report[1] = data&0xFF;
 | 
			
		||||
    report[2] = (data>>8)&0xFF;
 | 
			
		||||
    report_extra_t report = {
 | 
			
		||||
        .report_id = REPORT_ID_CONSUMER,
 | 
			
		||||
        .usage = data
 | 
			
		||||
    };
 | 
			
		||||
    if (usbInterruptIsReady3()) {
 | 
			
		||||
        usbSetInterrupt3((void *)&report, sizeof(report));
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue