/** * @brief @ref app_usbd_class_methods_t::event_handler */ static ret_code_t cdc_acm_event_handler(app_usbd_class_inst_t const * p_inst, app_usbd_complex_evt_t const * p_event) { ASSERT(p_inst != NULL); ASSERT(p_event != NULL); ret_code_t ret = NRF_SUCCESS; switch (p_event->app_evt.type) { case APP_USBD_EVT_DRV_SOF: break; case APP_USBD_EVT_DRV_RESET: break; case APP_USBD_EVT_DRV_SETUP: ret = setup_event_handler(p_inst, (app_usbd_setup_evt_t const *)p_event); break; case APP_USBD_EVT_DRV_EPTRANSFER: ret = cdc_acm_endpoint_ev(p_inst, p_event); break; case APP_USBD_EVT_DRV_SUSPEND: break; case APP_USBD_EVT_DRV_RESUME: break; case APP_USBD_EVT_INST_APPEND: { ret = app_usbd_class_sof_register(p_inst); break; } case APP_USBD_EVT_INST_REMOVE: { ret = app_usbd_class_sof_unregister(p_inst); break; } case APP_USBD_EVT_STARTED: break; case APP_USBD_EVT_STOPPED: break; default: ret = NRF_ERROR_NOT_SUPPORTED; break; } return ret; }
/** * @brief @ref app_usbd_class_methods_t::event_handler */ static ret_code_t audio_event_handler( app_usbd_class_inst_t const * p_inst, app_usbd_complex_evt_t const * p_event) { ASSERT(p_inst != NULL); ASSERT(p_event != NULL); ret_code_t ret = NRF_SUCCESS; switch (p_event->app_evt.type) { case APP_USBD_EVT_DRV_RESET: break; case APP_USBD_EVT_DRV_SETUP: ret = setup_event_handler(p_inst, (app_usbd_setup_evt_t const *)p_event); break; case APP_USBD_EVT_DRV_EPTRANSFER: if (NRF_USBD_EPIN_CHECK(p_event->drv_evt.data.eptransfer.ep)) { ret = endpoint_in_event_handler(p_inst); } else { ret = endpoint_out_event_handler(p_inst); } break; case APP_USBD_EVT_DRV_SUSPEND: break; case APP_USBD_EVT_DRV_RESUME: break; case APP_USBD_EVT_INST_APPEND: { app_usbd_audio_t const * p_audio = audio_get(p_inst); app_usbd_audio_ctx_t * p_audio_ctx = audio_ctx_get(p_audio); if(p_audio_ctx->sof_handler != NULL) { ret = app_usbd_class_sof_interrupt_register(p_inst, p_audio_ctx->sof_handler); APP_ERROR_CHECK(ret); } break; } case APP_USBD_EVT_INST_REMOVE: { app_usbd_audio_t const * p_audio = audio_get(p_inst); app_usbd_audio_ctx_t * p_audio_ctx = audio_ctx_get(p_audio); if(p_audio_ctx->sof_handler != NULL) { ret = app_usbd_class_sof_interrupt_unregister(p_inst); APP_ERROR_CHECK(ret); } break; } case APP_USBD_EVT_STARTED: break; case APP_USBD_EVT_STOPPED: break; default: ret = NRF_ERROR_NOT_SUPPORTED; break; } return ret; }