62 const uint8_t itf_ac = first_itf;
63 uint8_t itf_as = (uint8_t)(first_itf + 1);
67 p =
writeIAD(p, itf_ac, (uint8_t)(1 + num_as));
71 p =
writeStdIface(p, itf_ac, 0, ac_nEps, 0x01 , 0x01 , 0x20 );
74 uint8_t* cs_ac_start = p;
103 const uint16_t cs_ac_len = (uint16_t)(p - cs_ac_start);
104 cs_ac_start[6] = (uint8_t)(cs_ac_len & 0xFF);
105 cs_ac_start[7] = (uint8_t)(cs_ac_len >> 8);
141 uint16_t outLen = (uint16_t)(p - desc);
165 return bytes_per_sample * (uint16_t)(((rate + 999) / 1000) + 1);
195 uint8_t*
writeIAD(uint8_t* p, uint8_t first_itf, uint8_t count) {
209 uint8_t nEps, uint8_t cls, uint8_t sub, uint8_t proto) {
244 if (has_in && !has_out)
return 0x03;
245 if (!has_in && has_out)
return 0x01;
283 uint16_t term_type, uint8_t clock_id) {
289 *p++ = (uint8_t)(term_type & 0xFF);
290 *p++ = (uint8_t)(term_type >> 8);
294 *p++ = (uint8_t)(ch_cfg & 0xFF);
295 *p++ = (uint8_t)((ch_cfg >> 8) & 0xFF);
296 *p++ = (uint8_t)((ch_cfg >> 16) & 0xFF);
297 *p++ = (uint8_t)((ch_cfg >> 24) & 0xFF);
327 *p++ = 0x0F; *p++ = 0x00; *p++ = 0x00; *p++ = 0x00;
330 *p++ = 0x0F; *p++ = 0x00; *p++ = 0x00; *p++ = 0x00;
338 uint8_t src_id, uint8_t clock_id) {
343 *p++ = (uint8_t)(term_type & 0xFF);
344 *p++ = (uint8_t)(term_type >> 8);
360 *p++ = terminal_link;
364 *p++ = 0x01; *p++ = 0x00; *p++ = 0x00; *p++ = 0x00;
366 *p++ = (uint8_t)(ch_cfg & 0xFF);
367 *p++ = (uint8_t)((ch_cfg >> 8) & 0xFF);
368 *p++ = (uint8_t)((ch_cfg >> 16) & 0xFF);
369 *p++ = (uint8_t)((ch_cfg >> 24) & 0xFF);
402 bool const is_in = (ep_addr & 0x80u);
403 bool const is_out = !is_in;
405 if (is_in) bmAttr = 0x05u;
412 *p++ = (uint8_t)(pkt & 0xFF);
413 *p++ = (uint8_t)(pkt >> 8);