in main/AppCommon.c [104:140]
static VOID onConnectionStateChange(UINT64 userData, RTC_PEER_CONNECTION_STATE newState)
{
STATUS retStatus = STATUS_SUCCESS;
PStreamingSession pStreamingSession = (PStreamingSession) userData;
PAppConfiguration pAppConfiguration;
CHK((pStreamingSession != NULL) && (pStreamingSession->pAppConfiguration != NULL), STATUS_INTERNAL_ERROR);
pAppConfiguration = pStreamingSession->pAppConfiguration;
DLOGI("New connection state %u", newState);
switch (newState) {
case RTC_PEER_CONNECTION_STATE_CONNECTED:
ATOMIC_STORE_BOOL(&pAppConfiguration->peerConnectionConnected, TRUE);
CVAR_BROADCAST(pAppConfiguration->cvar);
if (STATUS_FAILED(retStatus = logSelectedIceCandidatesInformation(pStreamingSession->pPeerConnection))) {
DLOGW("Failed to get information about selected Ice candidates: 0x%08x", retStatus);
}
break;
case RTC_PEER_CONNECTION_STATE_FAILED:
// explicit fallthrough
case RTC_PEER_CONNECTION_STATE_CLOSED:
// explicit fallthrough
case RTC_PEER_CONNECTION_STATE_DISCONNECTED:
ATOMIC_STORE_BOOL(&pStreamingSession->terminateFlag, TRUE);
CVAR_BROADCAST(pAppConfiguration->cvar);
// explicit fallthrough
default:
ATOMIC_STORE_BOOL(&pAppConfiguration->peerConnectionConnected, FALSE);
CVAR_BROADCAST(pAppConfiguration->cvar);
break;
}
CleanUp:
CHK_LOG_ERR((retStatus));
}