//-------------------------------------------------------------------------------------------------- static void MyMediaAmrHandler ( le_audio_StreamRef_t streamRef, le_audio_MediaEvent_t mediaEvent, void* contextPtr ) { MediaAmrContext_t * amrCtxtPtr = (MediaAmrContext_t *) contextPtr; LE_DEBUG("MyMediaHandler %d", mediaEvent); if (amrCtxtPtr) { close(amrCtxtPtr->fd_pipe_output); close(amrCtxtPtr->fd_pipe_input); le_audio_RemoveMediaHandler(amrCtxtPtr->mediaHandler); // set the initial fd in the stream context amrCtxtPtr->streamPtr->fd = amrCtxtPtr->fd_in; le_mem_Release(amrCtxtPtr); } }
//-------------------------------------------------------------------------------------------------- static void DisconnectAllAudio ( void ) { if (AudioInputConnectorRef) { if(FileAudioRef) { LE_INFO("Disconnect %p from connector.%p", FileAudioRef, AudioInputConnectorRef); le_audio_Disconnect(AudioInputConnectorRef, FileAudioRef); } if (FeInRef) { LE_INFO("Disconnect %p from connector.%p", FeInRef, AudioInputConnectorRef); le_audio_Disconnect(AudioInputConnectorRef, FeInRef); } if(MdmTxAudioRef) { LE_INFO("Disconnect %p from connector.%p", MdmTxAudioRef, AudioInputConnectorRef); le_audio_Disconnect(AudioInputConnectorRef, MdmTxAudioRef); } } if(AudioOutputConnectorRef) { if(FileAudioRef) { LE_INFO("Disconnect %p from connector.%p", FileAudioRef, AudioOutputConnectorRef); le_audio_Disconnect(AudioOutputConnectorRef, FileAudioRef); } if(FeOutRef) { LE_INFO("Disconnect %p from connector.%p", FeOutRef, AudioOutputConnectorRef); le_audio_Disconnect(AudioOutputConnectorRef, FeOutRef); } if(MdmRxAudioRef) { LE_INFO("Disconnect %p from connector.%p", MdmRxAudioRef, AudioOutputConnectorRef); le_audio_Disconnect(AudioOutputConnectorRef, MdmRxAudioRef); } } if(AudioInputConnectorRef) { le_audio_DeleteConnector(AudioInputConnectorRef); AudioInputConnectorRef = NULL; } if(AudioOutputConnectorRef) { le_audio_DeleteConnector(AudioOutputConnectorRef); AudioOutputConnectorRef = NULL; } if(FileAudioRef) { le_audio_Close(FileAudioRef); FeOutRef = NULL; } if(FeInRef) { le_audio_Close(FeInRef); FeInRef = NULL; } if(FeOutRef) { le_audio_Close(FeOutRef); FeOutRef = NULL; } if(MdmRxAudioRef) { le_audio_Close(MdmRxAudioRef); FeOutRef = NULL; } if(MdmTxAudioRef) { le_audio_Close(MdmTxAudioRef); FeOutRef = NULL; } if(MediaHandlerRef) { le_audio_RemoveMediaHandler(MediaHandlerRef); MediaHandlerRef = NULL; } close(AudioFileFd); }
//-------------------------------------------------------------------------------------------------- static void DisconnectAllAudio ( void ) { if (AudioInputConnectorRef) { if(FileAudioRef) { LE_INFO("Disconnect %p from connector.%p", FileAudioRef, AudioInputConnectorRef); le_audio_Disconnect(AudioInputConnectorRef, FileAudioRef); } if (FeInRef) { LE_INFO("Disconnect %p from connector.%p", FeInRef, AudioInputConnectorRef); le_audio_Disconnect(AudioInputConnectorRef, FeInRef); } if(MdmTxAudioRef) { LE_INFO("Disconnect %p from connector.%p", MdmTxAudioRef, AudioInputConnectorRef); le_audio_Disconnect(AudioInputConnectorRef, MdmTxAudioRef); } } if(AudioOutputConnectorRef) { if(FileAudioRef) { LE_INFO("Disconnect %p from connector.%p", FileAudioRef, AudioOutputConnectorRef); le_audio_Disconnect(AudioOutputConnectorRef, FileAudioRef); } if(FeOutRef) { LE_INFO("Disconnect %p from connector.%p", FeOutRef, AudioOutputConnectorRef); le_audio_Disconnect(AudioOutputConnectorRef, FeOutRef); } if(MdmRxAudioRef) { LE_INFO("Disconnect %p from connector.%p", MdmRxAudioRef, AudioOutputConnectorRef); le_audio_Disconnect(AudioOutputConnectorRef, MdmRxAudioRef); } } if(AudioInputConnectorRef) { le_audio_DeleteConnector(AudioInputConnectorRef); AudioInputConnectorRef = NULL; } if(AudioOutputConnectorRef) { le_audio_DeleteConnector(AudioOutputConnectorRef); AudioOutputConnectorRef = NULL; } if(FileAudioRef) { le_audio_Close(FileAudioRef); FeOutRef = NULL; } if(FeInRef) { le_audio_Close(FeInRef); FeInRef = NULL; } if(FeOutRef) { le_audio_Close(FeOutRef); FeOutRef = NULL; } if(MdmRxAudioRef) { le_audio_Close(MdmRxAudioRef); FeOutRef = NULL; } if(MdmTxAudioRef) { le_audio_Close(MdmTxAudioRef); FeOutRef = NULL; } if(MediaHandlerRef) { le_audio_RemoveMediaHandler(MediaHandlerRef); MediaHandlerRef = NULL; } // Closing AudioFileFd is unnecessary since the messaging infrastructure underneath // le_audio_xxx APIs that use it would close it. }