74 Commits

Author SHA1 Message Date
hathach
8b9cf152a0 rhport argument in usbd_ API() is not used (always use the initialized port)
remove the usage of TUD_OPT_RHPORT in class driver
2022-06-02 16:51:17 +07:00
hathach
d10326cb4e rename TUSB_OPT_DEVICE_ENABLED to CFG_TUD_ENABLED
TUSB_OPT_DEVICE_ENABLED still usable for backward compatible
2022-02-25 18:35:21 +07:00
Tod Kurt
9f014b059a properly handle Program Change and Channel Aftertouch messages 2021-10-25 00:07:59 -07:00
hathach
a7dd5b616c fix -Wnull-dereference in midi_device 2021-10-18 01:11:27 +07:00
hathach
794bbd7177 fix warning 2021-08-02 18:58:27 +07:00
hathach
98e4ba6a12 correct midi available with already stream read 2021-08-02 18:55:12 +07:00
hathach
ebd98e1a18 fix midi stream write return value (off by 1) 2021-07-13 21:09:23 +07:00
hathach
9323a9d094 fix issue when calling midi API when not enumerated yet 2021-06-21 00:00:46 +07:00
hathach
9736e54734
include clean up 2021-05-27 17:40:39 +07:00
Reinhard Panhuber
a1efd41649 Merge remote-tracking branch 'upstream/master' into edpt_ISO_xfer 2021-04-03 09:50:08 +02:00
hathach
48bb96f507 correct midi stream read behavior to read until user buffer is full or no more data from usb fifo 2021-04-02 15:08:36 +07:00
hathach
350eb11277 refactor midi read buffer to stream 2021-04-02 14:52:44 +07:00
hathach
da59c4ad44 rename midi write()/read() to stream_write() stream_read()
also add deprecated for warning and rename hint
2021-04-02 14:43:38 +07:00
hathach
99b78e62f2 removed tud_midi_write24() 2021-04-02 14:34:13 +07:00
hathach
08fe16840f refactor midi write into stream 2021-04-02 14:26:55 +07:00
hathach
6b04efd443 refactor midi stream read 2021-04-02 13:55:51 +07:00
hathach
080b14b292 fix midi tx fifo overflow cause data corruption
rename
2021-04-02 13:26:55 +07:00
hathach
949ff791e0 code format 2021-03-31 00:34:09 +07:00
hathach
b05084e406 remove tud_midi_read_flush() 2021-03-30 23:56:55 +07:00
hathach
c5aa661c89 rename tud_midi_receive/send to tud_midi_packet_read/write 2021-03-30 23:54:17 +07:00
hathach
794083b647 Merge branch 'master' into edpt_ISO_xfer 2021-03-10 17:10:49 +07:00
Reinhard Panhuber
7e56f46957 Extend FIFO mutex to use separate write and read mutexes.
Adjust all USB drivers using FIFO and mutexes.
2021-03-04 13:52:14 +01:00
hathach
33a29c9e4c add midi comment 2021-03-04 19:30:08 +07:00
hathach
aa85099171 fix tud_midi_write24 typo
rename jack_id to cable_num in function argument
2021-02-19 10:51:47 +07:00
Ha Thach
be1bd74b4b
Merge pull request #618 from homeodor/master
A CDC-like blocking behaviour for MIDI, incl. SysEx
2021-02-06 12:30:28 +07:00
Alexander Golovanov
2a34be2eb0
A CDC-like blocking behaviour 2021-01-30 04:11:08 +03:00
Michael Himing
c4f7ea09f1 Fix midi sysex sending bug 2021-01-28 20:31:11 +11:00
hathach
8813f9d3b8 clean up 2020-11-20 15:33:05 +07:00
hathach
e2abb089f4 migrate midi device to new control xfer cb 2020-11-20 15:30:36 +07:00
Reinhard Panhuber
da1c3c226b Change AUDIO_PROTOCOL_V1 to AUDIO_FUNC_PROTOCOL_CODE_UNDEF in midi.c.
The USB specification does not define any AUDIO_PROTOCOL_V1!
2020-09-28 22:44:09 +02:00
Ha Thach
8b2c822557
Merge pull request #512 from mzero/fix-midi-sysex
Fix a bug in writing SysEx messages.
2020-09-23 11:23:53 +07:00
Mark Lentczner
3b0216d3bf
Update midi_device.c
Fix a bug in writing SysEx messages.

