diff options
Diffstat (limited to 'common/usbx_device_classes/inc')
5 files changed, 167 insertions, 10 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 diff --git a/common/usbx_device_classes/inc/ux_device_class_audio10.h b/common/usbx_device_classes/inc/ux_device_class_audio10.h index d366ef2..355821d 100644 --- a/common/usbx_device_classes/inc/ux_device_class_audio10.h +++ b/common/usbx_device_classes/inc/ux_device_class_audio10.h @@ -26,7 +26,7 @@ /* COMPONENT DEFINITION RELEASE */ /* */ /* ux_device_class_audio10.h PORTABLE C */ -/* 6.1.12 */ +/* 6.2.1 */ /* AUTHOR */ /* */ /* Chaoqiong Xiao, Microsoft Corporation */ @@ -53,6 +53,10 @@ /* 07-29-2022 Chaoqiong Xiao Modified comment(s), */ /* added sampling control, */ /* resulting in version 6.1.12 */ +/* 03-08-2023 Chaoqiong Xiao Modified comment(s), */ +/* added error checks support, */ +/* fixed a macro name, */ +/* resulting in version 6.2.1 */ /* */ /**************************************************************************/ @@ -70,6 +74,13 @@ extern "C" { #endif +/* 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 specific AC interface descriptor subclasses. */ #define UX_DEVICE_CLASS_AUDIO10_AC_UNDEFINED 0x00 @@ -377,7 +388,7 @@ typedef struct UX_DEVICE_CLASS_AUDIO10_CONTROL_STRUCT #define UX_DEVICE_CLASS_AUDIO10_CONTROL_MUTE_CHANGED 1u #define UX_DEVICE_CLASS_AUDIO10_CONTROL_VOLUME_CHANGED 2u -#define UX_DEVICE_CLASS_AUDIO20_CONTROL_FREQUENCY_CHANGED 4u +#define UX_DEVICE_CLASS_AUDIO10_CONTROL_FREQUENCY_CHANGED 4u typedef struct UX_DEVICE_CLASS_AUDIO10_CONTROL_GROUP_STRUCT { @@ -389,8 +400,20 @@ UINT _ux_device_class_audio10_control_process(UX_DEVICE_CLASS_AUDIO *audio, UX_SLAVE_TRANSFER *transfer_request, UX_DEVICE_CLASS_AUDIO10_CONTROL_GROUP *group); +UINT _uxe_device_class_audio10_control_process(UX_DEVICE_CLASS_AUDIO *audio, + UX_SLAVE_TRANSFER *transfer_request, + UX_DEVICE_CLASS_AUDIO10_CONTROL_GROUP *group); + +#if defined(UX_DEVICE_CLASS_AUDIO_ENABLE_ERROR_CHECKING) + +#define ux_device_class_audio10_control_process _uxe_device_class_audio10_control_process + +#else + #define ux_device_class_audio10_control_process _ux_device_class_audio10_control_process +#endif + /* Determine if a C++ compiler is being used. If so, complete the standard C conditional started above. */ #ifdef __cplusplus diff --git a/common/usbx_device_classes/inc/ux_device_class_audio20.h b/common/usbx_device_classes/inc/ux_device_class_audio20.h index aa7cc4f..7c2da21 100644 --- a/common/usbx_device_classes/inc/ux_device_class_audio20.h +++ b/common/usbx_device_classes/inc/ux_device_class_audio20.h @@ -26,7 +26,7 @@ /* COMPONENT DEFINITION RELEASE */ /* */ /* ux_device_class_audio20.h PORTABLE C */ -/* 6.1.12 */ +/* 6.2.1 */ /* AUTHOR */ /* */ /* Chaoqiong Xiao, Microsoft Corporation */ @@ -55,6 +55,9 @@ /* sampling frequencies, */ /* added clock multiplier DEFs,*/ /* resulting in version 6.1.12 */ +/* 03-08-2023 Chaoqiong Xiao Modified comment(s), */ +/* added error checks support, */ +/* resulting in version 6.2.1 */ /* */ /**************************************************************************/ @@ -72,6 +75,13 @@ extern "C" { #endif +/* 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 function category codes. */ #define UX_DEVICE_CLASS_AUDIO20_CATEGORY_UNDEFINED 0x00 @@ -449,8 +459,20 @@ UINT _ux_device_class_audio20_control_process(UX_DEVICE_CLASS_AUDIO *audio, UX_SLAVE_TRANSFER *transfer, UX_DEVICE_CLASS_AUDIO20_CONTROL_GROUP *group); +UINT _uxe_device_class_audio20_control_process(UX_DEVICE_CLASS_AUDIO *audio, + UX_SLAVE_TRANSFER *transfer, + UX_DEVICE_CLASS_AUDIO20_CONTROL_GROUP *group); + +#if defined(UX_DEVICE_CLASS_AUDIO_ENABLE_ERROR_CHECKING) + +#define ux_device_class_audio20_control_process _uxe_device_class_audio20_control_process + +#else + #define ux_device_class_audio20_control_process _ux_device_class_audio20_control_process +#endif + /* Determine if a C++ compiler is being used. If so, complete the standard C conditional started above. */ #ifdef __cplusplus diff --git a/common/usbx_device_classes/inc/ux_device_class_ccid.h b/common/usbx_device_classes/inc/ux_device_class_ccid.h index a35a76a..4cf51bd 100644 --- a/common/usbx_device_classes/inc/ux_device_class_ccid.h +++ b/common/usbx_device_classes/inc/ux_device_class_ccid.h @@ -24,7 +24,7 @@ /* COMPONENT DEFINITION RELEASE */ /* */ /* ux_device_class_ccid.h PORTABLE C */ -/* 6.x */ +/* 6.2.1 */ /* AUTHOR */ /* */ /* Chaoqiong Xiao, Microsoft Corporation */ @@ -39,9 +39,9 @@ /* DATE NAME DESCRIPTION */ /* */ /* 04-25-2022 Chaoqiong Xiao Initial Version 6.1.11 */ -/* xx-xx-xxxx Chaoqiong Xiao Modified comment(s), */ +/* 03-08-2023 Chaoqiong Xiao Modified comment(s), */ /* added standalone support, */ -/* resulting in version 6.x */ +/* resulting in version 6.2.1 */ /* */ /**************************************************************************/ diff --git a/common/usbx_device_classes/inc/ux_device_class_printer.h b/common/usbx_device_classes/inc/ux_device_class_printer.h index 52ae8ce..80d79dc 100644 --- a/common/usbx_device_classes/inc/ux_device_class_printer.h +++ b/common/usbx_device_classes/inc/ux_device_class_printer.h @@ -24,7 +24,7 @@ /* COMPONENT DEFINITION RELEASE */ /* */ /* ux_device_class_printer.h PORTABLE C */ -/* 6.2.0 */ +/* 6.2.1 */ /* AUTHOR */ /* */ /* Chaoqiong Xiao, Microsoft Corporation */ @@ -47,6 +47,9 @@ /* 10-31-2022 Yajun xia Modified comment(s), */ /* added standalone support, */ /* resulting in version 6.2.0 */ +/* 03-08-2023 Yajun xia Modified comment(s), */ +/* added error checks support, */ +/* resulting in version 6.2.1 */ /* */ /**************************************************************************/ @@ -63,6 +66,12 @@ extern "C" { #endif +/* 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_PRINTER_ENABLE_ERROR_CHECKING) +#define UX_DEVICE_CLASS_PRINTER_ENABLE_ERROR_CHECKING +#endif + /* Defined, _write is pending ZLP automatically (complete transfer) after buffer is sent. */ /* #define UX_DEVICE_CLASS_PRINTER_WRITE_AUTO_ZLP */ @@ -174,13 +183,31 @@ UINT _ux_device_class_printer_read_run(UX_DEVICE_CLASS_PRINTER *printer, UCHAR ULONG requested_length, ULONG *actual_length); #endif +UINT _uxe_device_class_printer_initialize(UX_SLAVE_CLASS_COMMAND *command); +UINT _uxe_device_class_printer_read(UX_DEVICE_CLASS_PRINTER *printer, UCHAR *buffer, + ULONG requested_length, ULONG *actual_length); +UINT _uxe_device_class_printer_write(UX_DEVICE_CLASS_PRINTER *printer, UCHAR *buffer, + ULONG requested_length, ULONG *actual_length); +UINT _uxe_device_class_printer_ioctl(UX_DEVICE_CLASS_PRINTER *printer, ULONG ioctl_function, + VOID *parameter); + /* Define Device Printer Class API prototypes. */ +#if defined(UX_DEVICE_CLASS_PRINTER_ENABLE_ERROR_CHECKING) + +#define ux_device_class_printer_entry _ux_device_class_printer_entry +#define ux_device_class_printer_read _uxe_device_class_printer_read +#define ux_device_class_printer_write _uxe_device_class_printer_write +#define ux_device_class_printer_ioctl _uxe_device_class_printer_ioctl + +#else #define ux_device_class_printer_entry _ux_device_class_printer_entry #define ux_device_class_printer_read _ux_device_class_printer_read #define ux_device_class_printer_write _ux_device_class_printer_write #define ux_device_class_printer_ioctl _ux_device_class_printer_ioctl +#endif + #if defined(UX_DEVICE_STANDALONE) #define ux_device_class_printer_read_run _ux_device_class_printer_read_run #define ux_device_class_printer_write_run _ux_device_class_printer_write_run |
