diff options
Diffstat (limited to 'Source/WebCore/platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp')
-rw-r--r-- | Source/WebCore/platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp | 56 |
1 files changed, 54 insertions, 2 deletions
diff --git a/Source/WebCore/platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp b/Source/WebCore/platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp index 08a0373e0..61fb1c48a 100644 --- a/Source/WebCore/platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp +++ b/Source/WebCore/platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp @@ -36,23 +36,32 @@ #include "MediaConstraints.h" #include "RTCConfiguration.h" +#include "RTCDataChannelDescriptor.h" #include "RTCIceCandidateDescriptor.h" #include "RTCPeerConnectionHandlerClient.h" #include "RTCSessionDescriptionDescriptor.h" #include "RTCSessionDescriptionRequest.h" +#include "RTCStatsRequest.h" #include "RTCVoidRequest.h" #include <public/Platform.h> #include <public/WebMediaConstraints.h> #include <public/WebMediaStreamDescriptor.h> #include <public/WebRTCConfiguration.h> +#include <public/WebRTCDataChannel.h> #include <public/WebRTCICECandidate.h> #include <public/WebRTCSessionDescription.h> #include <public/WebRTCSessionDescriptionRequest.h> +#include <public/WebRTCStatsRequest.h> #include <public/WebRTCVoidRequest.h> #include <wtf/PassOwnPtr.h> namespace WebCore { +WebKit::WebRTCPeerConnectionHandler* RTCPeerConnectionHandlerChromium::toWebRTCPeerConnectionHandler(RTCPeerConnectionHandler* handler) +{ + return static_cast<RTCPeerConnectionHandlerChromium*>(handler)->m_webHandler.get(); +} + PassOwnPtr<RTCPeerConnectionHandler> RTCPeerConnectionHandler::create(RTCPeerConnectionHandlerClient* client) { return adoptPtr(new RTCPeerConnectionHandlerChromium(client)); @@ -62,6 +71,7 @@ RTCPeerConnectionHandlerChromium::RTCPeerConnectionHandlerChromium(RTCPeerConnec : m_client(client) { ASSERT(m_client); + m_webHandler = adoptPtr(WebKit::Platform::current()->createRTCPeerConnectionHandler(this)); } RTCPeerConnectionHandlerChromium::~RTCPeerConnectionHandlerChromium() @@ -70,8 +80,10 @@ RTCPeerConnectionHandlerChromium::~RTCPeerConnectionHandlerChromium() bool RTCPeerConnectionHandlerChromium::initialize(PassRefPtr<RTCConfiguration> configuration, PassRefPtr<MediaConstraints> constraints) { - m_webHandler = adoptPtr(WebKit::Platform::current()->createRTCPeerConnectionHandler(this)); - return m_webHandler ? m_webHandler->initialize(configuration, constraints) : false; + if (!m_webHandler) + return false; + + return m_webHandler->initialize(configuration, constraints); } void RTCPeerConnectionHandlerChromium::createOffer(PassRefPtr<RTCSessionDescriptionRequest> request, PassRefPtr<MediaConstraints> constraints) @@ -156,6 +168,46 @@ void RTCPeerConnectionHandlerChromium::removeStream(PassRefPtr<MediaStreamDescri m_webHandler->removeStream(mediaStream); } +void RTCPeerConnectionHandlerChromium::getStats(PassRefPtr<RTCStatsRequest> request) +{ + if (!m_webHandler) + return; + + m_webHandler->getStats(request); +} + +bool RTCPeerConnectionHandlerChromium::openDataChannel(PassRefPtr<RTCDataChannelDescriptor> dataChannel) +{ + if (!m_webHandler) + return false; + + return m_webHandler->openDataChannel(dataChannel); +} + +bool RTCPeerConnectionHandlerChromium::sendStringData(PassRefPtr<RTCDataChannelDescriptor> dataChannel, const String& data) +{ + if (!m_webHandler) + return false; + + return m_webHandler->sendStringData(dataChannel, data); +} + +bool RTCPeerConnectionHandlerChromium::sendRawData(PassRefPtr<RTCDataChannelDescriptor> dataChannel, const char* data, size_t dataLength) +{ + if (!m_webHandler) + return false; + + return m_webHandler->sendRawData(dataChannel, data, dataLength); +} + +void RTCPeerConnectionHandlerChromium::closeDataChannel(PassRefPtr<RTCDataChannelDescriptor> dataChannel) +{ + if (!m_webHandler) + return; + + return m_webHandler->closeDataChannel(dataChannel); +} + void RTCPeerConnectionHandlerChromium::stop() { if (!m_webHandler) |