usb_message.c 957 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #include "usb_message.h"
  2. CodeIndex code_index_from_data(uint8_t data) {
  3. return (CodeIndex)(data & 0b00001111);
  4. }
  5. uint8_t cable_id_from_data(uint8_t data) {
  6. return (data >> 4) & 0b00001111;
  7. }
  8. uint8_t usb_message_data_size(CodeIndex code_index) {
  9. uint8_t data_size = 0;
  10. switch(code_index) {
  11. case CodeIndexCommon1Byte:
  12. /* case CodeIndexSysExEnd1Byte: */
  13. case CodeIndexSingleByte:
  14. data_size = 1;
  15. break;
  16. case CodeIndexSysEx2Byte:
  17. case CodeIndexSysExEnd2Byte:
  18. case CodeIndexProgramChange:
  19. case CodeIndexChannelPressure:
  20. data_size = 2;
  21. break;
  22. case CodeIndexSysEx3Byte:
  23. case CodeIndexSysExStart:
  24. case CodeIndexSysExEnd3Byte:
  25. case CodeIndexNoteOff:
  26. case CodeIndexNoteOn:
  27. case CodeIndexPolyKeyPress:
  28. case CodeIndexControlChange:
  29. case CodeIndexPitchBendChange:
  30. data_size = 3;
  31. break;
  32. default:
  33. break;
  34. }
  35. return data_size;
  36. }