MasterPhi
204f3152cb
audio_device : clear fifo on intf change.
2021-07-04 15:46:11 +02:00
MasterPhi
6e9da70c18
Fix audiod_get_AS_interface_index in audio class.
...
Enhance uac2_headset example with multiple sample rates.
Add macro to calculate EP size.
2021-07-04 15:46:10 +02:00
MasterPhi
5877f20d4b
Fix IAR compile error on pointer type.
...
Clean up warnings.
Signed-off-by: MasterPhi <admin@hifiphile.com>
2021-06-29 10:57:26 +02:00
MasterPhi
8433f638e6
Add bracket to switch case, fix warning.
2021-06-20 15:39:47 +02:00
hathach
9736e54734
include clean up
2021-05-27 17:40:39 +07:00
hathach
faa31152b4
rename usbd_edpt_iso_xfer to usbd_edpt_xfer_fifo
2021-05-26 20:34:06 +07:00
Jerzy Kasenberg
74ca1894de
audio_device: Fix build error
...
ep_in_as_intf_num was incorrectly used to access out interface
which is defined for 'in' interface.
Code related to 'out' endpoint should use ep_out_as_intf_num instead.
2021-05-10 15:58:04 +02:00
Reinhard Panhuber
5add664874
Remove n from tu_fifo_get_write_info() and fix bug in vendor class
2021-04-30 17:37:14 +02:00
Reinhard Panhuber
14e2c004cd
Remove variable n in tu_fifo_get_read_info()
2021-04-30 15:08:14 +02:00
Reinhard Panhuber
8f72c97f7b
Change read infos to pointer type
2021-04-30 12:59:12 +02:00
hathach
c9177246d2
temporarily fix include recusrive loop
2021-04-28 12:31:24 +07:00
Reinhard Panhuber
7072f0155e
Change tu_fifo_get_linear_write/read_info() to return a struct
...
Compilers always complain that variables set by function via pointer
might be uninitialized so to avoid that return values are now delivered
via struct.
2021-04-23 11:48:54 +02:00
Reinhard Panhuber
a98d0217a0
Init len_wrap = 0 to fix compiler complains.
2021-04-23 10:47:22 +02:00
Reinhard Panhuber
4dd1f1f3b5
Fix include path in audio_device.h
2021-04-23 10:32:22 +02:00
Reinhard Panhuber
03f974c9b9
Implement functions to allow for DMA usage in audio driver.
...
- Add tud_audio_n_get_ep_out_ff(), tud_audio_n_get_ep_in_ff(),
tud_audio_n_get_rx_support_ff(), and tud_audio_n_get_tx_support_ff()
- Change get_linear_read/write_info() to return linear and wrapped part
at once
- Adjusted affected code in audio_device.c and tested with
audio_4_channel.
2021-04-23 10:27:48 +02:00
Reinhard Panhuber
29bcc83d0f
Remove unnecessary volatile and short audio function index to func_id
2021-04-21 17:01:38 +02:00
Reinhard Panhuber
c7c11b181c
Clean up old depracted and misleading variable names
2021-04-20 20:15:02 +02:00
Reinhard Panhuber
fef0d54559
Refactor static function for better performance
2021-04-20 19:56:40 +02:00
Reinhard Panhuber
4408ffce88
Fix pointer alt_setting to be cleared when driver gets initialized
2021-04-20 18:44:56 +02:00
Reinhard Panhuber
8d9f60ca5e
Improve user feedback in case of wrong configuration of audio driver
2021-04-14 21:52:54 +02:00
Reinhard Panhuber
2134c1a875
Fix defines in audio_device.c
2021-04-08 21:48:36 +02:00
Reinhard Panhuber
4bebb9ca49
Remove depracted defines in audio_device.c
2021-04-08 20:11:51 +02:00
Reinhard Panhuber
8eacdffebd
Optimize encode/decode - refactor unnecessary repetitive division
2021-04-07 20:07:28 +02:00
hathach
58bab86d79
minor clean up
2021-04-06 21:09:23 +07:00
hathach
8b79040c38
code format
2021-04-06 15:34:50 +07:00
hathach
68687ed0f4
fix build
2021-04-06 01:16:51 +07:00
hathach
7ab8da949e
audio driver only use USE_LINEAR_BUFFER = 0 for stm32 synopsys driver
2021-04-06 01:07:32 +07:00
Reinhard Panhuber
1ac9e7e3a7
Fix wrong read mutexes in audio_device.c
2021-04-03 18:22:19 +02:00
Reinhard Panhuber
f6ba58e370
Fix wrong pointer type in audio_device.c
2021-04-03 17:50:30 +02:00
Reinhard Panhuber
4af5189492
Fix potential bug in support FIFO sizes
2021-04-03 16:53:29 +02:00
Reinhard Panhuber
475badd087
Add missing #defines in uac2_headset example
2021-04-03 16:10:46 +02:00
Reinhard Panhuber
fc65f39ff2
Fix error in #defines in uac2_headset
2021-04-03 15:58:41 +02:00
Reinhard Panhuber
ec6b240de2
Fix #define error in audio_device.h
2021-04-03 15:44:44 +02:00
Reinhard Panhuber
6236effb14
Fix #define error in audio_device.h
2021-04-03 15:29:39 +02:00
Reinhard Panhuber
8b90c08b35
Fix #define errors in audio_device.h
2021-04-03 15:24:38 +02:00
Reinhard Panhuber
9b2ddd9cc6
Generalize audio driver for 3 audio functions plus a lot more.
...
- Audio format and parameters are parsed from descriptors thus user no
longer needs to give them explicitely
- Tested for 4 channel software type I PCM encoding with 16 bit with 1
channel per FIFO and 2 channels per FIFO (this is I2S specific)
2021-04-03 09:49:27 +02:00
Reinhard Panhuber
cd491e296e
Intermediate commit
2021-03-14 18:55:16 +01:00
Reinhard Panhuber
d5a5a1cab6
Implement audio PCM type I enc./decoding acc. to 2.3.1.5 Audio Streams
...
Extending capabilities of support FIFOs
Removing copy from to FIFO
Adjusting audio examples
Remove peek/read into other FIFO
2021-03-10 19:32:13 +01: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
Reinhard Panhuber
7b8a08d2e1
Rename dcd_edpt_iso_xfer() to dcd_edpt_xfer_fifo()
2021-03-02 20:00:39 +01:00
Reinhard Panhuber
fc35b3f72d
Switch back OPT_MCU_DA1469X to use linear buffers
2021-03-02 17:24:58 +01:00
Reinhard Panhuber
8ec99694d2
audio_decive clean up and bootstrapping of linear (formerly evade) buff.
2021-03-01 09:09:15 +01:00
Reinhard Panhuber
313dd1439d
Implement dcd_edpt_iso_xfer() for dcd_da146xx.c BUT WITHOUT DMA SUPPORT
2021-02-23 19:41:21 +01:00
Reinhard Panhuber
c098da9803
Implement left and right justifications for 24 to 32 bit PCM encoding
2021-02-18 19:25:08 +01:00
Reinhard Panhuber
681cfd0bf2
Correct for wrong pointer type in audio_device.c
2021-02-18 11:12:16 +01:00
Reinhard Panhuber
53a796a92e
Fix wrong pointer type.
2021-02-17 22:29:40 +01:00
Reinhard Panhuber
eee47493a3
Fix bug in evasion buffer list
2021-02-17 21:59:32 +01:00
Reinhard Panhuber
e407ce463d
Add SAMD MCUs to buffer evasion list
2021-02-17 21:47:01 +01:00
Reinhard Panhuber
189b357b54
Implement an evasion linear buffer for MCUs not capable for EP FIFO
...
Also MCUs using DMAs are within this list, however, these can use an EP
FIFO. There is just no time for implementation
2021-02-17 21:42:44 +01:00
Reinhard Panhuber
9e2a1d2e6a
Fix CFG_TUD_AUDIO_EP_IN/OUT_SW_BUFFER_SIZE to be defined anyway
2021-02-12 18:31:54 +01:00
Reinhard Panhuber
185414721f
Formating
2021-02-12 18:04:45 +01:00
Reinhard Panhuber
a9fd0a454a
Complete redesign of audio driver.
2021-02-12 16:28:41 +01:00
Reinhard Panhuber
84406f1654
Rework audio driver
2021-01-31 19:08:23 +01:00
Reinhard Panhuber
56edc2b261
Change names from edpt_ISO_xfer to edpt_iso_xfer
2021-01-19 10:50:19 +01:00
Reinhard Panhuber
3a3ada0c57
Implement the usage of usbd_edpt_ISO_xfer()
2021-01-18 17:07:15 +01:00
hathach
cebb375eac
migrate audio device to new control xfer cb
2020-11-20 17:20:05 +07:00
Reinhard Panhuber
032e84c9be
Revert dcd_alloc_mem_for_conf() but keep changes from @kasjer for ISO EP
...
Add tud_audio_set_itf_close_EP_cb()
2020-10-09 19:50:05 +02:00
Reinhard Panhuber
f700c08aed
Remove CFG_TUD_AUDIO_TX_DMA_RINGBUFFER_SIZE which is not needed any more
2020-10-07 10:57:12 +02:00
hathach
3f54c27afa
fix audio_test build
2020-10-07 13:36:03 +07:00
Reinhard Panhuber
2050dc0dc7
Revert #define CFG_TUSB_DEBUG 2 to #define CFG_TUSB_DEBUG 0
...
Change 1 << 31 to 0x100000000 in audio.h
2020-10-03 09:46:22 +02:00
Reinhard Panhuber
529622710c
Cleanup for PR.
2020-09-28 18:10:57 +02:00
Jerzy Kasenberg
2ace98e943
audio_device: Update explicit feedback support
...
Feedback can be specified by the user code and will be
sent at feedback endpoint specified interval.
2020-09-28 08:41:17 +02:00
Jerzy Kasenberg
759d530506
audio_device: Allow one FIFO for N channels
...
This allow to build with single FIFO for devices with multiple channels.
Having just one FIFO greatly reduces time needed to feed endpoint.
This change also allows to have one FIFO with 24 bit samples that
is not rounded up to 32 bit elements.
CFG_TUD_AUDIO_RX_ITEMSIZE and CFG_TUD_AUDIO_TX_ITEMSIZE can be manually
defined. This allows to use FIFO more efficiently when 24 bits samples
are already using 3 bytes, in this case there is no need to put them
into FIFO one by one.
For 8, 16, 32 bits samples size efficient FIFO access is always used
when single FIFO is selected.
This also changes FIFO element size to 1, FIFO usage was confusing
in some place it treated content as byte base in other it looked like
ITEM size is to be used. Also bufsize that in most (maybe all) cases
was really meaning item count.
bufsize now mean buffer size in bytes so there is no confusion.
2020-09-28 08:41:17 +02:00
Jerzy Kasenberg
28cf63c7db
audio_device: Fix tud_audio_n_read_flush TU_VERIFY usage
...
void function used TU_VERIFY in a way that returned bool value.
It would not compile.
2020-09-28 08:41:17 +02:00
Jerzy Kasenberg
ca4a42156c
audio_device: Fix audio_rx_done_type_I_pcm_ff_cb bufor size check
...
Function was not checking buffer size correctly due missing parenthesis.
2020-09-28 08:41:17 +02:00
Jerzy Kasenberg
66b091282f
audio_device: Fix audio_rx_done_type_I_pcm_ff_cb prototype
...
Function prototype did not have return type specified by mistake.
2020-09-28 08:41:17 +02:00
Jerzy Kasenberg
e67fc808aa
audio_device: Store rhport in interface data
...
Some API uses interface number as argument, some wants to have
rhport.
To accommodate need of rhport for functions that don't have it
rhport can be extracted from interface data.
2020-09-28 08:41:17 +02:00
Jerzy Kasenberg
f4a44ee063
audio: Update ISO endpoint attributes
...
Explicit feedback attribute was missing.
No synchronization now also has definition.
2020-09-28 08:41:17 +02:00
Jerzy Kasenberg
5ad2f8efc6
audio_device: Fix inline function specifiers
...
Having just inline keyword for function specified in header
may not be enough to generate code for function.
Adding static solves this problem.
static inline is used in all other inline functions in TinyUSB.
2020-09-28 08:41:17 +02:00
Reinhard Panhuber
4e789b240d
Start of sampling works.
2020-09-06 11:37:59 +02:00
Reinhard Panhuber
338e96fa82
Remove tud_audio_n_write_ep_in_buffer() as long as ISO EPs are not RBs.
2020-09-03 18:09:46 +02:00
Reinhard Panhuber
8f0693346c
Allow epin_buf to be written directly into in case no TX FIFOs are used.
...
This is helpful if you have already encoded audio data and want an
efficient way to send it. However, this approach is NOT THREADSAFE so
far and works realiably ONLY IF tud_audio_n_write_ep_in_buffer() is NOT
called form an interrupt!
2020-09-01 11:26:16 +02:00
Reinhard Panhuber
83bd214203
Fix comment.
2020-08-29 13:26:41 +02:00
Reinhard Panhuber
43c4b53635
Fix CFG_TUD_AUDIO_RX_FIFO_SIZE defines.
2020-08-29 13:24:10 +02:00
Reinhard Panhuber
b9c9cfdbac
Change min to tu_min16.
2020-08-29 13:22:21 +02:00
Jerzy Kasenberg
b1f0d6f57e
audio_device: Change CFG_TUD_AUDIO_TX_BUFSIZE to CFG_TUD_AUDIO_TX_FIFO_SIZE
...
CFG_TUD_AUDIO_TX_BUFSIZE seems to be used only in 3 preprocessor
condition while in other places CFG_TUD_AUDIO_TX_FIFO_SIZE is used.
2020-08-25 14:45:40 +02:00
Jerzy Kasenberg
a3eff0c51a
audio_device: Fix NULL pointer access in audiod_xfer_cb
...
b_bytes_copied was pointer with NULL value instead of
plain variable.
NULL pointer was passed to audio_tx_done_cb() and dereference
as well.
Now variable is not a pointer.
2020-08-25 14:35:05 +02:00
Jerzy Kasenberg
a4c096be37
audio_device: Fix FIFO element size discrepancies
...
Buffer for TX and RX FIFO was not taking into account
size of element leading to out of bound access.
audio_tx_done_type_I_pcm_ff_cb() reported copied bytes was not returning
correct value number if channels was omitted in computation.
Transfer size calculation uses simpler arithmetic.
2020-08-25 14:35:05 +02:00
Jerzy Kasenberg
c61e9fb96d
audio_device: Fix descriptor limit calculation
...
In several place p_desc_end calculation was not taking into account
that starting pointer (_audiod_itf[idxDriver].p_desc) was pointing
past interface association descriptor.
It would result in accessing random memory.
2020-08-24 09:04:42 +02:00
Reinhard Panhuber
37be0ca732
Fix formatting, get rid of all tabs.
2020-08-20 20:09:44 +02:00
Reinhard Panhuber
c14f68e2c1
Commit before sharing.
...
Setup a test example - UNTESTED!
Missing: Start transmitting audio data in set_interface.
2020-08-19 21:07:43 +02:00
Reinhard Panhuber
444e4d2821
Add EP close. Fix bug in set_interface within audio.
2020-08-16 13:48:25 +02:00
Reinhard Panhuber
1269bb440a
Fix structure definition audio_control_range_X_n_t
2020-07-25 14:31:25 +02:00
Reinhard Panhuber
d91843bcd2
Get and set requests work
2020-07-25 11:18:50 +02:00
Reinhard Panhuber
141db1278a
Make definition of CFG_TUD_AUDIO_CTRL_BUF_SIZE mandatory
2020-07-20 20:24:05 +02:00
Reinhard Panhuber
fdb156a3bb
Implement control EP0 buffer and get rid of CFG_TUD_AUDIO_USE_TX_FIFO
2020-07-20 20:18:45 +02:00
Reinhard Panhuber
077e881c92
Implement all missing A.17 control selectors
2020-07-19 11:53:35 +02:00
Reinhard Panhuber
47bcedc0b4
Add A.17.4 - Terminal Control Selectors
2020-07-18 19:27:00 +02:00
Reinhard Panhuber
d0f3d03933
Intermediate commit.
2020-07-17 08:40:10 +02:00
Reinhard Panhuber
4362665fb3
Fix mic audio descriptor, fix too strict check on IAD desc. in usbd.c
2020-06-13 12:36:05 +02:00
Reinhard Panhuber
9be2f1bf3d
Add basic UAC2 structure - untested
2020-05-22 12:09:34 +02:00
Nathan Conrad
25c1bea782
Normalize line endings
2020-01-15 14:47:43 -05:00
hathach
e702328093
fix compiling
2019-07-01 23:11:16 +07:00
hathach
6991b28532
improving midi support, adding midi exmaple
...
rename TUSB_DESC_CLASS_SPECIFIC to TUSB_DESC_CS_INTERFACE
2019-07-01 22:38:06 +07:00
hathach
61ec407752
update license year to 2019
2019-05-14 11:48:05 +07:00
hathach
c211ee19dd
migrate license from BSD 3 clause to MIT
2019-03-20 16:11:42 +07:00
Scott Shawcroft
a3173b8de4
Add USB Midi support.
...
It also introduces a txbuffer which copies data into it but passes
the buffer straight to the USB rather than another copy.
2019-01-04 12:16:27 -08:00