Rev 1600 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1029 | serge | 1 | |
2 | u8_t bDescriptorType; |
||
3 | u16_t wDescriptorLength; |
||
4 | } __attribute__ ((packed)); |
||
5 | |||
6 | |||
7 | u8_t bLength; |
||
8 | u8_t bDescriptorType; |
||
9 | u16_t bcdHID; |
||
10 | u8_t bCountryCode; |
||
11 | u8_t bNumDescriptors; |
||
12 | |||
13 | |||
14 | } __attribute__ ((packed)); |
||
15 | |||
16 | |||
17 | |||
18 | |||
1600 | serge | 19 | { |
1029 | serge | 20 | interface_descr_t *interface; |
21 | struct hid_descriptor *hds; |
||
22 | struct hid_class_descriptor *hidclass; |
||
23 | u8_t *dptr = (u8_t*)dev->conf; |
||
24 | |||
25 | |||
26 | |||
27 | |||
28 | |||
29 | |||
30 | |||
31 | |||
32 | // { |
||
33 | interface = (interface_descr_t*)dptr; |
||
34 | dptr+= interface->bLength; |
||
35 | |||
36 | |||
37 | "bLength %d\n" |
||
38 | "bDescriptorType %d\n" |
||
39 | "bInterfaceNumber %d\n" |
||
40 | "bAlternateSetting %d\n" |
||
41 | "bNumEndpoints %d\n" |
||
42 | "bInterfaceClass %d\n" |
||
43 | "bInterfaceSubClass %d\n" |
||
44 | "bInterfaceProtocol %d\n" |
||
45 | "iInterface %d\n\n", |
||
46 | i+1, |
||
47 | interface->bLength, |
||
48 | interface->bDescriptorType, |
||
49 | interface->bInterfaceNumber, |
||
50 | interface->bAlternateSetting, |
||
51 | interface->bNumEndpoints, |
||
52 | interface->bInterfaceClass, |
||
53 | interface->bInterfaceSubClass, |
||
54 | interface->bInterfaceProtocol, |
||
55 | interface->iInterface); |
||
56 | |||
57 | |||
58 | |||
59 | |||
60 | "bLength %d\n" |
||
61 | "bDescriptorType %d\n" |
||
62 | "bcdHID %x\n" |
||
63 | "bCountryCode %d\n" |
||
64 | "bNumDescriptors %d\n", |
||
65 | hds->bLength, |
||
66 | hds->bDescriptorType, |
||
67 | hds->bcdHID, |
||
68 | hds->bCountryCode, |
||
69 | hds->bNumDescriptors); |
||
70 | |||
71 | |||
72 | { |
||
73 | dbgprintf("bDescriptorType %d\n" |
||
74 | "wDescriptorLength %d\n", |
||
75 | hds->desc[j].bDescriptorType, |
||
76 | hds->desc[j].wDescriptorLength); |
||
77 | }; |
||
78 | dptr+= hds->bLength; |
||
79 | |||
80 | |||
81 | ep = (endpoint_descr_t*)dptr; |
||
82 | |||
83 | |||
84 | "bLength %d\n" |
||
85 | "bDescriptorType %d\n" |
||
86 | "bEndpointAddress %d\n" |
||
87 | "bmAttributes %d\n" |
||
88 | "wMaxPacketSize %d\n" |
||
89 | "bInterval %d\n", |
||
90 | ep->bLength, ep->bDescriptorType, |
||
91 | ep->bEndpointAddress, ep->bmAttributes, |
||
92 | ep->wMaxPacketSize, ep->bInterval); |
||
93 | dptr+= ep->bLength; |
||
94 | |||
95 | |||
96 | create_hid_mouse(dev, ep); |
||
97 | // } |
||
98 | return true; |
||
1600 | serge | 99 | }; |
1029 | serge | 100 | |
101 | |||
102 | |||
1600 | serge | 103 | { |
1029 | serge | 104 | td_t *td; |
105 | |||
106 | |||
107 | |||
108 | |||
109 | { |
||
110 | struct boot_packet *pkt; |
||
111 | pkt = (struct boot_packet *)rq->data; |
||
112 | SetMouseData(pkt->buttons, pkt->x, -pkt->y, -pkt->z, 0); |
||
113 | }; |
||
114 | td->status = TD_CTRL_ACTIVE | TD_CTRL_IOC | dev->speed; |
||
1605 | serge | 115 | td->token ^= DATA1; |
1029 | serge | 116 | |
117 | |||
1600 | serge | 118 | }; |
1029 | serge | 119 | |
120 | |||
121 | { |
||
122 | request_t *rq; |
||
123 | endp_t enp; |
||
124 | |||
125 | |||
126 | addr_t size; |
||
127 | u32_t toggle; |
||
128 | |||
129 | |||
130 | |||
131 | |||
132 | qh_t *qh; |
||
133 | |||
134 | |||
135 | req_set_conf[4] = {0x0900,0x0001,0x0000,0x0000}; |
||
136 | |||
137 | |||
138 | return; |
||
139 | |||
140 | |||
141 | enp.size = en_d->wMaxPacketSize; |
||
142 | enp.toggle = DATA0; |
||
143 | |||
144 | |||
1600 | serge | 145 | |
1029 | serge | 146 | |
147 | rq->qnum = 6; |
||
1605 | serge | 148 | rq->handler = &mouse_handler; |
1029 | serge | 149 | |
150 | |||
1600 | serge | 151 | |
1029 | serge | 152 | |
153 | }>> |
||
154 |