void DefaultSignalingClient::OnSignalFrameReceived()

in chime-sdk-signaling-cpp/src/signaling/default_signaling_client.cc [270:304]


void DefaultSignalingClient::OnSignalFrameReceived(const signal_sdk::SdkSignalFrame& frame) {
  switch (frame.type()) {
    case signal_sdk::SdkSignalFrame::JOIN_ACK:
      CHIME_LOG(LogLevel::kInfo, "Join is successful")
      UpdateTurnCredentials(frame.joinack());
      break;
    case signal_sdk::SdkSignalFrame::LEAVE_ACK:
      CHIME_LOG(LogLevel::kInfo, "Leave is successful")
      state_ = SignalingState::kDisconnected;
      Close();
      break;
    case signal_sdk::SdkSignalFrame::INDEX:
      HandleIndexFrame(frame.index());
      break;
    case signal_sdk::SdkSignalFrame::SUBSCRIBE_ACK:
      HandleSubAckFrame(frame.suback());
      break;
    case signal_sdk::SdkSignalFrame::BITRATES:
      // TODO @hokyungh: implement it.
      break;
    case signal_sdk::SdkSignalFrame::AUDIO_METADATA:
      if (audio_frame_adapter_) audio_frame_adapter_->OnAudioMetadata(frame.audio_metadata());
      break;
    case signal_sdk::SdkSignalFrame::AUDIO_STREAM_ID_INFO:
      if (audio_frame_adapter_) audio_frame_adapter_->OnAudioStreamIdInfo(frame.audio_stream_id_info());
      break;
    case signal_sdk::SdkSignalFrame::DATA_MESSAGE:
      HandleDataMessageFrame(frame.data_message());
      break;
    default:
      // Unexpected type
      CHIME_LOG(LogLevel::kDebug, "Received unexpected signaling type: " + std::to_string(frame.type()))
      break;
  }
}