summaryrefslogtreecommitdiff
path: root/src/class
diff options
context:
space:
mode:
authorhathach <[email protected]>2020-10-07 13:36:03 +0700
committerhathach <[email protected]>2020-10-07 13:36:03 +0700
commit3f54c27afa39a3b9f2e5911b566416be460389fb (patch)
tree7c94fcb2b6387895020af98ec5c3e5442f4bcc7f /src/class
parentd41248900bedd705df2ccd5dfc53932cdb0839bb (diff)
fix audio_test build
Diffstat (limited to 'src/class')
-rw-r--r--src/class/audio/audio.h56
-rw-r--r--src/class/audio/audio_device.c8
-rw-r--r--src/class/audio/audio_device.h9
3 files changed, 50 insertions, 23 deletions
diff --git a/src/class/audio/audio.h b/src/class/audio/audio.h
index 7e591fbe6..05e61f8df 100644
--- a/src/class/audio/audio.h
+++ b/src/class/audio/audio.h
@@ -469,28 +469,44 @@ typedef enum
/// Additional Audio Device Class Codes - Source: Audio Data Formats
/// A.1 - Audio Class-Format Type Codes UAC2
-typedef enum
-{
- AUDIO_FORMAT_TYPE_UNDEFINED = 0x00,
- AUDIO_FORMAT_TYPE_I = 0x01,
- AUDIO_FORMAT_TYPE_II = 0x02,
- AUDIO_FORMAT_TYPE_III = 0x03,
- AUDIO_FORMAT_TYPE_IV = 0x04,
- AUDIO_EXT_FORMAT_TYPE_I = 0x81,
- AUDIO_EXT_FORMAT_TYPE_II = 0x82,
- AUDIO_EXT_FORMAT_TYPE_III = 0x83,
-} audio_format_type_t;
+//typedef enum
+//{
+// AUDIO_FORMAT_TYPE_UNDEFINED = 0x00,
+// AUDIO_FORMAT_TYPE_I = 0x01,
+// AUDIO_FORMAT_TYPE_II = 0x02,
+// AUDIO_FORMAT_TYPE_III = 0x03,
+// AUDIO_FORMAT_TYPE_IV = 0x04,
+// AUDIO_EXT_FORMAT_TYPE_I = 0x81,
+// AUDIO_EXT_FORMAT_TYPE_II = 0x82,
+// AUDIO_EXT_FORMAT_TYPE_III = 0x83,
+//} audio_format_type_t;
+
+#define AUDIO_FORMAT_TYPE_UNDEFINED 0x00
+#define AUDIO_FORMAT_TYPE_I 0x01
+#define AUDIO_FORMAT_TYPE_II 0x02
+#define AUDIO_FORMAT_TYPE_III 0x03
+#define AUDIO_FORMAT_TYPE_IV 0x04
+#define AUDIO_EXT_FORMAT_TYPE_I 0x81
+#define AUDIO_EXT_FORMAT_TYPE_II 0x82
+#define AUDIO_EXT_FORMAT_TYPE_III 0x83
/// A.2.1 - Audio Class-Audio Data Format Type I UAC2
-typedef enum
-{
- AUDIO_DATA_FORMAT_TYPE_I_PCM = (uint32_t) (1 << 0),
- AUDIO_DATA_FORMAT_TYPE_I_PCM8 = (uint32_t) (1 << 1),
- AUDIO_DATA_FORMAT_TYPE_I_IEEE_FLOAT = (uint32_t) (1 << 2),
- AUDIO_DATA_FORMAT_TYPE_I_ALAW = (uint32_t) (1 << 3),
- AUDIO_DATA_FORMAT_TYPE_I_MULAW = (uint32_t) (1 << 4),
- AUDIO_DATA_FORMAT_TYPE_I_RAW_DATA = 0x100000000,
-} audio_data_format_type_I_t;
+//typedef enum
+//{
+// AUDIO_DATA_FORMAT_TYPE_I_PCM = (uint32_t) (1 << 0),
+// AUDIO_DATA_FORMAT_TYPE_I_PCM8 = (uint32_t) (1 << 1),
+// AUDIO_DATA_FORMAT_TYPE_I_IEEE_FLOAT = (uint32_t) (1 << 2),
+// AUDIO_DATA_FORMAT_TYPE_I_ALAW = (uint32_t) (1 << 3),
+// AUDIO_DATA_FORMAT_TYPE_I_MULAW = (uint32_t) (1 << 4),
+// AUDIO_DATA_FORMAT_TYPE_I_RAW_DATA = 0x100000000,
+//} audio_data_format_type_I_t;
+
+#define AUDIO_DATA_FORMAT_TYPE_I_PCM ((uint32_t) (1 << 0))
+#define AUDIO_DATA_FORMAT_TYPE_I_PCM8 ((uint32_t) (1 << 1))
+#define AUDIO_DATA_FORMAT_TYPE_I_IEEE_FLOAT ((uint32_t) (1 << 2))
+#define AUDIO_DATA_FORMAT_TYPE_I_ALAW ((uint32_t) (1 << 3))
+#define AUDIO_DATA_FORMAT_TYPE_I_MULAW ((uint32_t) (1 << 4))
+#define AUDIO_DATA_FORMAT_TYPE_I_RAW_DATA 0x100000000
/// All remaining definitions are taken from the descriptor descriptions in the UAC2 main specification
diff --git a/src/class/audio/audio_device.c b/src/class/audio/audio_device.c
index d208d1c84..0f501bb6e 100644
--- a/src/class/audio/audio_device.c
+++ b/src/class/audio/audio_device.c
@@ -564,9 +564,10 @@ static bool audiod_tx_done_type_I_pcm_ff_cb(uint8_t rhport, audiod_interface_t*
for (cntChannel = 1; cntChannel < CFG_TUD_AUDIO_N_CHANNELS_TX; cntChannel++)
{
- if (audio->tx_ff[cntChannel].count / CFG_TUD_AUDIO_TX_ITEMSIZE < nSamplesPerChannelToSend)
+ uint16_t const count = tu_fifo_count(&audio->tx_ff[cntChannel]);
+ if (count / CFG_TUD_AUDIO_TX_ITEMSIZE < nSamplesPerChannelToSend)
{
- nSamplesPerChannelToSend = audio->tx_ff[cntChannel].count * CFG_TUD_AUDIO_TX_ITEMSIZE;
+ nSamplesPerChannelToSend = count * CFG_TUD_AUDIO_TX_ITEMSIZE;
}
}
@@ -782,6 +783,8 @@ void audiod_reset(uint8_t rhport)
uint16_t audiod_open(uint8_t rhport, tusb_desc_interface_t const * itf_desc, uint16_t max_len)
{
+ (void) max_len;
+
TU_VERIFY ( TUSB_CLASS_AUDIO == itf_desc->bInterfaceClass &&
AUDIO_SUBCLASS_CONTROL == itf_desc->bInterfaceSubClass);
@@ -1171,6 +1174,7 @@ bool audiod_control_request(uint8_t rhport, tusb_control_request_t const * p_req
bool audiod_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t result, uint32_t xferred_bytes)
{
(void) result;
+ (void) xferred_bytes;
// Search for interface belonging to given end point address and proceed as required
uint8_t idxDriver;
diff --git a/src/class/audio/audio_device.h b/src/class/audio/audio_device.h
index f4029a84c..ab223de6f 100644
--- a/src/class/audio/audio_device.h
+++ b/src/class/audio/audio_device.h
@@ -33,7 +33,6 @@
#include "device/usbd.h"
#include "audio.h"
-#include "tusb_config.h"
//--------------------------------------------------------------------+
// Class Driver Configuration
@@ -59,6 +58,10 @@
#define CFG_TUD_AUDIO_TX_FIFO_SIZE 0 // Buffer size per channel
#endif
+#ifndef CFG_TUD_AUDIO_TX_DMA_RINGBUFFER_SIZE
+#define CFG_TUD_AUDIO_TX_DMA_RINGBUFFER_SIZE 0
+#endif
+
#if CFG_TUD_AUDIO_TX_FIFO_SIZE && CFG_TUD_AUDIO_TX_DMA_RINGBUFFER_SIZE
#error TX_FIFOs and TX_DMA_RINGBUFFER can not be used simultaneously!
#endif
@@ -193,6 +196,10 @@ uint16_t tud_audio_n_write_ep_in_buffer(uint8_t itf, const void * data, uint16_t
#endif
*/
+#ifndef CFG_TUD_AUDIO_TX_FIFO_COUNT
+#define CFG_TUD_AUDIO_TX_FIFO_COUNT 1
+#endif
+
#if CFG_TUD_AUDIO_EPSIZE_IN && CFG_TUD_AUDIO_TX_FIFO_SIZE
#if CFG_TUD_AUDIO_TX_FIFO_COUNT > 1
uint16_t tud_audio_n_write (uint8_t itf, uint8_t channelId, const void * data, uint16_t len);