diff options
author | Fabio Alessandrelli <fabio.alessandrelli@gmail.com> | 2021-09-28 12:57:45 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-28 12:57:45 +0200 |
commit | d18cbdf5e4a1132bfc5f581195f6bf7c3b9bed79 (patch) | |
tree | e87200b01a5b55ec516b528be52f382954efe4e5 /modules/webrtc/webrtc_peer_connection.cpp | |
parent | 97f050067819c7d1fbef0cb38b071ff31b2b2188 (diff) | |
parent | 2d810e8cd948f1e25e514986dc6f9a7cb7c52026 (diff) | |
download | redot-engine-d18cbdf5e4a1132bfc5f581195f6bf7c3b9bed79.tar.gz |
Merge pull request #52481 from Faless/net/4.x_native_peers
[Net] Extension system for network peers, webrtc.
Diffstat (limited to 'modules/webrtc/webrtc_peer_connection.cpp')
-rw-r--r-- | modules/webrtc/webrtc_peer_connection.cpp | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/modules/webrtc/webrtc_peer_connection.cpp b/modules/webrtc/webrtc_peer_connection.cpp index 3e2938bf7d..ad28aa76c7 100644 --- a/modules/webrtc/webrtc_peer_connection.cpp +++ b/modules/webrtc/webrtc_peer_connection.cpp @@ -30,17 +30,29 @@ #include "webrtc_peer_connection.h" -WebRTCPeerConnection *(*WebRTCPeerConnection::_create)() = nullptr; +#ifdef JAVASCRIPT_ENABLED +#include "webrtc_peer_connection_js.h" +#else +#include "webrtc_peer_connection_extension.h" +#endif -Ref<WebRTCPeerConnection> WebRTCPeerConnection::create_ref() { - return create(); +StringName WebRTCPeerConnection::default_extension; + +void WebRTCPeerConnection::set_default_extension(const StringName &p_extension) { + default_extension = p_extension; } WebRTCPeerConnection *WebRTCPeerConnection::create() { - if (!_create) { - return nullptr; +#ifdef JAVASCRIPT_ENABLED + return memnew(WebRTCPeerConnectionJS); +#else + if (default_extension == String()) { + WARN_PRINT_ONCE("No default WebRTC extension configured."); + return memnew(WebRTCPeerConnectionExtension); } - return _create(); + Object *obj = ClassDB::instantiate(default_extension); + return Object::cast_to<WebRTCPeerConnectionExtension>(obj); +#endif } void WebRTCPeerConnection::_bind_methods() { |