At the start of a new USB packet (4 bytes), while in the middle of a SysEx, the code mistakenly
set the buffer length to 4, not the target length. As a consequence, the 3rd and 4th bytes from
the last packet were included, after every byte of the SysEx after the first packet of three.

The fix is simple, as it was just a typo, as can bee seen from the other branches in the same
section of if/else statements: At the start of a new packet, the code should set up the target
length... the buffer length should be left at 2 (as set on line 180).
2020-09-13 15:05:18 -07:00
hathach
801f8b5b38 update claim edpt for hid and midi 2020-09-10 23:32:08 +07:00
hathach
2d8787cdeb fix typo 2020-08-24 15:29:34 +07:00
hathach
a1b7e767af improve midi
- fix #436 tud_midi_rx_cb() not invoked
- fix xfer_cb() not handle ep in
- add ZLP if needed
2020-08-24 14:31:46 +07:00
hathach
881025afdc add new name warning to cdc and midi (skip msc, hid warning for now) 2020-07-17 23:01:39 +07:00
hathach
fea6fb73a1
add fs & hs config for cdc_msc_freertos, midi_test, msc_dual_lun 2020-07-16 13:04:10 +07:00
hathach
10cd3f24bf initial transfer failed in open() shouldn't cause the driver open to fail. 2020-05-28 13:48:02 +07:00
hathach
8f560bf275
update midi open() 2020-05-28 11:41:37 +07:00
hathach
017c95037f add usbd edpt open
- RTT mode is blocking to prevent log lost
- Improve logging message
2020-04-26 14:51:44 +07:00
hathach
c59fa77427 Revert "Merge pull request #359 from versioduo/midi-flow-control"
This reverts commit 1d33aa9b6f7940f9eac07ce684515856940175da, reversing
changes made to 718db7e5369df57b0f49a563737e6e0446fd4c4d.
2020-04-23 23:25:20 +07:00
hathach
3b83813f01 clean up 2020-04-22 00:29:51 +07:00
Kay Sievers
a0598ef369 MIDI - Add flow control to incoming packet stream
Larger SysEx transfers get corrupted by incoming packets.

This changes the FIFOs not to overwrite their data. MIDI should not be
a transport that drops packets. A potentially blocking device is easier
to detect and handle than a device that silently corrupts the packet
stream at random overflows, especially when SysEx messages are involved.
2020-04-19 11:44:15 +02:00
Ha Thach
f9262007ac
Merge pull request #258 from versioduo/midi-packets
MIDI packet interface
2020-04-19 15:43:07 +07:00
hathach
bae570f7c7
tested with midi 2020-04-15 10:30:07 +07:00
Kay Sievers
73228a67ef MIDI: Add packet interface
This changes the internal buffering to the raw 4-byte messages. The
conversion of the messages to a byte-stream moved to the read/write
methods.

It adds a raw packet interface to send and retrieve the raw 4-byte
USB MIDI message:
  static inline bool     tud_midi_receive    (uint8_t packet[4]);
  static inline bool     tud_midi_send       (uint8_t const packet[4]);

MIDI USB packets carry virtual cable/wire/plug data in the packet header,
which cannot be exported in the byte-stream interface. The raw packet
interface allows to send and and receive the complete USB message.
2020-01-16 10:11:37 +01:00
hathach
05fd02194e correct return value of midid_xfer_cb 2020-01-16 11:12:26 +07:00
Nathan Conrad
25c1bea782 Normalize line endings 2020-01-15 14:47:43 -05:00
Peter Lawrence
ff0e7d2bed implement multiple interfaces support 2019-12-28 14:27:32 -06:00
hathach
fe1eadf177 fix #229 2019-11-27 12:34:30 +07:00