summaryrefslogtreecommitdiff
path: root/common/usbx_device_classes/inc
diff options
context:
space:
mode:
Diffstat (limited to 'common/usbx_device_classes/inc')
-rw-r--r--common/usbx_device_classes/inc/ux_device_class_audio.h91
-rw-r--r--common/usbx_device_classes/inc/ux_device_class_audio10.h27
-rw-r--r--common/usbx_device_classes/inc/ux_device_class_audio20.h24
-rw-r--r--common/usbx_device_classes/inc/ux_device_class_ccid.h6
-rw-r--r--common/usbx_device_classes/inc/ux_device_class_printer.h29
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