summaryrefslogtreecommitdiff
path: root/common/usbx_device_classes/src
diff options
context:
space:
mode:
Diffstat (limited to 'common/usbx_device_classes/src')
-rw-r--r--common/usbx_device_classes/src/ux_device_class_audio10_control_process.c64
-rw-r--r--common/usbx_device_classes/src/ux_device_class_audio20_control_process.c63
-rw-r--r--common/usbx_device_classes/src/ux_device_class_audio_entry.c10
-rw-r--r--common/usbx_device_classes/src/ux_device_class_audio_feedback_get.c52
-rw-r--r--common/usbx_device_classes/src/ux_device_class_audio_feedback_set.c52
-rw-r--r--common/usbx_device_classes/src/ux_device_class_audio_frame_write.c57
-rw-r--r--common/usbx_device_classes/src/ux_device_class_audio_initialize.c64
-rw-r--r--common/usbx_device_classes/src/ux_device_class_audio_interrupt_send.c55
-rw-r--r--common/usbx_device_classes/src/ux_device_class_audio_ioctl.c65
-rw-r--r--common/usbx_device_classes/src/ux_device_class_audio_read_frame_free.c57
-rw-r--r--common/usbx_device_classes/src/ux_device_class_audio_read_frame_get.c60
-rw-r--r--common/usbx_device_classes/src/ux_device_class_audio_reception_start.c57
-rw-r--r--common/usbx_device_classes/src/ux_device_class_audio_sample_read16.c58
-rw-r--r--common/usbx_device_classes/src/ux_device_class_audio_sample_read24.c58
-rw-r--r--common/usbx_device_classes/src/ux_device_class_audio_sample_read32.c58
-rw-r--r--common/usbx_device_classes/src/ux_device_class_audio_sample_read8.c57
-rw-r--r--common/usbx_device_classes/src/ux_device_class_audio_stream_get.c70
-rw-r--r--common/usbx_device_classes/src/ux_device_class_audio_transmission_start.c57
-rw-r--r--common/usbx_device_classes/src/ux_device_class_audio_write_frame_commit.c58
-rw-r--r--common/usbx_device_classes/src/ux_device_class_audio_write_frame_get.c60
-rw-r--r--common/usbx_device_classes/src/ux_device_class_ccid_activate.c6
-rw-r--r--common/usbx_device_classes/src/ux_device_class_ccid_auto_seq_done.c6
-rw-r--r--common/usbx_device_classes/src/ux_device_class_ccid_auto_seq_start.c6
-rw-r--r--common/usbx_device_classes/src/ux_device_class_ccid_control_abort.c6
-rw-r--r--common/usbx_device_classes/src/ux_device_class_ccid_hardware_error.c6
-rw-r--r--common/usbx_device_classes/src/ux_device_class_ccid_icc_insert.c6
-rw-r--r--common/usbx_device_classes/src/ux_device_class_ccid_icc_remove.c6
-rw-r--r--common/usbx_device_classes/src/ux_device_class_ccid_initialize.c6
-rw-r--r--common/usbx_device_classes/src/ux_device_class_ccid_notify_task_run.c4
-rw-r--r--common/usbx_device_classes/src/ux_device_class_ccid_notify_thread_entry.c6
-rw-r--r--common/usbx_device_classes/src/ux_device_class_ccid_response.c6
-rw-r--r--common/usbx_device_classes/src/ux_device_class_ccid_runner_task_run.c4
-rw-r--r--common/usbx_device_classes/src/ux_device_class_ccid_runner_thread_entry.c6
-rw-r--r--common/usbx_device_classes/src/ux_device_class_ccid_tasks_run.c4
-rw-r--r--common/usbx_device_classes/src/ux_device_class_ccid_thread_entry.c6
-rw-r--r--common/usbx_device_classes/src/ux_device_class_printer_entry.c9
-rw-r--r--common/usbx_device_classes/src/ux_device_class_printer_initialize.c58
-rw-r--r--common/usbx_device_classes/src/ux_device_class_printer_ioctl.c59
-rw-r--r--common/usbx_device_classes/src/ux_device_class_printer_read.c56
-rw-r--r--common/usbx_device_classes/src/ux_device_class_printer_write.c56
40 files changed, 1367 insertions, 87 deletions
diff --git a/common/usbx_device_classes/src/ux_device_class_audio10_control_process.c b/common/usbx_device_classes/src/ux_device_class_audio10_control_process.c
index f38e9cc..ecd0075 100644
--- a/common/usbx_device_classes/src/ux_device_class_audio10_control_process.c
+++ b/common/usbx_device_classes/src/ux_device_class_audio10_control_process.c
@@ -35,7 +35,7 @@
/* FUNCTION RELEASE */
/* */
/* _ux_device_class_audio10_control_process PORTABLE C */
-/* 6.1.12 */
+/* 6.2.1 */
/* AUTHOR */
/* */
/* Chaoqiong Xiao, Microsoft Corporation */
@@ -66,7 +66,7 @@
/* */
/* CALLED BY */
/* */
-/* ThreadX */
+/* Application */
/* */
/* RELEASE HISTORY */
/* */
@@ -84,6 +84,9 @@
/* 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), */
+/* fixed a macro name, */
+/* resulting in version 6.2.1 */
/* */
/**************************************************************************/
UINT _ux_device_class_audio10_control_process(UX_DEVICE_CLASS_AUDIO *audio,
@@ -180,7 +183,7 @@ ULONG i;
if (sam > max)
sam = max;
control -> ux_device_class_audio10_control_sam_freq = sam;
- control -> ux_device_class_audio10_control_changed = UX_DEVICE_CLASS_AUDIO20_CONTROL_FREQUENCY_CHANGED;
+ control -> ux_device_class_audio10_control_changed = UX_DEVICE_CLASS_AUDIO10_CONTROL_FREQUENCY_CHANGED;
return(UX_SUCCESS);
case UX_DEVICE_CLASS_AUDIO10_GET_CUR:
@@ -335,3 +338,58 @@ ULONG i;
/* Done error. */
return(UX_ERROR);
}
+
+
+/**************************************************************************/
+/* */
+/* FUNCTION RELEASE */
+/* */
+/* _uxe_device_class_audio10_control_process PORTABLE C */
+/* 6.2.1 */
+/* AUTHOR */
+/* */
+/* Chaoqiong Xiao, Microsoft Corporation */
+/* */
+/* DESCRIPTION */
+/* */
+/* This function checks errors in control processing function call. */
+/* */
+/* INPUT */
+/* */
+/* audio Address of audio class */
+/* instance */
+/* transfer Address of transfer request */
+/* instance */
+/* group Request process data */
+/* */
+/* OUTPUT */
+/* */
+/* Completion Status */
+/* */
+/* CALLS */
+/* */
+/* _ux_device_class_audio10_control_process */
+/* Process control requests */
+/* */
+/* CALLED BY */
+/* */
+/* Application */
+/* */
+/* RELEASE HISTORY */
+/* */
+/* DATE NAME DESCRIPTION */
+/* */
+/* 03-08-2023 Chaoqiong Xiao Initial Version 6.2.1 */
+/* */
+/**************************************************************************/
+UINT _uxe_device_class_audio10_control_process(UX_DEVICE_CLASS_AUDIO *audio,
+ UX_SLAVE_TRANSFER *transfer, UX_DEVICE_CLASS_AUDIO10_CONTROL_GROUP *group)
+{
+
+ /* Sanity checks. */
+ if (audio == UX_NULL || transfer == UX_NULL || group == UX_NULL)
+ return(UX_INVALID_PARAMETER);
+
+ /* Process control request. */
+ return(_ux_device_class_audio10_control_process(audio, transfer, group));
+}
diff --git a/common/usbx_device_classes/src/ux_device_class_audio20_control_process.c b/common/usbx_device_classes/src/ux_device_class_audio20_control_process.c
index c98e5fa..270e3bd 100644
--- a/common/usbx_device_classes/src/ux_device_class_audio20_control_process.c
+++ b/common/usbx_device_classes/src/ux_device_class_audio20_control_process.c
@@ -35,7 +35,7 @@
/* FUNCTION RELEASE */
/* */
/* _ux_device_class_audio20_control_process PORTABLE C */
-/* 6.1.12 */
+/* 6.2.1 */
/* AUTHOR */
/* */
/* Chaoqiong Xiao, Microsoft Corporation */
@@ -69,7 +69,7 @@
/* */
/* CALLED BY */
/* */
-/* ThreadX */
+/* Application */
/* */
/* RELEASE HISTORY */
/* */
@@ -89,6 +89,8 @@
/* added support of multiple */
/* sampling frequencies, */
/* resulting in version 6.1.12 */
+/* 03-08-2023 Chaoqiong Xiao Modified comment(s), */
+/* resulting in version 6.2.1 */
/* */
/**************************************************************************/
UINT _ux_device_class_audio20_control_process(UX_DEVICE_CLASS_AUDIO *audio,
@@ -394,3 +396,60 @@ ULONG n_sub, pos, min, max, res, freq;
_ux_device_stack_endpoint_stall(endpoint);
return(UX_ERROR);
}
+
+
+/**************************************************************************/
+/* */
+/* FUNCTION RELEASE */
+/* */
+/* _uxe_device_class_audio20_control_process PORTABLE C */
+/* 6.2.1 */
+/* AUTHOR */
+/* */
+/* Chaoqiong Xiao, Microsoft Corporation */
+/* */
+/* DESCRIPTION */
+/* */
+/* This function checks errors in control request processing function */
+/* call. */
+/* */
+/* INPUT */
+/* */
+/* audio Address of audio class */
+/* instance */
+/* transfer Address of transfer request */
+/* instance */
+/* group Request process data */
+/* */
+/* OUTPUT */
+/* */
+/* Completion Status */
+/* */
+/* CALLS */
+/* */
+/* _ux_device_class_audio20_control_process */
+/* Process control requests */
+/* */
+/* CALLED BY */
+/* */
+/* Application */
+/* */
+/* RELEASE HISTORY */
+/* */
+/* DATE NAME DESCRIPTION */
+/* */
+/* 03-08-2023 Chaoqiong Xiao Initial Version 6.2.1 */
+/* */
+/**************************************************************************/
+UINT _uxe_device_class_audio20_control_process(UX_DEVICE_CLASS_AUDIO *audio,
+ UX_SLAVE_TRANSFER *transfer,
+ UX_DEVICE_CLASS_AUDIO20_CONTROL_GROUP *group)
+{
+
+ /* Sanity checks. */
+ if (audio == UX_NULL || transfer == UX_NULL || group == UX_NULL)
+ return(UX_INVALID_PARAMETER);
+
+ /* Process control requests. */
+ return(_ux_device_class_audio20_control_process(audio, transfer, group));
+}
diff --git a/common/usbx_device_classes/src/ux_device_class_audio_entry.c b/common/usbx_device_classes/src/ux_device_class_audio_entry.c
index cc2e164..e4adb2a 100644
--- a/common/usbx_device_classes/src/ux_device_class_audio_entry.c
+++ b/common/usbx_device_classes/src/ux_device_class_audio_entry.c
@@ -34,7 +34,7 @@
/* FUNCTION RELEASE */
/* */
/* _ux_device_class_audio_entry PORTABLE C */
-/* 6.1.12 */
+/* 6.2.1 */
/* AUTHOR */
/* */
/* Chaoqiong Xiao, Microsoft Corporation */
@@ -77,6 +77,9 @@
/* 07-29-2022 Chaoqiong Xiao Modified comment(s), */
/* returned request status, */
/* resulting in version 6.1.12 */
+/* 03-08-2023 Chaoqiong Xiao Modified comment(s), */
+/* added error checks support, */
+/* resulting in version 6.2.1 */
/* */
/**************************************************************************/
UINT _ux_device_class_audio_entry(UX_SLAVE_CLASS_COMMAND *command)
@@ -93,7 +96,11 @@ UINT status;
case UX_SLAVE_CLASS_COMMAND_INITIALIZE:
/* Call the init function of the Audio class. */
+#if defined(UX_DEVICE_CLASS_AUDIO_ENABLE_ERROR_CHECKING)
+ status = _uxe_device_class_audio_initialize(command);
+#else
status = _ux_device_class_audio_initialize(command);
+#endif
/* Return the completion status. */
return(status);
@@ -157,4 +164,3 @@ UINT status;
return(UX_FUNCTION_NOT_SUPPORTED);
}
}
-
diff --git a/common/usbx_device_classes/src/ux_device_class_audio_feedback_get.c b/common/usbx_device_classes/src/ux_device_class_audio_feedback_get.c
index eede854..7c8539c 100644
--- a/common/usbx_device_classes/src/ux_device_class_audio_feedback_get.c
+++ b/common/usbx_device_classes/src/ux_device_class_audio_feedback_get.c
@@ -115,3 +115,55 @@ UCHAR *buffer;
return(UX_SUCCESS);
#endif
}
+
+/**************************************************************************/
+/* */
+/* FUNCTION RELEASE */
+/* */
+/* _uxe_device_class_audio_feedback_get PORTABLE C */
+/* 6.2.1 */
+/* AUTHOR */
+/* */
+/* Chaoqiong Xiao, Microsoft Corporation */
+/* */
+/* DESCRIPTION */
+/* */
+/* This function checks errors in encoded feedback getting function */
+/* call. */
+/* */
+/* INPUT */
+/* */
+/* stream Address of audio stream */
+/* instance */
+/* encoded_feedback Feedback data (3 or 4 bytes) */
+/* */
+/* OUTPUT */
+/* */
+/* None */
+/* */
+/* CALLS */
+/* */
+/* _ux_device_class_audio_feedback_get Get encoded feedback */
+/* */
+/* CALLED BY */
+/* */
+/* Application */
+/* */
+/* RELEASE HISTORY */
+/* */
+/* DATE NAME DESCRIPTION */
+/* */
+/* 03-08-2023 Chaoqiong Xiao Initial Version 6.2.1 */
+/* */
+/**************************************************************************/
+UINT _uxe_device_class_audio_feedback_get(UX_DEVICE_CLASS_AUDIO_STREAM *stream,
+ UCHAR *encoded_feedback)
+{
+
+ /* Sanity check on input parameters. */
+ if (stream == UX_NULL || encoded_feedback == UX_NULL)
+ return(UX_INVALID_PARAMETER);
+
+ /* Get feedback. */
+ return(_ux_device_class_audio_feedback_get(stream, encoded_feedback));
+}
diff --git a/common/usbx_device_classes/src/ux_device_class_audio_feedback_set.c b/common/usbx_device_classes/src/ux_device_class_audio_feedback_set.c
index 898eeea..000cb4f 100644
--- a/common/usbx_device_classes/src/ux_device_class_audio_feedback_set.c
+++ b/common/usbx_device_classes/src/ux_device_class_audio_feedback_set.c
@@ -115,3 +115,55 @@ UCHAR *buffer;
return(UX_SUCCESS);
#endif
}
+
+/**************************************************************************/
+/* */
+/* FUNCTION RELEASE */
+/* */
+/* _uxe_device_class_audio_feedback_set PORTABLE C */
+/* 6.2.1 */
+/* AUTHOR */
+/* */
+/* Chaoqiong Xiao, Microsoft Corporation */
+/* */
+/* DESCRIPTION */
+/* */
+/* This function checks errors in encoded feedback setting function */
+/* call. */
+/* */
+/* INPUT */
+/* */
+/* stream Address of audio stream */
+/* instance */
+/* encoded_feedback Feedback data (3 or 4 bytes) */
+/* */
+/* OUTPUT */
+/* */
+/* None */
+/* */
+/* CALLS */
+/* */
+/* _ux_device_class_audio_feedback_set Set encoded feedback */
+/* */
+/* CALLED BY */
+/* */
+/* Application */
+/* */
+/* RELEASE HISTORY */
+/* */
+/* DATE NAME DESCRIPTION */
+/* */
+/* 03-08-2023 Chaoqiong Xiao Initial Version 6.2.1 */
+/* */
+/**************************************************************************/
+UINT _uxe_device_class_audio_feedback_set(UX_DEVICE_CLASS_AUDIO_STREAM *stream,
+ UCHAR *encoded_feedback)
+{
+
+ /* Sanity check on input parameters. */
+ if (stream == UX_NULL || encoded_feedback == UX_NULL)
+ return(UX_INVALID_PARAMETER);
+
+ /* Get feedback. */
+ return(_ux_device_class_audio_feedback_set(stream, encoded_feedback));
+}
diff --git a/common/usbx_device_classes/src/ux_device_class_audio_frame_write.c b/common/usbx_device_classes/src/ux_device_class_audio_frame_write.c
index 20538c6..fd7c9ec 100644
--- a/common/usbx_device_classes/src/ux_device_class_audio_frame_write.c
+++ b/common/usbx_device_classes/src/ux_device_class_audio_frame_write.c
@@ -34,7 +34,7 @@
/* FUNCTION RELEASE */
/* */
/* _ux_device_class_audio_frame_write PORTABLE C */
-/* 6.1.10 */
+/* 6.2.1 */
/* AUTHOR */
/* */
/* Chaoqiong Xiao, Microsoft Corporation */
@@ -61,7 +61,7 @@
/* */
/* CALLED BY */
/* */
-/* ThreadX */
+/* Application */
/* */
/* RELEASE HISTORY */
/* */
@@ -75,6 +75,8 @@
/* 01-31-2022 Chaoqiong Xiao Modified comment(s), */
/* fixed frame length check, */
/* resulting in version 6.1.10 */
+/* 03-08-2023 Chaoqiong Xiao Modified comment(s), */
+/* resulting in version 6.2.1 */
/* */
/**************************************************************************/
UINT _ux_device_class_audio_frame_write(UX_DEVICE_CLASS_AUDIO_STREAM *stream, UCHAR *frame, ULONG length)
@@ -132,3 +134,54 @@ ULONG frame_buffer_size;
return(UX_SUCCESS);
}
+/**************************************************************************/
+/* */
+/* FUNCTION RELEASE */
+/* */
+/* _uxe_device_class_audio_frame_write PORTABLE C */
+/* 6.2.1 */
+/* AUTHOR */
+/* */
+/* Chaoqiong Xiao, Microsoft Corporation */
+/* */
+/* DESCRIPTION */
+/* */
+/* This function checks errors in writing frame function call. */
+/* */
+/* INPUT */
+/* */
+/* stream Address of audio stream */
+/* instance */
+/* frame Pointer to buffer to save */
+/* frame data */
+/* length Frame length in bytes */
+/* */
+/* OUTPUT */
+/* */
+/* None */
+/* */
+/* CALLS */
+/* */
+/* _ux_device_class_audio_frame_write Write frame to buffer to send */
+/* */
+/* CALLED BY */
+/* */
+/* Application */
+/* */
+/* RELEASE HISTORY */
+/* */
+/* DATE NAME DESCRIPTION */
+/* */
+/* 03-08-2023 Chaoqiong Xiao Initial Version 6.2.1 */
+/* */
+/**************************************************************************/
+UINT _uxe_device_class_audio_frame_write(UX_DEVICE_CLASS_AUDIO_STREAM *stream, UCHAR *frame, ULONG length)
+{
+
+ /* Sanity checks. */
+ if (stream == UX_NULL || frame == UX_NULL || length == 0)
+ return(UX_INVALID_PARAMETER);
+
+ /* Write to frame. */
+ return(_ux_device_class_audio_frame_write(stream, frame, length));
+}
diff --git a/common/usbx_device_classes/src/ux_device_class_audio_initialize.c b/common/usbx_device_classes/src/ux_device_class_audio_initialize.c
index 4ba297a..d2e74b5 100644
--- a/common/usbx_device_classes/src/ux_device_class_audio_initialize.c
+++ b/common/usbx_device_classes/src/ux_device_class_audio_initialize.c
@@ -446,3 +446,67 @@ ULONG i;
return(status);
}
+
+/**************************************************************************/
+/* */
+/* FUNCTION RELEASE */
+/* */
+/* _uxe_device_class_audio_initialize PORTABLE C */
+/* 6.2.1 */
+/* AUTHOR */
+/* */
+/* Chaoqiong Xiao, Microsoft Corporation */
+/* */
+/* DESCRIPTION */
+/* */
+/* This function checks errors in audio initialization function call. */
+/* */
+/* INPUT */
+/* */
+/* command Pointer to audio command */
+/* */
+/* OUTPUT */
+/* */
+/* Completion Status */
+/* */
+/* CALLS */
+/* */
+/* _ux_device_class_audio_initialize Initialize audio instance */
+/* */
+/* CALLED BY */
+/* */
+/* Device Audio Class */
+/* */
+/* RELEASE HISTORY */
+/* */
+/* DATE NAME DESCRIPTION */
+/* */
+/* 03-08-2023 Chaoqiong Xiao Initial Version 6.2.1 */
+/* */
+/**************************************************************************/
+UINT _uxe_device_class_audio_initialize(UX_SLAVE_CLASS_COMMAND *command)
+{
+
+UX_DEVICE_CLASS_AUDIO_PARAMETER *audio_parameter;
+
+ /* Get the pointer to the application parameters for the audio class. */
+ audio_parameter = (UX_DEVICE_CLASS_AUDIO_PARAMETER *)command -> ux_slave_class_command_parameter;
+
+ /* Sanity checks. */
+
+ /* There must be at least one stream. */
+ if (audio_parameter -> ux_device_class_audio_parameter_streams == UX_NULL ||
+ audio_parameter -> ux_device_class_audio_parameter_streams_nb < 1)
+ return(UX_INVALID_PARAMETER);
+
+#if defined(UX_DEVICE_CLASS_AUDIO_INTERRUPT_SUPPORT)
+
+ /* There must be status setting for event queue. */
+ if (audio_parameter -> ux_device_class_audio_parameter_status_queue_size == 0 ||
+ audio_parameter -> ux_device_class_audio_parameter_status_size == 0)
+ return(UX_INVALID_PARAMETER);
+#endif
+
+ /* Do initialize. */
+ return(_ux_device_class_audio_initialize(command));
+}
diff --git a/common/usbx_device_classes/src/ux_device_class_audio_interrupt_send.c b/common/usbx_device_classes/src/ux_device_class_audio_interrupt_send.c
index eb5d438..3cc4569 100644
--- a/common/usbx_device_classes/src/ux_device_class_audio_interrupt_send.c
+++ b/common/usbx_device_classes/src/ux_device_class_audio_interrupt_send.c
@@ -168,3 +168,58 @@ ULONG i;
return(UX_SUCCESS);
#endif
}
+
+
+/**************************************************************************/
+/* */
+/* FUNCTION RELEASE */
+/* */
+/* _uxe_device_class_audio_interrupt_send PORTABLE C */
+/* 6.2.1 */
+/* AUTHOR */
+/* */
+/* Chaoqiong Xiao, Microsoft Corporation */
+/* */
+/* DESCRIPTION */
+/* */
+/* This function checks errors in queuing audio interrupt data */
+/* function call. */
+/* */
+/* Note the interrupt data size is predefined and not checked: */
+/* - for Audio 1.0 interrupt status word is 2 bytes */
+/* - for Audio 2.0 interrupt data message is 6 bytes */
+/* */
+/* INPUT */
+/* */
+/* audio Address of audio instance */
+/* int_data Interrupt data (2 or 6 bytes) */
+/* */
+/* OUTPUT */
+/* */
+/* None */
+/* */
+/* CALLS */
+/* */
+/* _ux_device_class_audio_interrupt_send Queue interrupt data to send */
+/* */
+/* CALLED BY */
+/* */
+/* Application */
+/* */
+/* RELEASE HISTORY */
+/* */
+/* DATE NAME DESCRIPTION */
+/* */
+/* 03-08-2023 Chaoqiong Xiao Initial Version 6.2.1 */
+/* */
+/**************************************************************************/
+UINT _uxe_device_class_audio_interrupt_send(UX_DEVICE_CLASS_AUDIO *audio, UCHAR *int_data)
+{
+
+ /* Sanity check. */
+ if (audio == UX_NULL || int_data == UX_NULL)
+ return(UX_INVALID_PARAMETER);
+
+ /* Send interrupt data. */
+ return(_ux_device_class_audio_interrupt_send(audio, int_data));
+} \ No newline at end of file
diff --git a/common/usbx_device_classes/src/ux_device_class_audio_ioctl.c b/common/usbx_device_classes/src/ux_device_class_audio_ioctl.c
index d8bee50..a6eb89d 100644
--- a/common/usbx_device_classes/src/ux_device_class_audio_ioctl.c
+++ b/common/usbx_device_classes/src/ux_device_class_audio_ioctl.c
@@ -34,7 +34,7 @@
/* FUNCTION RELEASE */
/* */
/* _ux_device_class_audio_ioctl PORTABLE C */
-/* 6.1 */
+/* 6.2.1 */
/* AUTHOR */
/* */
/* Chaoqiong Xiao, Microsoft Corporation */
@@ -45,10 +45,10 @@
/* */
/* INPUT */
/* */
-/* audio Address of audio class */
-/* instance */
-/* ioctl_function IOCTL function code */
-/* parameter Parameter for function */
+/* audio Address of audio class */
+/* instance */
+/* ioctl_function IOCTL function code */
+/* parameter Parameter for function */
/* */
/* OUTPUT */
/* */
@@ -59,7 +59,7 @@
/* */
/* CALLED BY */
/* */
-/* ThreadX */
+/* Application */
/* */
/* RELEASE HISTORY */
/* */
@@ -68,6 +68,8 @@
/* 05-19-2020 Chaoqiong Xiao Initial Version 6.0 */
/* 09-30-2020 Chaoqiong Xiao Modified comment(s), */
/* resulting in version 6.1 */
+/* 03-08-2023 Chaoqiong Xiao Modified comment(s), */
+/* resulting in version 6.2.1 */
/* */
/**************************************************************************/
UINT _ux_device_class_audio_ioctl(UX_DEVICE_CLASS_AUDIO *audio, ULONG ioctl_function,
@@ -106,3 +108,54 @@ VOID **pptr_parameter;
}
+/**************************************************************************/
+/* */
+/* FUNCTION RELEASE */
+/* */
+/* _uxe_device_class_audio_ioctl PORTABLE C */
+/* 6.2.1 */
+/* AUTHOR */
+/* */
+/* Chaoqiong Xiao, Microsoft Corporation */
+/* */
+/* DESCRIPTION */
+/* */
+/* This function checks errors in ioctl function call. */
+/* */
+/* INPUT */
+/* */
+/* audio Address of audio class */
+/* instance */
+/* ioctl_function IOCTL function code */
+/* parameter Parameter for function */
+/* */
+/* OUTPUT */
+/* */
+/* Status */
+/* */
+/* CALLS */
+/* */
+/* _ux_device_class_audio_ioctl Perform IOCTL function */
+/* */
+/* CALLED BY */
+/* */
+/* Application */
+/* */
+/* RELEASE HISTORY */
+/* */
+/* DATE NAME DESCRIPTION */
+/* */
+/* 03-08-2023 Chaoqiong Xiao Initial Version 6.2.1 */
+/* */
+/**************************************************************************/
+UINT _uxe_device_class_audio_ioctl(UX_DEVICE_CLASS_AUDIO *audio, ULONG ioctl_function,
+ VOID *parameter)
+{
+
+ /* Sanity check. */
+ if (audio == UX_NULL)
+ return(UX_INVALID_PARAMETER);
+
+ /* Dispatch IOCTL commands. */
+ return(_ux_device_class_audio_ioctl(audio, ioctl_function, parameter));
+}
diff --git a/common/usbx_device_classes/src/ux_device_class_audio_read_frame_free.c b/common/usbx_device_classes/src/ux_device_class_audio_read_frame_free.c
index b2430b5..31ba753 100644
--- a/common/usbx_device_classes/src/ux_device_class_audio_read_frame_free.c
+++ b/common/usbx_device_classes/src/ux_device_class_audio_read_frame_free.c
@@ -34,7 +34,7 @@
/* FUNCTION RELEASE */
/* */
/* _ux_device_class_audio_read_frame_free PORTABLE C */
-/* 6.1 */
+/* 6.2.1 */
/* AUTHOR */
/* */
/* Chaoqiong Xiao, Microsoft Corporation */
@@ -57,7 +57,7 @@
/* */
/* CALLED BY */
/* */
-/* ThreadX */
+/* Application */
/* */
/* RELEASE HISTORY */
/* */
@@ -66,6 +66,8 @@
/* 05-19-2020 Chaoqiong Xiao Initial Version 6.0 */
/* 09-30-2020 Chaoqiong Xiao Modified comment(s), */
/* resulting in version 6.1 */
+/* 03-08-2023 Chaoqiong Xiao Modified comment(s), */
+/* resulting in version 6.2.1 */
/* */
/**************************************************************************/
UINT _ux_device_class_audio_read_frame_free(UX_DEVICE_CLASS_AUDIO_STREAM *stream)
@@ -124,3 +126,54 @@ UCHAR *next_frame;
return(UX_SUCCESS);
}
+
+
+/**************************************************************************/
+/* */
+/* FUNCTION RELEASE */
+/* */
+/* _uxe_device_class_audio_read_frame_free PORTABLE C */
+/* 6.2.1 */
+/* AUTHOR */
+/* */
+/* Chaoqiong Xiao, Microsoft Corporation */
+/* */
+/* DESCRIPTION */
+/* */
+/* This function checks errors in freeing access buffer function call. */
+/* */
+/* INPUT */
+/* */
+/* stream Address of audio stream */
+/* instance */
+/* */
+/* OUTPUT */
+/* */
+/* None */
+/* */
+/* CALLS */
+/* */
+/* _ux_device_class_audio_read_frame_free */
+/* Free an item in FIFO */
+/* */
+/* CALLED BY */
+/* */
+/* Application */
+/* */
+/* RELEASE HISTORY */
+/* */
+/* DATE NAME DESCRIPTION */
+/* */
+/* 03-08-2023 Chaoqiong Xiao Initial Version 6.2.1 */
+/* */
+/**************************************************************************/
+UINT _uxe_device_class_audio_read_frame_free(UX_DEVICE_CLASS_AUDIO_STREAM *stream)
+{
+
+ /* Sanity check. */
+ if (stream == UX_NULL)
+ return(UX_INVALID_PARAMETER);
+
+ /* Free frame buffer. */
+ return(_ux_device_class_audio_read_frame_free(stream));
+}
diff --git a/common/usbx_device_classes/src/ux_device_class_audio_read_frame_get.c b/common/usbx_device_classes/src/ux_device_class_audio_read_frame_get.c
index 3cfd71a..fa644e5 100644
--- a/common/usbx_device_classes/src/ux_device_class_audio_read_frame_get.c
+++ b/common/usbx_device_classes/src/ux_device_class_audio_read_frame_get.c
@@ -34,7 +34,7 @@
/* FUNCTION RELEASE */
/* */
/* _ux_device_class_audio_read_frame_get PORTABLE C */
-/* 6.1 */
+/* 6.2.1 */
/* AUTHOR */
/* */
/* Chaoqiong Xiao, Microsoft Corporation */
@@ -61,7 +61,7 @@
/* */
/* CALLED BY */
/* */
-/* ThreadX */
+/* Application */
/* */
/* RELEASE HISTORY */
/* */
@@ -70,6 +70,8 @@
/* 05-19-2020 Chaoqiong Xiao Initial Version 6.0 */
/* 09-30-2020 Chaoqiong Xiao Modified comment(s), */
/* resulting in version 6.1 */
+/* 03-08-2023 Chaoqiong Xiao Modified comment(s), */
+/* resulting in version 6.2.1 */
/* */
/**************************************************************************/
UINT _ux_device_class_audio_read_frame_get(UX_DEVICE_CLASS_AUDIO_STREAM *stream,
@@ -112,3 +114,57 @@ UX_SLAVE_DEVICE *device;
return(UX_SUCCESS);
}
+
+/**************************************************************************/
+/* */
+/* FUNCTION RELEASE */
+/* */
+/* _uxe_device_class_audio_read_frame_get PORTABLE C */
+/* 6.2.1 */
+/* AUTHOR */
+/* */
+/* Chaoqiong Xiao, Microsoft Corporation */
+/* */
+/* DESCRIPTION */
+/* */
+/* This function checks errors in frame buffer getting function call. */
+/* */
+/* INPUT */
+/* */
+/* stream Address of audio stream */
+/* instance */
+/* frame_data Pointer to buffer to save */
+/* pointer to frame data */
+/* frame_length Pointer to buffer to save */
+/* pointer to frame length */
+/* */
+/* OUTPUT */
+/* */
+/* None */
+/* */
+/* CALLS */
+/* */
+/* _ux_device_class_audio_read_frame_get Get buffer from 1st FIFO item */
+/* */
+/* CALLED BY */
+/* */
+/* Application */
+/* */
+/* RELEASE HISTORY */
+/* */
+/* DATE NAME DESCRIPTION */
+/* */
+/* 03-08-2023 Chaoqiong Xiao Initial Version 6.2.1 */
+/* */
+/**************************************************************************/
+UINT _uxe_device_class_audio_read_frame_get(UX_DEVICE_CLASS_AUDIO_STREAM *stream,
+ UCHAR **frame_data, ULONG *frame_length)
+{
+
+ /* Sanity checks. */
+ if (stream == UX_NULL || frame_data == UX_NULL || frame_length == UX_NULL)
+ return(UX_INVALID_PARAMETER);
+
+ /* Get frame access buffer. */
+ return(_ux_device_class_audio_read_frame_get(stream, frame_data, frame_length));
+}
diff --git a/common/usbx_device_classes/src/ux_device_class_audio_reception_start.c b/common/usbx_device_classes/src/ux_device_class_audio_reception_start.c
index 078ce81..f756213 100644
--- a/common/usbx_device_classes/src/ux_device_class_audio_reception_start.c
+++ b/common/usbx_device_classes/src/ux_device_class_audio_reception_start.c
@@ -34,7 +34,7 @@
/* FUNCTION RELEASE */
/* */
/* _ux_device_class_audio_reception_start PORTABLE C */
-/* 6.2.0 */
+/* 6.2.1 */
/* AUTHOR */
/* */
/* Chaoqiong Xiao, Microsoft Corporation */
@@ -58,7 +58,7 @@
/* */
/* CALLED BY */
/* */
-/* ThreadX */
+/* Application */
/* */
/* RELEASE HISTORY */
/* */
@@ -73,6 +73,8 @@
/* 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), */
+/* resulting in version 6.2.1 */
/* */
/**************************************************************************/
UINT _ux_device_class_audio_reception_start(UX_DEVICE_CLASS_AUDIO_STREAM *stream)
@@ -118,3 +120,54 @@ UX_SLAVE_DEVICE *device;
#endif
return(UX_SUCCESS);
}
+
+
+/**************************************************************************/
+/* */
+/* FUNCTION RELEASE */
+/* */
+/* _uxe_device_class_audio_reception_start PORTABLE C */
+/* 6.2.1 */
+/* AUTHOR */
+/* */
+/* Chaoqiong Xiao, Microsoft Corporation */
+/* */
+/* DESCRIPTION */
+/* */
+/* This function checks errors in stream reception start function. */
+/* */
+/* INPUT */
+/* */
+/* stream Address of audio stream */
+/* instance */
+/* */
+/* OUTPUT */
+/* */
+/* None */
+/* */
+/* CALLS */
+/* */
+/* _ux_device_class_audio_reception_start */
+/* Audio stream reception start */
+/* */
+/* CALLED BY */
+/* */
+/* Application */
+/* */
+/* RELEASE HISTORY */
+/* */
+/* DATE NAME DESCRIPTION */
+/* */
+/* 03-08-2023 Chaoqiong Xiao Initial Version 6.2.1 */
+/* */
+/**************************************************************************/
+UINT _uxe_device_class_audio_reception_start(UX_DEVICE_CLASS_AUDIO_STREAM *stream)
+{
+
+ /* Sanity check. */
+ if (stream == UX_NULL)
+ return(UX_INVALID_PARAMETER);
+
+ /* Start reception. */
+ return(_ux_device_class_audio_reception_start(stream));
+}
diff --git a/common/usbx_device_classes/src/ux_device_class_audio_sample_read16.c b/common/usbx_device_classes/src/ux_device_class_audio_sample_read16.c
index 04dbd26..2c9f98d 100644
--- a/common/usbx_device_classes/src/ux_device_class_audio_sample_read16.c
+++ b/common/usbx_device_classes/src/ux_device_class_audio_sample_read16.c
@@ -34,7 +34,7 @@
/* FUNCTION RELEASE */
/* */
/* _ux_device_class_audio_sample_read16 PORTABLE C */
-/* 6.1 */
+/* 6.2.1 */
/* AUTHOR */
/* */
/* Chaoqiong Xiao, Microsoft Corporation */
@@ -59,7 +59,7 @@
/* */
/* CALLED BY */
/* */
-/* ThreadX */
+/* Application */
/* */
/* RELEASE HISTORY */
/* */
@@ -68,6 +68,8 @@
/* 05-19-2020 Chaoqiong Xiao Initial Version 6.0 */
/* 09-30-2020 Chaoqiong Xiao Modified comment(s), */
/* resulting in version 6.1 */
+/* 03-08-2023 Chaoqiong Xiao Modified comment(s), */
+/* resulting in version 6.2.1 */
/* */
/**************************************************************************/
UINT _ux_device_class_audio_sample_read16(UX_DEVICE_CLASS_AUDIO_STREAM *stream,
@@ -141,3 +143,55 @@ ULONG next_frame_sample;
return(UX_SUCCESS);
}
+
+/**************************************************************************/
+/* */
+/* FUNCTION RELEASE */
+/* */
+/* _uxe_device_class_audio_sample_read16 PORTABLE C */
+/* 6.2.1 */
+/* AUTHOR */
+/* */
+/* Chaoqiong Xiao, Microsoft Corporation */
+/* */
+/* DESCRIPTION */
+/* */
+/* This function checks errors in reading 16-bit sample function call. */
+/* */
+/* INPUT */
+/* */
+/* stream Address of audio stream */
+/* instance */
+/* buffer Pointer to buffer to save */
+/* sample data */
+/* */
+/* OUTPUT */
+/* */
+/* None */
+/* */
+/* CALLS */
+/* */
+/* _ux_device_class_audio_sample_read16 Read 16-bit sample */
+/* */
+/* CALLED BY */
+/* */
+/* Application */
+/* */
+/* RELEASE HISTORY */
+/* */
+/* DATE NAME DESCRIPTION */
+/* */
+/* 03-08-2023 Chaoqiong Xiao Initial Version 6.2.1 */
+/* */
+/**************************************************************************/
+UINT _uxe_device_class_audio_sample_read16(UX_DEVICE_CLASS_AUDIO_STREAM *stream,
+ USHORT *buffer)
+{
+
+ /* Sanity check. */
+ if (stream == UX_NULL)
+ return(UX_INVALID_PARAMETER);
+
+ /* Read 16-bit sample. */
+ return(_ux_device_class_audio_sample_read16(stream, buffer));
+}
diff --git a/common/usbx_device_classes/src/ux_device_class_audio_sample_read24.c b/common/usbx_device_classes/src/ux_device_class_audio_sample_read24.c
index cd53dd9..973b4e2 100644
--- a/common/usbx_device_classes/src/ux_device_class_audio_sample_read24.c
+++ b/common/usbx_device_classes/src/ux_device_class_audio_sample_read24.c
@@ -34,7 +34,7 @@
/* FUNCTION RELEASE */
/* */
/* _ux_device_class_audio_sample_read24 PORTABLE C */
-/* 6.1 */
+/* 6.2.1 */
/* AUTHOR */
/* */
/* Chaoqiong Xiao, Microsoft Corporation */
@@ -59,7 +59,7 @@
/* */
/* CALLED BY */
/* */
-/* ThreadX */
+/* Application */
/* */
/* RELEASE HISTORY */
/* */
@@ -68,6 +68,8 @@
/* 05-19-2020 Chaoqiong Xiao Initial Version 6.0 */
/* 09-30-2020 Chaoqiong Xiao Modified comment(s), */
/* resulting in version 6.1 */
+/* 03-08-2023 Chaoqiong Xiao Modified comment(s), */
+/* resulting in version 6.2.1 */
/* */
/**************************************************************************/
UINT _ux_device_class_audio_sample_read24(UX_DEVICE_CLASS_AUDIO_STREAM *stream,
@@ -141,3 +143,55 @@ ULONG next_frame_sample;
return(UX_SUCCESS);
}
+
+/**************************************************************************/
+/* */
+/* FUNCTION RELEASE */
+/* */
+/* _uxe_device_class_audio_sample_read24 PORTABLE C */
+/* 6.2.1 */
+/* AUTHOR */
+/* */
+/* Chaoqiong Xiao, Microsoft Corporation */
+/* */
+/* DESCRIPTION */
+/* */
+/* This function checks errors in reading 24-bit sample function call. */
+/* */
+/* INPUT */
+/* */
+/* stream Address of audio stream */
+/* instance */
+/* buffer Pointer to buffer to save */
+/* sample data */
+/* */
+/* OUTPUT */
+/* */
+/* None */
+/* */
+/* CALLS */
+/* */
+/* _ux_device_class_audio_sample_read24 Read 24-bit sample */
+/* */
+/* CALLED BY */
+/* */
+/* Application */
+/* */
+/* RELEASE HISTORY */
+/* */
+/* DATE NAME DESCRIPTION */
+/* */
+/* 03-08-2023 Chaoqiong Xiao Initial Version 6.2.1 */
+/* */
+/**************************************************************************/
+UINT _uxe_device_class_audio_sample_read24(UX_DEVICE_CLASS_AUDIO_STREAM *stream,
+ ULONG *buffer)
+{
+
+ /* Sanity check. */
+ if (stream == UX_NULL)
+ return(UX_INVALID_PARAMETER);
+
+ /* Read 24-bit sample. */
+ return(_ux_device_class_audio_sample_read24(stream, buffer));
+}
diff --git a/common/usbx_device_classes/src/ux_device_class_audio_sample_read32.c b/common/usbx_device_classes/src/ux_device_class_audio_sample_read32.c
index 0e53daa..e98a40b 100644
--- a/common/usbx_device_classes/src/ux_device_class_audio_sample_read32.c
+++ b/common/usbx_device_classes/src/ux_device_class_audio_sample_read32.c
@@ -34,7 +34,7 @@
/* FUNCTION RELEASE */
/* */
/* _ux_device_class_audio_sample_read32 PORTABLE C */
-/* 6.1 */
+/* 6.2.1 */
/* AUTHOR */
/* */
/* Chaoqiong Xiao, Microsoft Corporation */
@@ -59,7 +59,7 @@
/* */
/* CALLED BY */
/* */
-/* ThreadX */
+/* Application */
/* */
/* RELEASE HISTORY */
/* */
@@ -68,6 +68,8 @@
/* 05-19-2020 Chaoqiong Xiao Initial Version 6.0 */
/* 09-30-2020 Chaoqiong Xiao Modified comment(s), */
/* resulting in version 6.1 */
+/* 03-08-2023 Chaoqiong Xiao Modified comment(s), */
+/* resulting in version 6.2.1 */
/* */
/**************************************************************************/
UINT _ux_device_class_audio_sample_read32(UX_DEVICE_CLASS_AUDIO_STREAM *stream, ULONG *buffer)
@@ -143,3 +145,55 @@ ULONG next_frame_sample;
return(UX_SUCCESS);
}
+
+/**************************************************************************/
+/* */
+/* FUNCTION RELEASE */
+/* */
+/* _uxe_device_class_audio_sample_read32 PORTABLE C */
+/* 6.2.1 */
+/* AUTHOR */
+/* */
+/* Chaoqiong Xiao, Microsoft Corporation */
+/* */
+/* DESCRIPTION */
+/* */
+/* This function checks errors in reading 32-bit sample function call. */
+/* */
+/* INPUT */
+/* */
+/* stream Address of audio stream */
+/* instance */
+/* buffer Pointer to buffer to save */
+/* sample data */
+/* */
+/* OUTPUT */
+/* */
+/* None */
+/* */
+/* CALLS */
+/* */
+/* _ux_device_class_audio_sample_read32 Read 32-bit sample */
+/* */
+/* CALLED BY */
+/* */
+/* Application */
+/* */
+/* RELEASE HISTORY */
+/* */
+/* DATE NAME DESCRIPTION */
+/* */
+/* 03-08-2023 Chaoqiong Xiao Initial Version 6.2.1 */
+/* */
+/**************************************************************************/
+UINT _uxe_device_class_audio_sample_read32(UX_DEVICE_CLASS_AUDIO_STREAM *stream,
+ ULONG *buffer)
+{
+
+ /* Sanity check. */
+ if (stream == UX_NULL)
+ return(UX_INVALID_PARAMETER);
+
+ /* Read 32-bit sample. */
+ return(_ux_device_class_audio_sample_read32(stream, buffer));
+}
diff --git a/common/usbx_device_classes/src/ux_device_class_audio_sample_read8.c b/common/usbx_device_classes/src/ux_device_class_audio_sample_read8.c
index 2eab8e3..b00e1ed 100644
--- a/common/usbx_device_classes/src/ux_device_class_audio_sample_read8.c
+++ b/common/usbx_device_classes/src/ux_device_class_audio_sample_read8.c
@@ -34,7 +34,7 @@
/* FUNCTION RELEASE */
/* */
/* _ux_device_class_audio_sample_read8 PORTABLE C */
-/* 6.1 */
+/* 6.2.1 */
/* AUTHOR */
/* */
/* Chaoqiong Xiao, Microsoft Corporation */
@@ -59,7 +59,7 @@
/* */
/* CALLED BY */
/* */
-/* ThreadX */
+/* Application */
/* */
/* RELEASE HISTORY */
/* */
@@ -68,6 +68,8 @@
/* 05-19-2020 Chaoqiong Xiao Initial Version 6.0 */
/* 09-30-2020 Chaoqiong Xiao Modified comment(s), */
/* resulting in version 6.1 */
+/* 03-08-2023 Chaoqiong Xiao Modified comment(s), */
+/* resulting in version 6.2.1 */
/* */
/**************************************************************************/
UINT _ux_device_class_audio_sample_read8(UX_DEVICE_CLASS_AUDIO_STREAM *stream,
@@ -141,3 +143,54 @@ ULONG next_frame_sample;
return(UX_SUCCESS);
}
+/**************************************************************************/
+/* */
+/* FUNCTION RELEASE */
+/* */
+/* _uxe_device_class_audio_sample_read8 PORTABLE C */
+/* 6.2.1 */
+/* AUTHOR */
+/* */
+/* Chaoqiong Xiao, Microsoft Corporation */
+/* */
+/* DESCRIPTION */
+/* */
+/* This function checks errors in reading 8-bit sample function call. */
+/* */
+/* INPUT */
+/* */
+/* stream Address of audio stream */
+/* instance */
+/* buffer Pointer to buffer to save */
+/* sample data */
+/* */
+/* OUTPUT */
+/* */
+/* None */
+/* */
+/* CALLS */
+/* */
+/* _ux_device_class_audio_sample_read8 Read 8-bit sample */
+/* */
+/* CALLED BY */
+/* */
+/* Application */
+/* */
+/* RELEASE HISTORY */
+/* */
+/* DATE NAME DESCRIPTION */
+/* */
+/* 03-08-2023 Chaoqiong Xiao Initial Version 6.2.1 */
+/* */
+/**************************************************************************/
+UINT _uxe_device_class_audio_sample_read8(UX_DEVICE_CLASS_AUDIO_STREAM *stream,
+ UCHAR *buffer)
+{
+
+ /* Sanity check. */
+ if (stream == UX_NULL)
+ return(UX_INVALID_PARAMETER);
+
+ /* Read 8-bit sample. */
+ return(_ux_device_class_audio_sample_read8(stream, buffer));
+}
diff --git a/common/usbx_device_classes/src/ux_device_class_audio_stream_get.c b/common/usbx_device_classes/src/ux_device_class_audio_stream_get.c
index 1abb5af..71739d4 100644
--- a/common/usbx_device_classes/src/ux_device_class_audio_stream_get.c
+++ b/common/usbx_device_classes/src/ux_device_class_audio_stream_get.c
@@ -34,7 +34,7 @@
/* FUNCTION RELEASE */
/* */
/* _ux_device_class_audio_stream_get PORTABLE C */
-/* 6.1.10 */
+/* 6.2.1 */
/* AUTHOR */
/* */
/* Chaoqiong Xiao, Microsoft Corporation */
@@ -60,7 +60,7 @@
/* */
/* CALLED BY */
/* */
-/* Audio Class */
+/* Application */
/* */
/* RELEASE HISTORY */
/* */
@@ -71,25 +71,79 @@
/* resulting in version 6.1 */
/* 01-31-2022 Chaoqiong Xiao Modified comment(s), */
/* resulting in version 6.1.10 */
+/* 03-08-2023 Chaoqiong Xiao Modified comment(s), */
+/* added error checks support, */
+/* resulting in version 6.2.1 */
/* */
/**************************************************************************/
UINT _ux_device_class_audio_stream_get(UX_DEVICE_CLASS_AUDIO *audio,
ULONG stream_index, UX_DEVICE_CLASS_AUDIO_STREAM **stream)
{
+ /* Store the stream instance found. */
+ *stream = audio -> ux_device_class_audio_streams + stream_index;
+
+ /* Return completion status. */
+ return(UX_SUCCESS);
+}
+
+/**************************************************************************/
+/* */
+/* FUNCTION RELEASE */
+/* */
+/* _uxe_device_class_audio_stream_get PORTABLE C */
+/* 6.2.1 */
+/* AUTHOR */
+/* */
+/* Chaoqiong Xiao, Microsoft Corporation */
+/* */
+/* DESCRIPTION */
+/* */
+/* This function checks errors in stream instance getting function. */
+/* */
+/* INPUT */
+/* */
+/* audio Address of audio class */
+/* instance */
+/* stream_index Stream instance index 0 based */
+/* stream Pointer to buffer to fill */
+/* pointer to stream instance */
+/* */
+/* OUTPUT */
+/* */
+/* Completion Status */
+/* */
+/* CALLS */
+/* */
+/* _ux_device_class_audio_stream_get Get stream instance */
+/* */
+/* CALLED BY */
+/* */
+/* Application */
+/* */
+/* RELEASE HISTORY */
+/* */
+/* DATE NAME DESCRIPTION */
+/* */
+/* 03-08-2023 Chaoqiong Xiao Initial Version 6.2.1 */
+/* */
+/**************************************************************************/
+UINT _uxe_device_class_audio_stream_get(UX_DEVICE_CLASS_AUDIO *audio,
+ ULONG stream_index, UX_DEVICE_CLASS_AUDIO_STREAM **stream)
+{
/* Sanity check. */
if (audio == UX_NULL)
- return(UX_ERROR);
+ return(UX_INVALID_PARAMETER);
/* Index validation. */
if (stream_index >= audio -> ux_device_class_audio_streams_nb)
- return(UX_ERROR);
+ return(UX_INVALID_PARAMETER);
/* Store the stream instance found. */
- if (stream)
- *stream = audio -> ux_device_class_audio_streams + stream_index;
+ if (stream == UX_NULL)
+ return(UX_INVALID_PARAMETER);
- /* Return completion status. */
- return(UX_SUCCESS);
+ /* Get audio stream instance. */
+ return(_ux_device_class_audio_stream_get(audio, stream_index, stream));
}
diff --git a/common/usbx_device_classes/src/ux_device_class_audio_transmission_start.c b/common/usbx_device_classes/src/ux_device_class_audio_transmission_start.c
index 69b58c5..7304637 100644
--- a/common/usbx_device_classes/src/ux_device_class_audio_transmission_start.c
+++ b/common/usbx_device_classes/src/ux_device_class_audio_transmission_start.c
@@ -34,7 +34,7 @@
/* FUNCTION RELEASE */
/* */
/* _ux_device_class_audio_transmission_start PORTABLE C */
-/* 6.2.0 */
+/* 6.2.1 */
/* AUTHOR */
/* */
/* Chaoqiong Xiao, Microsoft Corporation */
@@ -58,7 +58,7 @@
/* */
/* CALLED BY */
/* */
-/* ThreadX */
+/* Application */
/* */
/* RELEASE HISTORY */
/* */
@@ -73,6 +73,8 @@
/* 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), */
+/* resulting in version 6.2.1 */
/* */
/**************************************************************************/
UINT _ux_device_class_audio_transmission_start(UX_DEVICE_CLASS_AUDIO_STREAM *stream)
@@ -118,3 +120,54 @@ UX_SLAVE_DEVICE *device;
#endif
return(UX_SUCCESS);
}
+
+
+/**************************************************************************/
+/* */
+/* FUNCTION RELEASE */
+/* */
+/* _uxe_device_class_audio_transmission_start PORTABLE C */
+/* 6.2.1 */
+/* AUTHOR */
+/* */
+/* Chaoqiong Xiao, Microsoft Corporation */
+/* */
+/* DESCRIPTION */
+/* */
+/* This function checks errors in starting sending function call. */
+/* */
+/* INPUT */
+/* */
+/* stream Address of audio stream */
+/* instance */
+/* */
+/* OUTPUT */
+/* */
+/* None */
+/* */
+/* CALLS */
+/* */
+/* _ux_device_class_audio_transmission_start */
+/* Start transmission */
+/* */
+/* CALLED BY */
+/* */
+/* Application */
+/* */
+/* RELEASE HISTORY */
+/* */
+/* DATE NAME DESCRIPTION */
+/* */
+/* 03-08-2023 Chaoqiong Xiao Initial Version 6.2.1 */
+/* */
+/**************************************************************************/
+UINT _uxe_device_class_audio_transmission_start(UX_DEVICE_CLASS_AUDIO_STREAM *stream)
+{
+
+ /* Sanity check. */
+ if (stream == UX_NULL)
+ return(UX_INVALID_PARAMETER);
+
+ /* Start transmission. */
+ return(_ux_device_class_audio_transmission_start(stream));
+}
diff --git a/common/usbx_device_classes/src/ux_device_class_audio_write_frame_commit.c b/common/usbx_device_classes/src/ux_device_class_audio_write_frame_commit.c
index f772e0f..b040d0a 100644
--- a/common/usbx_device_classes/src/ux_device_class_audio_write_frame_commit.c
+++ b/common/usbx_device_classes/src/ux_device_class_audio_write_frame_commit.c
@@ -34,7 +34,7 @@
/* FUNCTION RELEASE */
/* */
/* _ux_device_class_audio_write_frame_commit PORTABLE C */
-/* 6.1.11 */
+/* 6.2.1 */
/* AUTHOR */
/* */
/* Chaoqiong Xiao, Microsoft Corporation */
@@ -60,7 +60,7 @@
/* */
/* CALLED BY */
/* */
-/* ThreadX */
+/* Application */
/* */
/* RELEASE HISTORY */
/* */
@@ -72,6 +72,8 @@
/* 01-31-2022 Chaoqiong Xiao Modified comment(s), */
/* fixed frame length check, */
/* resulting in version 6.1.10 */
+/* 03-08-2023 Chaoqiong Xiao Modified comment(s), */
+/* resulting in version 6.2.1 */
/* */
/**************************************************************************/
UINT _ux_device_class_audio_write_frame_commit(UX_DEVICE_CLASS_AUDIO_STREAM *stream, ULONG length)
@@ -129,3 +131,55 @@ UCHAR *next_pos;
return(UX_SUCCESS);
}
+
+/**************************************************************************/
+/* */
+/* FUNCTION RELEASE */
+/* */
+/* _uxe_device_class_audio_write_frame_commit PORTABLE C */
+/* 6.2.1 */
+/* AUTHOR */
+/* */
+/* Chaoqiong Xiao, Microsoft Corporation */
+/* */
+/* DESCRIPTION */
+/* */
+/* This function checks errors in setting frame buffer function call. */
+/* */
+/* INPUT */
+/* */
+/* stream Address of audio stream */
+/* instance */
+/* buffer Pointer to buffer to save */
+/* frame data */
+/* length Frame length in bytes */
+/* */
+/* OUTPUT */
+/* */
+/* None */
+/* */
+/* CALLS */
+/* */
+/* _ux_device_class_audio_write_frame_commit */
+/* Append a frame to FIFO */
+/* */
+/* CALLED BY */
+/* */
+/* Application */
+/* */
+/* RELEASE HISTORY */
+/* */
+/* DATE NAME DESCRIPTION */
+/* */
+/* 03-08-2023 Chaoqiong Xiao Initial Version 6.2.1 */
+/* */
+/**************************************************************************/
+UINT _uxe_device_class_audio_write_frame_commit(UX_DEVICE_CLASS_AUDIO_STREAM *stream, ULONG length)
+{
+
+ /* Sanity checks. */
+ if (stream == UX_NULL || length < 1)
+ return(UX_INVALID_PARAMETER);
+
+ return(_ux_device_class_audio_write_frame_commit(stream, length));
+}
diff --git a/common/usbx_device_classes/src/ux_device_class_audio_write_frame_get.c b/common/usbx_device_classes/src/ux_device_class_audio_write_frame_get.c
index ca95236..eec501f 100644
--- a/common/usbx_device_classes/src/ux_device_class_audio_write_frame_get.c
+++ b/common/usbx_device_classes/src/ux_device_class_audio_write_frame_get.c
@@ -34,7 +34,7 @@
/* FUNCTION RELEASE */
/* */
/* _ux_device_class_audio_write_frame_get PORTABLE C */
-/* 6.1 */
+/* 6.2.1 */
/* AUTHOR */
/* */
/* Chaoqiong Xiao, Microsoft Corporation */
@@ -61,7 +61,7 @@
/* */
/* CALLED BY */
/* */
-/* ThreadX */
+/* Application */
/* */
/* RELEASE HISTORY */
/* */
@@ -70,6 +70,8 @@
/* 05-19-2020 Chaoqiong Xiao Initial Version 6.0 */
/* 09-30-2020 Chaoqiong Xiao Modified comment(s), */
/* resulting in version 6.1 */
+/* 03-08-2023 Chaoqiong Xiao Modified comment(s), */
+/* resulting in version 6.2.1 */
/* */
/**************************************************************************/
UINT _ux_device_class_audio_write_frame_get(UX_DEVICE_CLASS_AUDIO_STREAM *stream, UCHAR **frame, ULONG *length)
@@ -113,3 +115,57 @@ UX_SLAVE_DEVICE *device;
return(UX_SUCCESS);
}
+
+/**************************************************************************/
+/* */
+/* FUNCTION RELEASE */
+/* */
+/* _uxe_device_class_audio_write_frame_get PORTABLE C */
+/* 6.2.1 */
+/* AUTHOR */
+/* */
+/* Chaoqiong Xiao, Microsoft Corporation */
+/* */
+/* DESCRIPTION */
+/* */
+/* This function checks errors in getting frame buffer function call. */
+/* */
+/* INPUT */
+/* */
+/* stream Address of audio stream */
+/* instance */
+/* frame Pointer to buffer to save */
+/* frame buffer pointer */
+/* length Pointer to save frame */
+/* buffer length in bytes */
+/* */
+/* OUTPUT */
+/* */
+/* None */
+/* */
+/* CALLS */
+/* */
+/* _ux_device_class_audio_write_frame_get */
+/* Get frame buffer */
+/* */
+/* CALLED BY */
+/* */
+/* Application */
+/* */
+/* RELEASE HISTORY */
+/* */
+/* DATE NAME DESCRIPTION */
+/* */
+/* 03-08-2023 Chaoqiong Xiao Initial Version 6.2.1 */
+/* */
+/**************************************************************************/
+UINT _uxe_device_class_audio_write_frame_get(UX_DEVICE_CLASS_AUDIO_STREAM *stream, UCHAR **frame, ULONG *length)
+{
+
+ /* Sanity checks. */
+ if (stream == UX_NULL || frame == UX_NULL || length == UX_NULL)
+ return(UX_INVALID_PARAMETER);
+
+ /* Get frame buffer and length. */
+ return(_ux_device_class_audio_write_frame_get(stream, frame, length));
+}
diff --git a/common/usbx_device_classes/src/ux_device_class_ccid_activate.c b/common/usbx_device_classes/src/ux_device_class_ccid_activate.c
index ed842da..990f584 100644
--- a/common/usbx_device_classes/src/ux_device_class_ccid_activate.c
+++ b/common/usbx_device_classes/src/ux_device_class_ccid_activate.c
@@ -33,7 +33,7 @@
/* FUNCTION RELEASE */
/* */
/* _ux_device_class_ccid_activate PORTABLE C */
-/* 6.x */
+/* 6.2.1 */
/* AUTHOR */
/* */
/* Chaoqiong Xiao, Microsoft Corporation */
@@ -67,9 +67,9 @@
/* fixed parameter/variable */
/* names conflict C++ keyword, */
/* resulting in version 6.1.12 */
-/* 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 */
/* */
/**************************************************************************/
UINT _ux_device_class_ccid_activate(UX_SLAVE_CLASS_COMMAND *command)
diff --git a/common/usbx_device_classes/src/ux_device_class_ccid_auto_seq_done.c b/common/usbx_device_classes/src/ux_device_class_ccid_auto_seq_done.c
index b3dbf49..5a485eb 100644
--- a/common/usbx_device_classes/src/ux_device_class_ccid_auto_seq_done.c
+++ b/common/usbx_device_classes/src/ux_device_class_ccid_auto_seq_done.c
@@ -33,7 +33,7 @@
/* FUNCTION RELEASE */
/* */
/* _ux_device_class_ccid_auto_seq_done PORTABLE C */
-/* 6.x */
+/* 6.2.1 */
/* AUTHOR */
/* */
/* Chaoqiong Xiao, Microsoft Corporation */
@@ -67,9 +67,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 */
/* */
/**************************************************************************/
UINT _ux_device_class_ccid_auto_seq_done(UX_DEVICE_CLASS_CCID *ccid, ULONG slot, ULONG icc_status)
diff --git a/common/usbx_device_classes/src/ux_device_class_ccid_auto_seq_start.c b/common/usbx_device_classes/src/ux_device_class_ccid_auto_seq_start.c
index a2353e9..e3352ee 100644
--- a/common/usbx_device_classes/src/ux_device_class_ccid_auto_seq_start.c
+++ b/common/usbx_device_classes/src/ux_device_class_ccid_auto_seq_start.c
@@ -33,7 +33,7 @@
/* FUNCTION RELEASE */
/* */
/* _ux_device_class_ccid_auto_seq_start PORTABLE C */
-/* 6.x */
+/* 6.2.1 */
/* AUTHOR */
/* */
/* Chaoqiong Xiao, Microsoft Corporation */
@@ -63,9 +63,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 */
/* */
/**************************************************************************/
UINT _ux_device_class_ccid_auto_seq_start(UX_DEVICE_CLASS_CCID *ccid, ULONG slot)
diff --git a/common/usbx_device_classes/src/ux_device_class_ccid_control_abort.c b/common/usbx_device_classes/src/ux_device_class_ccid_control_abort.c
index f2e7ae5..ab94067 100644
--- a/common/usbx_device_classes/src/ux_device_class_ccid_control_abort.c
+++ b/common/usbx_device_classes/src/ux_device_class_ccid_control_abort.c
@@ -33,7 +33,7 @@
/* FUNCTION RELEASE */
/* */
/* _ux_device_class_ccid_control_abort PORTABLE C */
-/* 6.x */
+/* 6.2.1 */
/* AUTHOR */
/* */
/* Chaoqiong Xiao, Microsoft Corporation */
@@ -64,9 +64,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 */
/* */
/**************************************************************************/
UINT _ux_device_class_ccid_control_abort(UX_DEVICE_CLASS_CCID *ccid, ULONG slot, ULONG seq)
diff --git a/common/usbx_device_classes/src/ux_device_class_ccid_hardware_error.c b/common/usbx_device_classes/src/ux_device_class_ccid_hardware_error.c
index 794a58e..d13a076 100644
--- a/common/usbx_device_classes/src/ux_device_class_ccid_hardware_error.c
+++ b/common/usbx_device_classes/src/ux_device_class_ccid_hardware_error.c
@@ -33,7 +33,7 @@
/* FUNCTION RELEASE */
/* */
/* _ux_device_class_ccid_hardware_error PORTABLE C */
-/* 6.x */
+/* 6.2.1 */
/* AUTHOR */
/* */
/* Chaoqiong Xiao, Microsoft Corporation */
@@ -64,9 +64,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 */
/* */
/**************************************************************************/
UINT _ux_device_class_ccid_hardware_error(UX_DEVICE_CLASS_CCID *ccid, ULONG slot, ULONG error)
diff --git a/common/usbx_device_classes/src/ux_device_class_ccid_icc_insert.c b/common/usbx_device_classes/src/ux_device_class_ccid_icc_insert.c
index 5eb5999..6af4328 100644
--- a/common/usbx_device_classes/src/ux_device_class_ccid_icc_insert.c
+++ b/common/usbx_device_classes/src/ux_device_class_ccid_icc_insert.c
@@ -33,7 +33,7 @@
/* FUNCTION RELEASE */
/* */
/* _ux_device_class_ccid_icc_insert PORTABLE C */
-/* 6.x */
+/* 6.2.1 */
/* AUTHOR */
/* */
/* Chaoqiong Xiao, Microsoft Corporation */
@@ -67,9 +67,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 */
/* */
/**************************************************************************/
UINT _ux_device_class_ccid_icc_insert(UX_DEVICE_CLASS_CCID *ccid, ULONG slot, ULONG seq_start)
diff --git a/common/usbx_device_classes/src/ux_device_class_ccid_icc_remove.c b/common/usbx_device_classes/src/ux_device_class_ccid_icc_remove.c
index 9c88722..ffefc79 100644
--- a/common/usbx_device_classes/src/ux_device_class_ccid_icc_remove.c
+++ b/common/usbx_device_classes/src/ux_device_class_ccid_icc_remove.c
@@ -33,7 +33,7 @@
/* FUNCTION RELEASE */
/* */
/* _ux_device_class_ccid_icc_remove PORTABLE C */
-/* 6.x */
+/* 6.2.1 */
/* AUTHOR */
/* */
/* Chaoqiong Xiao, Microsoft Corporation */
@@ -63,9 +63,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 */
/* */
/**************************************************************************/
UINT _ux_device_class_ccid_icc_remove(UX_DEVICE_CLASS_CCID *ccid, ULONG slot)
diff --git a/common/usbx_device_classes/src/ux_device_class_ccid_initialize.c b/common/usbx_device_classes/src/ux_device_class_ccid_initialize.c
index 50504d0..5e20857 100644
--- a/common/usbx_device_classes/src/ux_device_class_ccid_initialize.c
+++ b/common/usbx_device_classes/src/ux_device_class_ccid_initialize.c
@@ -33,7 +33,7 @@
/* FUNCTION RELEASE */
/* */
/* _ux_device_class_ccid_initialize PORTABLE C */
-/* 6.x */
+/* 6.2.1 */
/* AUTHOR */
/* */
/* Chaoqiong Xiao, Microsoft Corporation */
@@ -72,9 +72,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 */
/* */
/**************************************************************************/
UINT _ux_device_class_ccid_initialize(UX_SLAVE_CLASS_COMMAND *command)
diff --git a/common/usbx_device_classes/src/ux_device_class_ccid_notify_task_run.c b/common/usbx_device_classes/src/ux_device_class_ccid_notify_task_run.c
index 11ac29d..732e93c 100644
--- a/common/usbx_device_classes/src/ux_device_class_ccid_notify_task_run.c
+++ b/common/usbx_device_classes/src/ux_device_class_ccid_notify_task_run.c
@@ -37,7 +37,7 @@
/* FUNCTION RELEASE */
/* */
/* _ux_device_class_ccid_notify_task_run PORTABLE C */
-/* 6.x */
+/* 6.2.1 */
/* AUTHOR */
/* */
/* Chaoqiong Xiao, Microsoft Corporation */
@@ -70,7 +70,7 @@
/* */
/* DATE NAME DESCRIPTION */
/* */
-/* xx-xx-xxxx Chaoqiong Xiao Initial Version 6.x */
+/* 03-08-2023 Chaoqiong Xiao Initial Version 6.2.1 */
/* */
/**************************************************************************/
UINT _ux_device_class_ccid_notify_task_run(UX_DEVICE_CLASS_CCID *ccid)
diff --git a/common/usbx_device_classes/src/ux_device_class_ccid_notify_thread_entry.c b/common/usbx_device_classes/src/ux_device_class_ccid_notify_thread_entry.c
index 91350df..b42638d 100644
--- a/common/usbx_device_classes/src/ux_device_class_ccid_notify_thread_entry.c
+++ b/common/usbx_device_classes/src/ux_device_class_ccid_notify_thread_entry.c
@@ -36,7 +36,7 @@
/* FUNCTION RELEASE */
/* */
/* _ux_device_class_ccid_notify_thread_entry PORTABLE C */
-/* 6.x */
+/* 6.2.1 */
/* AUTHOR */
/* */
/* Chaoqiong Xiao, Microsoft Corporation */
@@ -68,9 +68,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 */
/* */
/**************************************************************************/
VOID _ux_device_class_ccid_notify_thread_entry(ULONG ccid_inst)
diff --git a/common/usbx_device_classes/src/ux_device_class_ccid_response.c b/common/usbx_device_classes/src/ux_device_class_ccid_response.c
index 3d17288..33c24ee 100644
--- a/common/usbx_device_classes/src/ux_device_class_ccid_response.c
+++ b/common/usbx_device_classes/src/ux_device_class_ccid_response.c
@@ -33,7 +33,7 @@
/* FUNCTION RELEASE */
/* */
/* _ux_device_class_ccid_response PORTABLE C */
-/* 6.x */
+/* 6.2.1 */
/* AUTHOR */
/* */
/* Chaoqiong Xiao, Microsoft Corporation */
@@ -64,9 +64,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 */
/* */
/**************************************************************************/
UINT _ux_device_class_ccid_response(UX_DEVICE_CLASS_CCID *ccid, UCHAR *buffer, ULONG length)
diff --git a/common/usbx_device_classes/src/ux_device_class_ccid_runner_task_run.c b/common/usbx_device_classes/src/ux_device_class_ccid_runner_task_run.c
index 0ee07d9..4ba38b9 100644
--- a/common/usbx_device_classes/src/ux_device_class_ccid_runner_task_run.c
+++ b/common/usbx_device_classes/src/ux_device_class_ccid_runner_task_run.c
@@ -37,7 +37,7 @@
/* FUNCTION RELEASE */
/* */
/* _ux_device_class_ccid_runner_task_run PORTABLE C */
-/* 6.x */
+/* 6.2.1 */
/* AUTHOR */
/* */
/* Chaoqiong Xiao, Microsoft Corporation */
@@ -70,7 +70,7 @@
/* */
/* DATE NAME DESCRIPTION */
/* */
-/* xx-xx-xxxx Chaoqiong Xiao Initial Version 6.x */
+/* 03-08-2023 Chaoqiong Xiao Initial Version 6.2.1 */
/* */
/**************************************************************************/
UINT _ux_device_class_ccid_runner_task_run(UX_DEVICE_CLASS_CCID *ccid)
diff --git a/common/usbx_device_classes/src/ux_device_class_ccid_runner_thread_entry.c b/common/usbx_device_classes/src/ux_device_class_ccid_runner_thread_entry.c
index 747d08b..c997889 100644
--- a/common/usbx_device_classes/src/ux_device_class_ccid_runner_thread_entry.c
+++ b/common/usbx_device_classes/src/ux_device_class_ccid_runner_thread_entry.c
@@ -35,7 +35,7 @@
/* FUNCTION RELEASE */
/* */
/* _ux_device_class_ccid_runner_thread_entry PORTABLE C */
-/* 6.x */
+/* 6.2.1 */
/* AUTHOR */
/* */
/* Chaoqiong Xiao, Microsoft Corporation */
@@ -66,9 +66,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 */
/* */
/**************************************************************************/
VOID _ux_device_class_ccid_runner_thread_entry(ULONG ccid_runner)
diff --git a/common/usbx_device_classes/src/ux_device_class_ccid_tasks_run.c b/common/usbx_device_classes/src/ux_device_class_ccid_tasks_run.c
index cc56297..936c0c1 100644
--- a/common/usbx_device_classes/src/ux_device_class_ccid_tasks_run.c
+++ b/common/usbx_device_classes/src/ux_device_class_ccid_tasks_run.c
@@ -40,7 +40,7 @@ static inline UINT _ux_device_class_ccid_rsp_task(UX_DEVICE_CLASS_CCID *ccid);
/* FUNCTION RELEASE */
/* */
/* _ux_device_class_ccid_tasks_run PORTABLE C */
-/* 6.x */
+/* 6.2.1 */
/* AUTHOR */
/* */
/* Chaoqiong Xiao, Microsoft Corporation */
@@ -75,7 +75,7 @@ static inline UINT _ux_device_class_ccid_rsp_task(UX_DEVICE_CLASS_CCID *ccid);
/* */
/* DATE NAME DESCRIPTION */
/* */
-/* xx-xx-xxxx Chaoqiong Xiao Initial Version 6.x */
+/* 03-08-2023 Chaoqiong Xiao Initial Version 6.2.1 */
/* */
/**************************************************************************/
UINT _ux_device_class_ccid_tasks_run(VOID *instance)
diff --git a/common/usbx_device_classes/src/ux_device_class_ccid_thread_entry.c b/common/usbx_device_classes/src/ux_device_class_ccid_thread_entry.c
index d983672..2fb99bc 100644
--- a/common/usbx_device_classes/src/ux_device_class_ccid_thread_entry.c
+++ b/common/usbx_device_classes/src/ux_device_class_ccid_thread_entry.c
@@ -35,7 +35,7 @@
/* FUNCTION RELEASE */
/* */
/* _ux_device_class_ccid_thread_entry PORTABLE C */
-/* 6.x */
+/* 6.2.1 */
/* AUTHOR */
/* */
/* Chaoqiong Xiao, Microsoft Corporation */
@@ -68,9 +68,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 */
/* */
/**************************************************************************/
VOID _ux_device_class_ccid_thread_entry(ULONG ccid_inst)
diff --git a/common/usbx_device_classes/src/ux_device_class_printer_entry.c b/common/usbx_device_classes/src/ux_device_class_printer_entry.c
index b4d00a2..c1eea7d 100644
--- a/common/usbx_device_classes/src/ux_device_class_printer_entry.c
+++ b/common/usbx_device_classes/src/ux_device_class_printer_entry.c
@@ -34,7 +34,7 @@
/* FUNCTION RELEASE */
/* */
/* _ux_device_class_printer_entry PORTABLE C */
-/* 6.1.10 */
+/* 6.2.1 */
/* AUTHOR */
/* */
/* Chaoqiong Xiao, Microsoft Corporation */
@@ -72,6 +72,9 @@
/* DATE NAME DESCRIPTION */
/* */
/* 01-31-2022 Chaoqiong Xiao Initial Version 6.1.10 */
+/* 03-08-2023 Yajun Xia Modified comment(s), */
+/* added error checks support, */
+/* resulting in version 6.2.1 */
/* */
/**************************************************************************/
UINT _ux_device_class_printer_entry(UX_SLAVE_CLASS_COMMAND *command)
@@ -88,7 +91,11 @@ UINT status;
case UX_SLAVE_CLASS_COMMAND_INITIALIZE:
/* Call the init function of the Printer class. */
+#if defined(UX_DEVICE_CLASS_PRINTER_ENABLE_ERROR_CHECKING)
+ status = _uxe_device_class_printer_initialize(command);
+#else
status = _ux_device_class_printer_initialize(command);
+#endif
/* Return the completion status. */
return(status);
diff --git a/common/usbx_device_classes/src/ux_device_class_printer_initialize.c b/common/usbx_device_classes/src/ux_device_class_printer_initialize.c
index f07e446..49722b9 100644
--- a/common/usbx_device_classes/src/ux_device_class_printer_initialize.c
+++ b/common/usbx_device_classes/src/ux_device_class_printer_initialize.c
@@ -148,3 +148,61 @@ UINT status;
/* Return completion status. */
return(UX_SUCCESS);
}
+
+/**************************************************************************/
+/* */
+/* FUNCTION RELEASE */
+/* */
+/* _uxe_device_class_printer_initialize PORTABLE C */
+/* 6.2.1 */
+/* AUTHOR */
+/* */
+/* Yajun Xia, Microsoft Corporation */
+/* */
+/* DESCRIPTION */
+/* */
+/* This function checks errors in printer initialization function call.*/
+/* */
+/* INPUT */
+/* */
+/* command Pointer to printer command */
+/* */
+/* OUTPUT */
+/* */
+/* Completion Status */
+/* */
+/* CALLS */
+/* */
+/* _ux_device_class_printer_initialize Initialize printer instance */
+/* */
+/* CALLED BY */
+/* */
+/* Device Stack */
+/* */
+/* RELEASE HISTORY */
+/* */
+/* DATE NAME DESCRIPTION */
+/* */
+/* 03-08-2023 Yajun Xia Initial Version 6.2.1 */
+/* */
+/**************************************************************************/
+UINT _uxe_device_class_printer_initialize(UX_SLAVE_CLASS_COMMAND *command)
+{
+UX_DEVICE_CLASS_PRINTER_PARAMETER *printer_parameter;
+ULONG length;
+
+ /* Get the pointer to the application parameters for the printer class. */
+ printer_parameter = command -> ux_slave_class_command_parameter;
+
+ /* Sanity checks. */
+
+ /* Length of data (first two bytes in big endian). */
+ length = _ux_utility_short_get_big_endian(printer_parameter -> ux_device_class_printer_device_id);
+
+ if (length > UX_SLAVE_REQUEST_CONTROL_MAX_LENGTH)
+ {
+ return(UX_INVALID_PARAMETER);
+ }
+
+ return (_ux_device_class_printer_initialize(command));
+}
diff --git a/common/usbx_device_classes/src/ux_device_class_printer_ioctl.c b/common/usbx_device_classes/src/ux_device_class_printer_ioctl.c
index c859930..2979b19 100644
--- a/common/usbx_device_classes/src/ux_device_class_printer_ioctl.c
+++ b/common/usbx_device_classes/src/ux_device_class_printer_ioctl.c
@@ -34,7 +34,7 @@
/* FUNCTION RELEASE */
/* */
/* _ux_device_class_printer_ioctl PORTABLE C */
-/* 6.1.10 */
+/* 6.2.1 */
/* AUTHOR */
/* */
/* Chaoqiong Xiao, Microsoft Corporation */
@@ -47,6 +47,8 @@
/* */
/* printer Address of printer class */
/* instance */
+/* ioctl_function Ioctl function */
+/* Parameter Parameter of ioctl function */
/* */
/* OUTPUT */
/* */
@@ -65,6 +67,8 @@
/* DATE NAME DESCRIPTION */
/* */
/* 01-31-2022 Chaoqiong Xiao Initial Version 6.1.10 */
+/* 03-08-2023 Yajun Xia Modified comment(s), */
+/* resulting in version 6.2.1 */
/* */
/**************************************************************************/
UINT _ux_device_class_printer_ioctl(UX_DEVICE_CLASS_PRINTER *printer, ULONG ioctl_function,
@@ -124,3 +128,56 @@ UX_SLAVE_TRANSFER *transfer;
return(status);
}
+
+/**************************************************************************/
+/* */
+/* FUNCTION RELEASE */
+/* */
+/* _uxe_device_class_printer_ioctl PORTABLE C */
+/* 6.2.1 */
+/* AUTHOR */
+/* */
+/* Yajun Xia, Microsoft Corporation */
+/* */
+/* DESCRIPTION */
+/* */
+/* This function checks errors in printer class ioctl function */
+/* */
+/* INPUT */
+/* */
+/* printer Address of printer class */
+/* instance */
+/* ioctl_function Ioctl function */
+/* Parameter Parameter of ioctl function */
+/* */
+/* OUTPUT */
+/* */
+/* Status */
+/* */
+/* CALLS */
+/* */
+/* _ux_device_class_printer_ioctl Printer class ioctl function */
+/* */
+/* CALLED BY */
+/* */
+/* Application */
+/* */
+/* RELEASE HISTORY */
+/* */
+/* DATE NAME DESCRIPTION */
+/* */
+/* 03-08-2023 Yajun Xia Initial Version 6.2.1 */
+/* */
+/**************************************************************************/
+UINT _uxe_device_class_printer_ioctl(UX_DEVICE_CLASS_PRINTER *printer, ULONG ioctl_function,
+ VOID *parameter)
+{
+
+ /* Sanity checks. */
+ if (printer == UX_NULL)
+ {
+ return (UX_INVALID_PARAMETER);
+ }
+
+ return (_ux_device_class_printer_ioctl(printer, ioctl_function, parameter));
+} \ No newline at end of file
diff --git a/common/usbx_device_classes/src/ux_device_class_printer_read.c b/common/usbx_device_classes/src/ux_device_class_printer_read.c
index a1e506b..72297bd 100644
--- a/common/usbx_device_classes/src/ux_device_class_printer_read.c
+++ b/common/usbx_device_classes/src/ux_device_class_printer_read.c
@@ -201,3 +201,59 @@ ULONG local_requested_length;
/* Simply return the last transaction result. */
return(status);
}
+
+/**************************************************************************/
+/* */
+/* FUNCTION RELEASE */
+/* */
+/* _uxe_device_class_printer_read PORTABLE C */
+/* 6.2.1 */
+/* AUTHOR */
+/* */
+/* Yajun Xia, Microsoft Corporation */
+/* */
+/* DESCRIPTION */
+/* */
+/* This function checks errors in printer class read function */
+/* */
+/* INPUT */
+/* */
+/* printer Address of printer class */
+/* instance */
+/* buffer Pointer to buffer to save */
+/* received data */
+/* requested_length Length of bytes to read */
+/* actual_length Pointer to save number of */
+/* bytes read */
+/* */
+/* OUTPUT */
+/* */
+/* None */
+/* */
+/* CALLS */
+/* */
+/* _ux_device_class_printer_read Printer class read function */
+/* */
+/* CALLED BY */
+/* */
+/* Application */
+/* */
+/* RELEASE HISTORY */
+/* */
+/* DATE NAME DESCRIPTION */
+/* */
+/* 03-08-2023 Yajun Xia Initial Version 6.2.1 */
+/* */
+/**************************************************************************/
+UINT _uxe_device_class_printer_read(UX_DEVICE_CLASS_PRINTER *printer, UCHAR *buffer,
+ ULONG requested_length, ULONG *actual_length)
+{
+
+ /* Sanity checks. */
+ if ((printer == UX_NULL) || (buffer == UX_NULL) || (actual_length == UX_NULL))
+ {
+ return (UX_INVALID_PARAMETER);
+ }
+
+ return (_ux_device_class_printer_read(printer, buffer, requested_length, actual_length));
+} \ No newline at end of file
diff --git a/common/usbx_device_classes/src/ux_device_class_printer_write.c b/common/usbx_device_classes/src/ux_device_class_printer_write.c
index 2c10958..b04266e 100644
--- a/common/usbx_device_classes/src/ux_device_class_printer_write.c
+++ b/common/usbx_device_classes/src/ux_device_class_printer_write.c
@@ -225,3 +225,59 @@ UINT status = 0;
/* Simply return the last transaction result. */
return(status);
}
+
+/**************************************************************************/
+/* */
+/* FUNCTION RELEASE */
+/* */
+/* _uxe_device_class_printer_write PORTABLE C */
+/* 6.2.1 */
+/* AUTHOR */
+/* */
+/* Yajun Xia, Microsoft Corporation */
+/* */
+/* DESCRIPTION */
+/* */
+/* This function checks errors in printer class write function */
+/* */
+/* INPUT */
+/* */
+/* printer Address of printer class */
+/* instance */
+/* buffer Pointer to data to write */
+/* requested_length Length of bytes to write, */
+/* set to 0 to issue ZLP */
+/* actual_length Pointer to save number of */
+/* bytes written */
+/* */
+/* OUTPUT */
+/* */
+/* None */
+/* */
+/* CALLS */
+/* */
+/* _ux_device_class_printer_write Printer class write function */
+/* */
+/* CALLED BY */
+/* */
+/* Application */
+/* */
+/* RELEASE HISTORY */
+/* */
+/* DATE NAME DESCRIPTION */
+/* */
+/* 03-08-2023 Yajun Xia Initial Version 6.2.1 */
+/* */
+/**************************************************************************/
+UINT _uxe_device_class_printer_write(UX_DEVICE_CLASS_PRINTER *printer, UCHAR *buffer,
+ ULONG requested_length, ULONG *actual_length)
+{
+
+ /* Sanity checks. */
+ if ((printer == UX_NULL) || (buffer == UX_NULL) || (actual_length == UX_NULL))
+ {
+ return (UX_INVALID_PARAMETER);
+ }
+
+ return (_ux_device_class_printer_write(printer, buffer, requested_length, actual_length));
+} \ No newline at end of file