1 /*************************************************************************** 2 * Copyright (c) 2024 Microsoft Corporation 3 * 4 * This program and the accompanying materials are made available under the 5 * terms of the MIT License which is available at 6 * https://opensource.org/licenses/MIT. 7 * 8 * SPDX-License-Identifier: MIT 9 **************************************************************************/ 10 11 12 /**************************************************************************/ 13 /**************************************************************************/ 14 /** */ 15 /** USBX Component */ 16 /** */ 17 /** Audio Class */ 18 /** */ 19 /**************************************************************************/ 20 /**************************************************************************/ 21 22 23 /* Include necessary system files. */ 24 25 #define UX_SOURCE_CODE 26 27 #include "ux_api.h" 28 #include "ux_host_class_audio.h" 29 #include "ux_host_stack.h" 30 31 32 /**************************************************************************/ 33 /* */ 34 /* FUNCTION RELEASE */ 35 /* */ 36 /* _ux_host_class_audio_interrupt_notification PORTABLE C */ 37 /* 6.1.12 */ 38 /* AUTHOR */ 39 /* */ 40 /* Chaoqiong Xiao, Microsoft Corporation */ 41 /* */ 42 /* DESCRIPTION */ 43 /* */ 44 /* This function receives a completion callback on a interrupt */ 45 /* transfer request. */ 46 /* */ 47 /* INPUT */ 48 /* */ 49 /* transfer_request Pointer to transfer request */ 50 /* */ 51 /* OUTPUT */ 52 /* */ 53 /* None */ 54 /* */ 55 /* CALLS */ 56 /* */ 57 /* (ux_host_class_audio_interrupt_callback) */ 58 /* App notification callback */ 59 /* _ux_host_stack_transfer_request Issue the transfer request */ 60 /* */ 61 /* CALLED BY */ 62 /* */ 63 /* HCD */ 64 /* */ 65 /* RELEASE HISTORY */ 66 /* */ 67 /* DATE NAME DESCRIPTION */ 68 /* */ 69 /* 07-29-2022 Chaoqiong Xiao Initial Version 6.1.12 */ 70 /* */ 71 /**************************************************************************/ _ux_host_class_audio_interrupt_notification(UX_TRANSFER * transfer_request)72VOID _ux_host_class_audio_interrupt_notification(UX_TRANSFER *transfer_request) 73 { 74 75 UX_HOST_CLASS_AUDIO_AC *ac; 76 77 /* Check status. */ 78 if (transfer_request -> ux_transfer_request_completion_code != UX_SUCCESS) 79 return; 80 81 /* Get AC instance. */ 82 ac = (UX_HOST_CLASS_AUDIO_AC *)transfer_request -> ux_transfer_request_class_instance; 83 84 /* Invoke application callback. */ 85 if (ac -> ux_host_class_audio_interrupt_callback) 86 { 87 ac -> ux_host_class_audio_interrupt_callback(ac, 88 transfer_request -> ux_transfer_request_data_pointer, 89 transfer_request -> ux_transfer_request_actual_length, 90 ac -> ux_host_class_audio_interrupt_callback_arg); 91 } 92 93 /* Issue another request again. */ 94 _ux_host_stack_transfer_request(transfer_request); 95 } 96