Jump to main content

##

# 2.3.4.1 USB_DEVICE_AUDIO_EventHandlerSet Function

## C

    USB_DEVICE_AUDIO_RESULT USB_DEVICE_AUDIO_EventHandlerSet(
        USB_DEVICE_AUDIO_INDEX instanceIndex,
        USB_DEVICE_AUDIO_EVENT_HANDLER eventHandler,
        uintptr_t context
    );

## Summary

This function registers a event handler for the specified Audio function driver instance. This function should be called by the application when it receives a SET CONFIGURATION event from the device layer. The application must register an event handler with the function driver in order to receive and respond to function driver specific events and control transfers. If the event handler is not registered, the device layer will stall function driver specific commands and the USB device may not function.

## Precondition

This function should be called when the function driver has been initialized as a result of a set configuration.

## Parameters

Parameters | Description
instanceIndex | Instance of the Audio Function Driver.
eventHandler | A pointer to event handler function.
context | Application specific context that is returned in the event handler.

## Returns

- USB_DEVICE_AUDIO_RESULT_OK - The operation was successful.
- USB_DEVICE_AUDIO_RESULT_ERROR_INSTANCE_INVALID - The specified instance does not exist.
- USB_DEVICE_AUDIO_RESULT_ERROR_PARAMETER_INVALID - The eventHandler parameter is NULL.

## Example

    // The following code shows an example for registering an event handler. The
    // application specifies the context parameter as a pointer to an
    // application object (appObject) that should be associated with this
    // instance of the Audio function driver.

    USB_DEVICE_AUDIO_RESULT result;

    USB_DEVICE_AUDIO_EVENT_RESPONSE APP_USBDeviceAUDIOEventHandler
    (
        USB_DEVICE_AUDIO_INDEX instanceIndex ,
        USB_DEVICE_AUDIO_EVENT event ,
        void* pData,
        uintptr_t context
    )
    {
        // Event Handling comes here

        switch(event)
        {
            ...
        }

        return(USB_DEVICE_AUDIO_EVENT_RESPONSE_NONE);
    }

    result = USB_DEVICE_AUDIO_EventHandlerSet ( USB_DEVICE_AUDIO_INSTANCE_0 ,
                &APP_USBDeviceAUDIOEventHandler, (uintptr_t) &appObject);

    if(USB_DEVICE_AUDIO_RESULT_OK != result)
    {
        // Do error handling here
    }