diff options
author | Fabio Alessandrelli <fabio.alessandrelli@gmail.com> | 2020-01-03 19:43:01 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-03 19:43:01 +0100 |
commit | 61e45cb083a2879bed238f3052f7c12bd230da16 (patch) | |
tree | 8a8f727a8d79342f2bd5df79bc58fc32b964b821 /src/WebRTCLibObservers.cpp | |
parent | 423454086e21d40a545f9e46d6e35c1b3c557d77 (diff) | |
parent | 6983019cab6acc39d3e4157f7e03aafadb2291df (diff) | |
download | godot-webrtc-native-61e45cb083a2879bed238f3052f7c12bd230da16.tar.gz godot-webrtc-native-61e45cb083a2879bed238f3052f7c12bd230da16.tar.bz2 godot-webrtc-native-61e45cb083a2879bed238f3052f7c12bd230da16.zip |
Merge pull request #10 from Faless/refactor/better-scons
Better build script, readme
Diffstat (limited to 'src/WebRTCLibObservers.cpp')
-rw-r--r-- | src/WebRTCLibObservers.cpp | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/WebRTCLibObservers.cpp b/src/WebRTCLibObservers.cpp new file mode 100644 index 0000000..4564195 --- /dev/null +++ b/src/WebRTCLibObservers.cpp @@ -0,0 +1,53 @@ +#include "WebRTCLibDataChannel.hpp" +#include "WebRTCLibPeerConnection.hpp" + +using namespace godot_webrtc; + +// CreateSessionObseerver +WebRTCLibPeerConnection::GodotCSDO::GodotCSDO(WebRTCLibPeerConnection *parent) { + this->parent = parent; +} + +void WebRTCLibPeerConnection::GodotCSDO::OnSuccess(webrtc::SessionDescriptionInterface *desc) { + // serialize this offer and send it to the remote peer: + std::string sdp; // sdp = session description protocol + desc->ToString(&sdp); + parent->queue_signal("session_description_created", 2, desc->type().c_str(), sdp.c_str()); +}; + +void WebRTCLibPeerConnection::GodotCSDO::OnFailure(const std::string &error){}; + +// SetSessionObseerver +WebRTCLibPeerConnection::GodotSSDO::GodotSSDO(WebRTCLibPeerConnection *parent) { + this->parent = parent; +} + +void WebRTCLibPeerConnection::GodotSSDO::OnSuccess(){}; +void WebRTCLibPeerConnection::GodotSSDO::OnFailure(const std::string &error){}; + +// PeerConnectionObserver +WebRTCLibPeerConnection::GodotPCO::GodotPCO(WebRTCLibPeerConnection *parent) { + this->parent = parent; +} + +void WebRTCLibPeerConnection::GodotPCO::OnDataChannel(rtc::scoped_refptr<webrtc::DataChannelInterface> data_channel) { + parent->queue_signal("data_channel_received", 1, WebRTCLibDataChannel::new_data_channel(data_channel)); +} + +void WebRTCLibPeerConnection::GodotPCO::OnIceCandidate(const webrtc::IceCandidateInterface *candidate) { + godot::Dictionary candidateSDP; + godot::String candidateSdpMidName = candidate->sdp_mid().c_str(); + int candidateSdpMlineIndexName = candidate->sdp_mline_index(); + std::string sdp; + candidate->ToString(&sdp); + godot::String candidateSdpName = sdp.c_str(); + + parent->queue_signal("ice_candidate_created", 3, candidateSdpMidName, candidateSdpMlineIndexName, candidateSdpName); +} + +void WebRTCLibPeerConnection::GodotPCO::OnSignalingChange(webrtc::PeerConnectionInterface::SignalingState new_state) {} +void WebRTCLibPeerConnection::GodotPCO::OnAddStream(rtc::scoped_refptr<webrtc::MediaStreamInterface> stream) {} +void WebRTCLibPeerConnection::GodotPCO::OnRemoveStream(rtc::scoped_refptr<webrtc::MediaStreamInterface> stream) {} +void WebRTCLibPeerConnection::GodotPCO::OnRenegotiationNeeded() {} +void WebRTCLibPeerConnection::GodotPCO::OnIceConnectionChange(webrtc::PeerConnectionInterface::IceConnectionState new_state) {} +void WebRTCLibPeerConnection::GodotPCO::OnIceGatheringChange(webrtc::PeerConnectionInterface::IceGatheringState new_state) {} |