diff options
| author | Tiejun Zhou <[email protected]> | 2022-10-26 23:43:22 +0000 |
|---|---|---|
| committer | Tiejun Zhou <[email protected]> | 2022-10-26 23:43:22 +0000 |
| commit | 232e89f35b3714d735e3d44c33c0cf419de74504 (patch) | |
| tree | 567402c81a7208f55fea445c3599e3110c8aa361 /common/usbx_device_classes/inc | |
| parent | cd55ec74569aa3fbfbd8f02d025a47c5a51a285a (diff) | |
Release 6.2.0v6.2.0_rel
Diffstat (limited to 'common/usbx_device_classes/inc')
5 files changed, 138 insertions, 11 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 8ce47fa..4cc5be3 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.1.12 */ +/* 6.2.0 */ /* AUTHOR */ /* */ /* Chaoqiong Xiao, Microsoft Corporation */ @@ -59,6 +59,9 @@ /* 07-29-2022 Chaoqiong Xiao Modified comment(s), */ /* added interrupt support, */ /* resulting in version 6.1.12 */ +/* 10-31-2022 Yajun Xia Modified comment(s), */ +/* added standalone support, */ +/* resulting in version 6.2.0 */ /* */ /**************************************************************************/ @@ -310,6 +313,17 @@ extern "C" { #define UX_DEVICE_CLASS_AUDIO_IOCTL_GET_ARG 1 +/* Define Audio Class Task states. */ +#define UX_DEVICE_CLASS_AUDIO_INTERRUPT_STOP (UX_STATE_RESET) +#define UX_DEVICE_CLASS_AUDIO_INTERRUPT_START (UX_STATE_STEP + 1) +#define UX_DEVICE_CLASS_AUDIO_INTERRUPT_WAIT (UX_STATE_STEP + 2) + +#define UX_DEVICE_CLASS_AUDIO_STREAM_RW_STOP (UX_STATE_RESET) +#define UX_DEVICE_CLASS_AUDIO_STREAM_RW_START (UX_STATE_STEP + 1) +#define UX_DEVICE_CLASS_AUDIO_STREAM_RW_WAIT (UX_STATE_STEP + 2) + +#define UX_DEVICE_CLASS_AUDIO_STREAM_FEEDBACK_RW_STOP (UX_STATE_RESET) +#define UX_DEVICE_CLASS_AUDIO_STREAM_FEEDBACK_RW_WAIT (UX_STATE_STEP + 1) /* Define Audio Class callback structure. */ @@ -336,11 +350,20 @@ typedef struct UX_DEVICE_CLASS_AUDIO_STREAM_CALLBACKS_STRUCT typedef struct UX_DEVICE_CLASS_AUDIO_STREAM_PARAMETER_STRUCT { +#if !defined(UX_DEVICE_STANDALONE) ULONG ux_device_class_audio_stream_parameter_thread_stack_size; VOID (*ux_device_class_audio_stream_parameter_thread_entry)(ULONG id); +#else + UINT (*ux_device_class_audio_stream_parameter_task_function)(struct UX_DEVICE_CLASS_AUDIO_STREAM_STRUCT*); +#endif + #if defined(UX_DEVICE_CLASS_AUDIO_FEEDBACK_SUPPORT) +#if !defined(UX_DEVICE_STANDALONE) ULONG ux_device_class_audio_stream_parameter_feedback_thread_stack_size; VOID (*ux_device_class_audio_stream_parameter_feedback_thread_entry)(ULONG id); +#else + UINT (*ux_device_class_audio_stream_parameter_feedback_task_function)(struct UX_DEVICE_CLASS_AUDIO_STREAM_STRUCT*); +#endif #endif UX_DEVICE_CLASS_AUDIO_STREAM_CALLBACKS ux_device_class_audio_stream_parameter_callbacks; @@ -386,6 +409,10 @@ typedef struct UX_DEVICE_CLASS_AUDIO_STREAM_STRUCT #if !defined(UX_DEVICE_STANDALONE) UCHAR *ux_device_class_audio_stream_feedback_thread_stack; UX_THREAD ux_device_class_audio_stream_feedback_thread; +#else + UINT (*ux_device_class_audio_stream_feedback_task_function)(struct UX_DEVICE_CLASS_AUDIO_STREAM_STRUCT*); + UINT ux_device_class_audio_stream_feedback_task_state; + UINT ux_device_class_audio_stream_feedback_task_status; #endif #endif @@ -394,11 +421,16 @@ typedef struct UX_DEVICE_CLASS_AUDIO_STREAM_STRUCT #if !defined(UX_DEVICE_STANDALONE) UCHAR *ux_device_class_audio_stream_thread_stack; UX_THREAD ux_device_class_audio_stream_thread; +#else + UINT (*ux_device_class_audio_stream_task_function)(struct UX_DEVICE_CLASS_AUDIO_STREAM_STRUCT*); + UINT ux_device_class_audio_stream_task_state; + UINT ux_device_class_audio_stream_task_status; #endif UCHAR *ux_device_class_audio_stream_buffer; ULONG ux_device_class_audio_stream_buffer_size; ULONG ux_device_class_audio_stream_frame_buffer_size; + ULONG ux_device_class_audio_stream_buffer_error_count; UX_DEVICE_CLASS_AUDIO_FRAME *ux_device_class_audio_stream_transfer_pos; UX_DEVICE_CLASS_AUDIO_FRAME *ux_device_class_audio_stream_access_pos; @@ -429,6 +461,9 @@ typedef struct UX_DEVICE_CLASS_AUDIO_STRUCT #if !defined(UX_DEVICE_STANDALONE) UX_SEMAPHORE ux_device_class_audio_status_semaphore; UX_MUTEX ux_device_class_audio_status_mutex; +#else + UINT ux_device_class_audio_interrupt_task_state; + UINT ux_device_class_audio_interrupt_task_status; #endif #endif } UX_DEVICE_CLASS_AUDIO; @@ -452,7 +487,8 @@ UINT _ux_device_class_audio_stream_get(UX_DEVICE_CLASS_AUDIO *audio, ULONG st VOID _ux_device_class_audio_write_thread_entry(ULONG audio_stream); VOID _ux_device_class_audio_read_thread_entry(ULONG audio_stream); - +UINT _ux_device_class_audio_write_task_function(UX_DEVICE_CLASS_AUDIO_STREAM *stream); +UINT _ux_device_class_audio_read_task_function(UX_DEVICE_CLASS_AUDIO_STREAM *stream); UINT _ux_device_class_audio_reception_start(UX_DEVICE_CLASS_AUDIO_STREAM *audio); UINT _ux_device_class_audio_sample_read8(UX_DEVICE_CLASS_AUDIO_STREAM *audio, UCHAR *sample); UINT _ux_device_class_audio_sample_read16(UX_DEVICE_CLASS_AUDIO_STREAM *audio, USHORT *sample); @@ -469,13 +505,18 @@ UINT _ux_device_class_audio_write_frame_get(UX_DEVICE_CLASS_AUDIO_STREAM *aud UINT _ux_device_class_audio_write_frame_commit(UX_DEVICE_CLASS_AUDIO_STREAM *audio, ULONG length); VOID _ux_device_class_audio_feedback_thread_entry(ULONG audio_stream); +UINT _ux_device_class_audio_feedback_task_function(UX_DEVICE_CLASS_AUDIO_STREAM *stream); UINT _ux_device_class_audio_feedback_set(UX_DEVICE_CLASS_AUDIO_STREAM *audio, UCHAR *encoded_feedback); UINT _ux_device_class_audio_feedback_get(UX_DEVICE_CLASS_AUDIO_STREAM *audio, UCHAR *encoded_feedback); ULONG _ux_device_class_audio_speed_get(UX_DEVICE_CLASS_AUDIO_STREAM *audio); 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 /* Define Device Class Audio API prototypes. */ @@ -484,6 +525,9 @@ UINT _ux_device_class_audio_interrupt_send(UX_DEVICE_CLASS_AUDIO *audio, UCHA #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 _ux_device_class_audio_stream_get #define ux_device_class_audio_reception_start _ux_device_class_audio_reception_start @@ -505,6 +549,7 @@ UINT _ux_device_class_audio_interrupt_send(UX_DEVICE_CLASS_AUDIO *audio, UCHA #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 _ux_device_class_audio_feedback_get #define ux_device_class_audio_feedback_set _ux_device_class_audio_feedback_set diff --git a/common/usbx_device_classes/inc/ux_device_class_cdc_ecm.h b/common/usbx_device_classes/inc/ux_device_class_cdc_ecm.h index 3f662d8..54f3ac7 100644 --- a/common/usbx_device_classes/inc/ux_device_class_cdc_ecm.h +++ b/common/usbx_device_classes/inc/ux_device_class_cdc_ecm.h @@ -24,7 +24,7 @@ /* COMPONENT DEFINITION RELEASE */ /* */ /* ux_device_class_cdc_ecm.h PORTABLE C */ -/* 6.1.11 */ +/* 6.2.0 */ /* AUTHOR */ /* */ /* Chaoqiong Xiao, Microsoft Corporation */ @@ -52,6 +52,9 @@ /* 04-25-2022 Chaoqiong Xiao Modified comment(s), */ /* fixed standalone compile, */ /* resulting in version 6.1.11 */ +/* 10-31-2022 Chaoqiong Xiao Modified comment(s), */ +/* added wait definitions, */ +/* resulting in version 6.2.0 */ /* */ /**************************************************************************/ @@ -274,6 +277,12 @@ VOID _ux_network_driver_link_down(VOID *ux_network_handle); #define UX_DEVICE_CLASS_CDC_ECM_PACKET_POOL_WAIT 1000 #endif +#ifndef UX_DEVICE_CLASS_CDC_ECM_PACKET_POOL_INST_WAIT +#define UX_DEVICE_CLASS_CDC_ECM_PACKET_POOL_INST_WAIT 1000 +#endif + +#define UX_DEVICE_CLASS_CDC_ECM_LINK_CHECK_WAIT 10 + /* Define Slave CDC_ECM Class Calling Parameter structure */ typedef struct UX_SLAVE_CLASS_CDC_ECM_PARAMETER_STRUCT @@ -316,7 +325,6 @@ typedef struct UX_SLAVE_CLASS_CDC_ECM_STRUCT UCHAR ux_slave_class_cdc_ecm_remote_node_id[UX_DEVICE_CLASS_CDC_ECM_NODE_ID_LENGTH]; ULONG ux_slave_class_cdc_ecm_nx_ip_address; ULONG ux_slave_class_cdc_ecm_nx_ip_network_mask; - UCHAR *ux_slave_class_cdc_ecm_pool_memory; #if !defined(UX_DEVICE_STANDALONE) NX_IP *ux_slave_class_cdc_ecm_nx_ip; @@ -324,7 +332,7 @@ typedef struct UX_SLAVE_CLASS_CDC_ECM_STRUCT NX_PACKET *ux_slave_class_cdc_ecm_xmit_queue; NX_PACKET *ux_slave_class_cdc_ecm_xmit_queue_tail; NX_PACKET *ux_slave_class_cdc_ecm_receive_queue; - NX_PACKET_POOL ux_slave_class_cdc_ecm_packet_pool; + NX_PACKET_POOL *ux_slave_class_cdc_ecm_packet_pool; #endif #if !defined(UX_DEVICE_STANDALONE) 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 a77aff5..52ae8ce 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.1.12 */ +/* 6.2.0 */ /* AUTHOR */ /* */ /* Chaoqiong Xiao, Microsoft Corporation */ @@ -44,6 +44,9 @@ /* resulting in version 6.1.11 */ /* 07-29-2022 Chaoqiong Xiao Modified comment(s), */ /* resulting in version 6.1.12 */ +/* 10-31-2022 Yajun xia Modified comment(s), */ +/* added standalone support, */ +/* resulting in version 6.2.0 */ /* */ /**************************************************************************/ @@ -92,6 +95,16 @@ extern "C" { #define UX_DEVICE_CLASS_PRINTER_IOCTL_READ_TIMEOUT_SET 2 #define UX_DEVICE_CLASS_PRINTER_IOCTL_WRITE_TIMEOUT_SET 3 +#if defined(UX_DEVICE_STANDALONE) + +/* Printer read state machine states. */ +#define UX_DEVICE_CLASS_PRINTER_READ_START (UX_STATE_STEP + 1) +#define UX_DEVICE_CLASS_PRINTER_READ_WAIT (UX_STATE_STEP + 2) + +/* Printer write state machine states. */ +#define UX_DEVICE_CLASS_PRINTER_WRITE_START (UX_STATE_STEP + 1) +#define UX_DEVICE_CLASS_PRINTER_WRITE_WAIT (UX_STATE_STEP + 2) +#endif /* Define Device Printer Class Calling Parameter structure */ @@ -117,6 +130,21 @@ typedef struct UX_DEVICE_CLASS_PRINTER_STRUCT #if !defined(UX_DEVICE_STANDALONE) UX_MUTEX ux_device_class_printer_endpoint_out_mutex; UX_MUTEX ux_device_class_printer_endpoint_in_mutex; +#else + UCHAR *ux_device_class_printer_read_buffer; + ULONG ux_device_class_printer_read_requested_length; + ULONG ux_device_class_printer_read_transfer_length; + ULONG ux_device_class_printer_read_actual_length; + UINT ux_device_class_printer_read_status; + UINT ux_device_class_printer_read_state; + + UCHAR *ux_device_class_printer_write_buffer; + ULONG ux_device_class_printer_write_transfer_length; + ULONG ux_device_class_printer_write_host_length; + ULONG ux_device_class_printer_write_requested_length; + ULONG ux_device_class_printer_write_actual_length; + UINT ux_device_class_printer_write_status; + UINT ux_device_class_printer_write_state; #endif } UX_DEVICE_CLASS_PRINTER; @@ -139,7 +167,12 @@ UINT _ux_device_class_printer_read(UX_DEVICE_CLASS_PRINTER *printer, UCHAR *buf UINT _ux_device_class_printer_ioctl(UX_DEVICE_CLASS_PRINTER *printer, ULONG ioctl_function, VOID *parameter); - +#if defined(UX_DEVICE_STANDALONE) +UINT _ux_device_class_printer_write_run(UX_DEVICE_CLASS_PRINTER *printer, UCHAR *buffer, + ULONG requested_length, ULONG *actual_length); +UINT _ux_device_class_printer_read_run(UX_DEVICE_CLASS_PRINTER *printer, UCHAR *buffer, + ULONG requested_length, ULONG *actual_length); +#endif /* Define Device Printer Class API prototypes. */ @@ -148,6 +181,11 @@ UINT _ux_device_class_printer_ioctl(UX_DEVICE_CLASS_PRINTER *printer, ULONG ioc #define ux_device_class_printer_write _ux_device_class_printer_write #define ux_device_class_printer_ioctl _ux_device_class_printer_ioctl +#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 +#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_rndis.h b/common/usbx_device_classes/inc/ux_device_class_rndis.h index 7ac55d8..abcd833 100644 --- a/common/usbx_device_classes/inc/ux_device_class_rndis.h +++ b/common/usbx_device_classes/inc/ux_device_class_rndis.h @@ -24,7 +24,7 @@ /* COMPONENT DEFINITION RELEASE */ /* */ /* ux_device_class_rndis.h PORTABLE C */ -/* 6.1.11 */ +/* 6.2.0 */ /* AUTHOR */ /* */ /* Chaoqiong Xiao, Microsoft Corporation */ @@ -52,6 +52,9 @@ /* 04-25-2022 Chaoqiong Xiao Modified comment(s), */ /* fixed standalone compile, */ /* resulting in version 6.1.11 */ +/* 10-31-2022 Chaoqiong Xiao Modified comment(s), */ +/* added wait and length DEFs, */ +/* resulting in version 6.2.0 */ /* */ /**************************************************************************/ @@ -478,6 +481,16 @@ VOID _ux_network_driver_link_down(VOID *ux_network_handle); #define UX_DEVICE_CLASS_RNDIS_PACKET_POOL_WAIT 10 #endif +#ifndef UX_DEVICE_CLASS_RNDIS_PACKET_POOL_INST_WAIT +#define UX_DEVICE_CLASS_RNDIS_PACKET_POOL_INST_WAIT 100 +#endif + +/* Calculate message buffer length (not overflow). */ +#define UX_DEVICE_CLASS_RNDIS_MAX_MSG_LENGTH (UX_DEVICE_CLASS_RNDIS_MAX_PACKET_LENGTH + UX_DEVICE_CLASS_RNDIS_PACKET_HEADER_LENGTH) +#if UX_DEVICE_CLASS_RNDIS_MAX_MSG_LENGTH > UX_SLAVE_REQUEST_DATA_MAX_LENGTH +#error "Error: the maximum-sized RNDIS response cannot fit inside the control endpoint's data buffer. Increase UX_SLAVE_REQUEST_DATA_MAX_LENGTH." +#endif + /* Calculate response buffer length. */ #define UX_DEVICE_CLASS_RNDIS_OID_SUPPORTED_RESPONSE_LENGTH (UX_DEVICE_CLASS_RNDIS_CMPLT_QUERY_INFO_BUFFER + UX_DEVICE_CLASS_RNDIS_OID_SUPPORTED_LIST_LENGTH * 4) #define UX_DEVICE_CLASS_RNDIS_VENDOR_DESCRIPTION_MAX_RESPONSE_LENGTH (UX_DEVICE_CLASS_RNDIS_CMPLT_QUERY_INFO_BUFFER + UX_DEVICE_CLASS_RNDIS_VENDOR_DESCRIPTION_MAX_LENGTH) @@ -544,7 +557,6 @@ typedef struct UX_SLAVE_CLASS_RNDIS_STRUCT ULONG ux_slave_class_rndis_statistics_xmit_more_collisions; UCHAR ux_slave_class_rndis_local_node_id[UX_DEVICE_CLASS_RNDIS_NODE_ID_LENGTH]; UCHAR ux_slave_class_rndis_remote_node_id[UX_DEVICE_CLASS_RNDIS_NODE_ID_LENGTH]; - UCHAR *ux_slave_class_rndis_pool_memory; ULONG ux_slave_class_rndis_nx_ip_address; ULONG ux_slave_class_rndis_nx_ip_network_mask; @@ -553,7 +565,7 @@ typedef struct UX_SLAVE_CLASS_RNDIS_STRUCT NX_INTERFACE *ux_slave_class_rndis_nx_interface; NX_PACKET *ux_slave_class_rndis_xmit_queue; NX_PACKET *ux_slave_class_rndis_receive_queue; - NX_PACKET_POOL ux_slave_class_rndis_packet_pool; + NX_PACKET_POOL *ux_slave_class_rndis_packet_pool; #endif #if !defined(UX_DEVICE_STANDALONE) diff --git a/common/usbx_device_classes/inc/ux_device_class_video.h b/common/usbx_device_classes/inc/ux_device_class_video.h index 4c6d3e8..9851532 100644 --- a/common/usbx_device_classes/inc/ux_device_class_video.h +++ b/common/usbx_device_classes/inc/ux_device_class_video.h @@ -26,7 +26,7 @@ /* COMPONENT DEFINITION RELEASE */ /* */ /* ux_device_class_video.h PORTABLE C */ -/* 6.1.11 */ +/* 6.2.0 */ /* AUTHOR */ /* */ /* Chaoqiong Xiao, Microsoft Corporation */ @@ -41,6 +41,9 @@ /* DATE NAME DESCRIPTION */ /* */ /* 04-25-2022 Chaoqiong Xiao Initial Version 6.1.11 */ +/* 10-31-2022 Chaoqiong Xiao Modified comment(s), */ +/* added standalone support, */ +/* resulting in version 6.2.0 */ /* */ /**************************************************************************/ @@ -508,6 +511,12 @@ typedef struct UX_DEVICE_CLASS_VIDEO_PAYLOAD_HEADER_STRUCT #define UX_DEVICE_CLASS_VIDEO_STREAM_ERROR_CODE_STILL_IMAGE_CAPTURE_ERROR 7 +/* Define Video Class Task states. */ +#define UX_DEVICE_CLASS_VIDEO_STREAM_RW_STOP (UX_STATE_RESET) +#define UX_DEVICE_CLASS_VIDEO_STREAM_RW_START (UX_STATE_STEP + 1) +#define UX_DEVICE_CLASS_VIDEO_STREAM_RW_WAIT (UX_STATE_STEP + 2) + + /* Define Video Class callback structure. */ struct UX_DEVICE_CLASS_VIDEO_STREAM_STRUCT; @@ -541,8 +550,12 @@ typedef struct UX_DEVICE_CLASS_VIDEO_PAYLOAD_STRUCT typedef struct UX_DEVICE_CLASS_VIDEO_STREAM_PARAMETER_STRUCT { +#if defined(UX_DEVICE_STANDALONE) + UINT (*ux_device_class_video_stream_parameter_task_function)(struct UX_DEVICE_CLASS_VIDEO_STREAM_STRUCT*); +#else ULONG ux_device_class_video_stream_parameter_thread_stack_size; VOID (*ux_device_class_video_stream_parameter_thread_entry)(ULONG id); +#endif UX_DEVICE_CLASS_VIDEO_STREAM_CALLBACKS ux_device_class_video_stream_parameter_callbacks; ULONG ux_device_class_video_stream_parameter_max_payload_buffer_size; @@ -572,8 +585,13 @@ typedef struct UX_DEVICE_CLASS_VIDEO_STREAM_STRUCT #if !defined(UX_DEVICE_STANDALONE) UCHAR *ux_device_class_video_stream_thread_stack; UX_THREAD ux_device_class_video_stream_thread; +#else + UINT (*ux_device_class_video_stream_task_function)(struct UX_DEVICE_CLASS_VIDEO_STREAM_STRUCT*); + UINT ux_device_class_video_stream_task_state; + UINT ux_device_class_video_stream_task_status; #endif + ULONG ux_device_class_video_stream_buffer_error_count; UCHAR *ux_device_class_video_stream_buffer; ULONG ux_device_class_video_stream_buffer_size; ULONG ux_device_class_video_stream_payload_buffer_size; @@ -636,6 +654,9 @@ UINT _ux_device_class_video_transmission_start(UX_DEVICE_CLASS_VIDEO_STREAM * UINT _ux_device_class_video_write_payload_get(UX_DEVICE_CLASS_VIDEO_STREAM *video, UCHAR **buffer, ULONG *max_length); UINT _ux_device_class_video_write_payload_commit(UX_DEVICE_CLASS_VIDEO_STREAM *video, ULONG length); +UINT _ux_device_class_video_tasks_run(VOID *instance); +UINT _ux_device_class_video_read_task_function(UX_DEVICE_CLASS_VIDEO_STREAM *stream); +UINT _ux_device_class_video_write_task_function(UX_DEVICE_CLASS_VIDEO_STREAM *stream); /* Define Video Class API prototypes. */ @@ -663,6 +684,9 @@ UINT _ux_device_class_video_write_payload_commit(UX_DEVICE_CLASS_VIDEO_STREAM #define ux_device_class_video_ioctl _ux_device_class_video_ioctl +#define ux_device_class_video_read_task_function _ux_device_class_video_read_task_function +#define ux_device_class_video_write_task_function _ux_device_class_video_write_task_function + /* Determine if a C++ compiler is being used. If so, complete the standard C conditional started above. */ |
