diff options
Diffstat (limited to 'common/usbx_device_classes/inc/ux_device_class_audio.h')
| -rw-r--r-- | common/usbx_device_classes/inc/ux_device_class_audio.h | 91 |
1 files changed, 88 insertions, 3 deletions
diff --git a/common/usbx_device_classes/inc/ux_device_class_audio.h b/common/usbx_device_classes/inc/ux_device_class_audio.h index 4cc5be3..63ce8c3 100644 --- a/common/usbx_device_classes/inc/ux_device_class_audio.h +++ b/common/usbx_device_classes/inc/ux_device_class_audio.h @@ -26,7 +26,7 @@ /* COMPONENT DEFINITION RELEASE */ /* */ /* ux_device_class_audio.h PORTABLE C */ -/* 6.2.0 */ +/* 6.2.1 */ /* AUTHOR */ /* */ /* Chaoqiong Xiao, Microsoft Corporation */ @@ -62,6 +62,9 @@ /* 10-31-2022 Yajun Xia Modified comment(s), */ /* added standalone support, */ /* resulting in version 6.2.0 */ +/* 03-08-2023 Chaoqiong Xiao Modified comment(s), */ +/* added error checks support, */ +/* resulting in version 6.2.1 */ /* */ /**************************************************************************/ @@ -85,6 +88,13 @@ extern "C" { /* Compile option: if defined, audio interrupt endpoint is supported. */ /* #define UX_DEVICE_CLASS_AUDIO_INTERRUPT_SUPPORT */ +/* Internal option: enable the basic USBX error checking. This define is typically used + while debugging application. */ +#if defined(UX_ENABLE_ERROR_CHECKING) && !defined(UX_DEVICE_CLASS_AUDIO_ENABLE_ERROR_CHECKING) +#define UX_DEVICE_CLASS_AUDIO_ENABLE_ERROR_CHECKING +#endif + + /* Define Audio Class OS related constants. */ #define UX_DEVICE_CLASS_AUDIO_FEEDBACK_THREAD_STACK_SIZE UX_THREAD_STACK_SIZE @@ -514,12 +524,85 @@ VOID _ux_device_class_audio_interrupt_thread_entry(ULONG audio_inst); UINT _ux_device_class_audio_interrupt_task_function(UX_DEVICE_CLASS_AUDIO *audio); UINT _ux_device_class_audio_interrupt_send(UX_DEVICE_CLASS_AUDIO *audio, UCHAR *int_data); -#if defined(UX_DEVICE_STANDALONE) UINT _ux_device_class_audio_tasks_run(VOID *instance); -#endif + + +UINT _uxe_device_class_audio_initialize(UX_SLAVE_CLASS_COMMAND *command); + +UINT _uxe_device_class_audio_ioctl(UX_DEVICE_CLASS_AUDIO *audio, ULONG ioctl_function, + VOID *parameter); + +UINT _uxe_device_class_audio_stream_get(UX_DEVICE_CLASS_AUDIO *audio, ULONG stream_index, UX_DEVICE_CLASS_AUDIO_STREAM **stream); + +VOID _uxe_device_class_audio_write_thread_entry(ULONG audio_stream); +VOID _uxe_device_class_audio_read_thread_entry(ULONG audio_stream); +UINT _uxe_device_class_audio_write_task_function(UX_DEVICE_CLASS_AUDIO_STREAM *stream); +UINT _uxe_device_class_audio_read_task_function(UX_DEVICE_CLASS_AUDIO_STREAM *stream); +UINT _uxe_device_class_audio_reception_start(UX_DEVICE_CLASS_AUDIO_STREAM *audio); +UINT _uxe_device_class_audio_sample_read8(UX_DEVICE_CLASS_AUDIO_STREAM *audio, UCHAR *sample); +UINT _uxe_device_class_audio_sample_read16(UX_DEVICE_CLASS_AUDIO_STREAM *audio, USHORT *sample); +UINT _uxe_device_class_audio_sample_read24(UX_DEVICE_CLASS_AUDIO_STREAM *audio, ULONG *sample); +UINT _uxe_device_class_audio_sample_read32(UX_DEVICE_CLASS_AUDIO_STREAM *audio, ULONG *sample); + +UINT _uxe_device_class_audio_read_frame_get(UX_DEVICE_CLASS_AUDIO_STREAM *audio, UCHAR **frame_data, ULONG *frame_length); +UINT _uxe_device_class_audio_read_frame_free(UX_DEVICE_CLASS_AUDIO_STREAM *audio); + +UINT _uxe_device_class_audio_transmission_start(UX_DEVICE_CLASS_AUDIO_STREAM *audio); +UINT _uxe_device_class_audio_frame_write(UX_DEVICE_CLASS_AUDIO_STREAM *audio, UCHAR *frame, ULONG length); + +UINT _uxe_device_class_audio_write_frame_get(UX_DEVICE_CLASS_AUDIO_STREAM *audio, UCHAR **buffer, ULONG *max_length); +UINT _uxe_device_class_audio_write_frame_commit(UX_DEVICE_CLASS_AUDIO_STREAM *audio, ULONG length); + +UINT _uxe_device_class_audio_feedback_set(UX_DEVICE_CLASS_AUDIO_STREAM *audio, UCHAR *encoded_feedback); +UINT _uxe_device_class_audio_feedback_get(UX_DEVICE_CLASS_AUDIO_STREAM *audio, UCHAR *encoded_feedback); +ULONG _uxe_device_class_audio_speed_get(UX_DEVICE_CLASS_AUDIO_STREAM *audio); + +VOID _uxe_device_class_audio_interrupt_thread_entry(ULONG audio_inst); +UINT _uxe_device_class_audio_interrupt_task_function(UX_DEVICE_CLASS_AUDIO *audio); +UINT _uxe_device_class_audio_interrupt_send(UX_DEVICE_CLASS_AUDIO *audio, UCHAR *int_data); + /* Define Device Class Audio API prototypes. */ +#if defined(UX_DEVICE_CLASS_AUDIO_ENABLE_ERROR_CHECKING) + +#define ux_device_class_audio_entry _ux_device_class_audio_entry + +#define ux_device_class_audio_read_thread_entry _ux_device_class_audio_read_thread_entry +#define ux_device_class_audio_write_thread_entry _ux_device_class_audio_write_thread_entry + +#define ux_device_class_audio_read_task_function _ux_device_class_audio_read_task_function +#define ux_device_class_audio_write_task_function _ux_device_class_audio_write_task_function + +#define ux_device_class_audio_stream_get _uxe_device_class_audio_stream_get + +#define ux_device_class_audio_reception_start _uxe_device_class_audio_reception_start +#define ux_device_class_audio_sample_read8 _uxe_device_class_audio_sample_read8 +#define ux_device_class_audio_sample_read16 _uxe_device_class_audio_sample_read16 +#define ux_device_class_audio_sample_read24 _uxe_device_class_audio_sample_read24 +#define ux_device_class_audio_sample_read32 _uxe_device_class_audio_sample_read32 + +#define ux_device_class_audio_read_frame_get _uxe_device_class_audio_read_frame_get +#define ux_device_class_audio_read_frame_free _uxe_device_class_audio_read_frame_free + +#define ux_device_class_audio_transmission_start _uxe_device_class_audio_transmission_start +#define ux_device_class_audio_frame_write _uxe_device_class_audio_frame_write + +#define ux_device_class_audio_write_frame_get _uxe_device_class_audio_write_frame_get +#define ux_device_class_audio_write_frame_commit _uxe_device_class_audio_write_frame_commit + +#define ux_device_class_audio_ioctl _uxe_device_class_audio_ioctl + +#define ux_device_class_audio_speed_get _ux_device_class_audio_speed_get +#define ux_device_class_audio_feedback_thread_entry _ux_device_class_audio_feedback_thread_entry +#define ux_device_class_audio_feedback_task_function _ux_device_class_audio_feedback_task_function +#define ux_device_class_audio_feedback_get _uxe_device_class_audio_feedback_get +#define ux_device_class_audio_feedback_set _uxe_device_class_audio_feedback_set + +#define ux_device_class_audio_interrupt_send _uxe_device_class_audio_interrupt_send + +#else + #define ux_device_class_audio_entry _ux_device_class_audio_entry #define ux_device_class_audio_read_thread_entry _ux_device_class_audio_read_thread_entry @@ -555,6 +638,8 @@ UINT _ux_device_class_audio_tasks_run(VOID *instance); #define ux_device_class_audio_interrupt_send _ux_device_class_audio_interrupt_send +#endif + /* Determine if a C++ compiler is being used. If so, complete the standard C conditional started above. */ #ifdef __cplusplus |
