| 507 | } |
| 508 | |
| 509 | int GetInput( unsigned char *data, size_t length ) |
| 510 | { |
| 511 | hid_mutex_guard l( &m_dataLock ); |
| 512 | |
| 513 | if ( m_vecData.size() == 0 ) |
| 514 | { |
| 515 | // LOGV( "hid_read_timeout no data available" ); |
| 516 | return 0; |
| 517 | } |
| 518 | |
| 519 | const hid_buffer &buffer = m_vecData.front(); |
| 520 | size_t nDataLen = buffer.size() > length ? length : buffer.size(); |
| 521 | if ( m_bIsBLESteamController ) |
| 522 | { |
| 523 | data[0] = 0x03; |
| 524 | memcpy( data + 1, buffer.data(), nDataLen ); |
| 525 | ++nDataLen; |
| 526 | } |
| 527 | else |
| 528 | { |
| 529 | memcpy( data, buffer.data(), nDataLen ); |
| 530 | } |
| 531 | m_vecData.pop_front(); |
| 532 | |
| 533 | // LOGV("Read %u bytes", nDataLen); |
| 534 | // LOGV("%02x %02x %02x %02x %02x %02x %02x %02x ....", |
| 535 | // data[0], data[1], data[2], data[3], |
| 536 | // data[4], data[5], data[6], data[7]); |
| 537 | |
| 538 | return nDataLen; |
| 539 | } |
| 540 | |
| 541 | int SendOutputReport( const unsigned char *pData, size_t nDataLen ) |
| 542 | { |