Skip to content

Commit

Permalink
add GetConnectionState, GetSignalingState, GetIceConnectionState, Get…
Browse files Browse the repository at this point in the history
…IceGatheringState methods in cpp part.
  • Loading branch information
MarshalX committed Mar 10, 2022
1 parent 8d59b30 commit 36dfd57
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 1 deletion.
39 changes: 38 additions & 1 deletion python-webrtc/cpp/src/interfaces/rtc_peer_connection.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,12 @@ namespace python_webrtc {
.def_property_readonly("sctp", &RTCPeerConnection::GetSctp)
.def("restartIce", &RTCPeerConnection::RestartIce)
.def("removeTrack", &RTCPeerConnection::RemoveTrack)
.def("close", &RTCPeerConnection::Close);
.def("close", &RTCPeerConnection::Close)
.def_property_readonly("connectionState", &RTCPeerConnection::GetConnectionState);
// TODO bind enums
// .def_property_readonly("signalingState", &RTCPeerConnection::GetSignalingState)
// .def_property_readonly("iceConnectionState", &RTCPeerConnection::GetIceConnectionState)
// .def_property_readonly("iceGatheringState", &RTCPeerConnection::GetIceGatheringState);
}

void RTCPeerConnection::SaveLastSdp(const RTCSessionDescriptionInit &lastSdp) {
Expand Down Expand Up @@ -339,6 +344,38 @@ namespace python_webrtc {
}
}

webrtc::PeerConnectionInterface::PeerConnectionState RTCPeerConnection::GetConnectionState() {
if (_jinglePeerConnection) {
return _jinglePeerConnection->peer_connection_state();
} else {
return webrtc::PeerConnectionInterface::PeerConnectionState::kClosed;
}
}

webrtc::PeerConnectionInterface::SignalingState RTCPeerConnection::GetSignalingState() {
if (_jinglePeerConnection) {
return _jinglePeerConnection->signaling_state();
} else {
return webrtc::PeerConnectionInterface::SignalingState::kClosed;
}
}

webrtc::PeerConnectionInterface::IceConnectionState RTCPeerConnection::GetIceConnectionState() {
if (_jinglePeerConnection) {
return _jinglePeerConnection->standardized_ice_connection_state();
} else {
return webrtc::PeerConnectionInterface::IceConnectionState::kIceConnectionClosed;
}
}

webrtc::PeerConnectionInterface::IceGatheringState RTCPeerConnection::GetIceGatheringState() {
if (_jinglePeerConnection) {
return _jinglePeerConnection->ice_gathering_state();
} else {
return webrtc::PeerConnectionInterface::IceGatheringState::kIceGatheringComplete;
}
}

void RTCPeerConnection::OnSignalingChange(webrtc::PeerConnectionInterface::SignalingState new_state) {
// TODO call python callback
if (new_state == webrtc::PeerConnectionInterface::kClosed) {
Expand Down
8 changes: 8 additions & 0 deletions python-webrtc/cpp/src/interfaces/rtc_peer_connection.h
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,14 @@ namespace python_webrtc {

void Close();

webrtc::PeerConnectionInterface::PeerConnectionState GetConnectionState();

webrtc::PeerConnectionInterface::SignalingState GetSignalingState();

webrtc::PeerConnectionInterface::IceConnectionState GetIceConnectionState();

webrtc::PeerConnectionInterface::IceGatheringState GetIceGatheringState();

// PeerConnectionObserver implementation.
void OnSignalingChange(webrtc::PeerConnectionInterface::SignalingState new_state) override;

Expand Down

0 comments on commit 36dfd57

Please sign in to comment.