Subversion Repositories Kolibri OS

Rev

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