1197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch// Copyright 2014 The Chromium Authors. All rights reserved. 2197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 3197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch// found in the LICENSE file. 4197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 5197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch#ifndef WebRTCOfferOptions_h 6197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch#define WebRTCOfferOptions_h 7197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 8197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch#include "WebCommon.h" 9197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch#include "WebNonCopyable.h" 10197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch#include "WebPrivatePtr.h" 11197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 12c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)namespace blink { 13197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 14e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)class RTCOfferOptions; 15197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 16197021e6b966cfb06891637935ef33fff06433d1Ben Murdochclass WebRTCOfferOptions { 17197021e6b966cfb06891637935ef33fff06433d1Ben Murdochpublic: 18197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch WebRTCOfferOptions() { } 19197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch WebRTCOfferOptions(const WebRTCOfferOptions& other) { assign(other); } 20197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch ~WebRTCOfferOptions() { reset(); } 21197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 22197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch WebRTCOfferOptions& operator=(const WebRTCOfferOptions& other) 23197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch { 24197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch assign(other); 25197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch return *this; 26197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch } 27197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 28197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch BLINK_PLATFORM_EXPORT void assign(const WebRTCOfferOptions&); 29197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 30197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch BLINK_PLATFORM_EXPORT void reset(); 31197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch bool isNull() const { return m_private.isNull(); } 32197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 33197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch BLINK_PLATFORM_EXPORT int32_t offerToReceiveVideo() const; 34197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch BLINK_PLATFORM_EXPORT int32_t offerToReceiveAudio() const; 35197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch BLINK_PLATFORM_EXPORT bool voiceActivityDetection() const; 36197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch BLINK_PLATFORM_EXPORT bool iceRestart() const; 37197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 38197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch#if INSIDE_BLINK 397242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci BLINK_PLATFORM_EXPORT WebRTCOfferOptions(RTCOfferOptions*); 40197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch#endif 41197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 42197021e6b966cfb06891637935ef33fff06433d1Ben Murdochprivate: 43e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) WebPrivatePtr<RTCOfferOptions> m_private; 44197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch}; 45197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 46197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch} // namespace blink 47197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 48197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch#endif // WebRTCOfferOptions_h 49