blob: 59e373db7b5b2bfa6f8c5d4e43816fdd69f3c602 [file] [log] [blame]
perkj@webrtc.org81134d02015-01-12 08:30:16 +00001/*
kjellanderb24317b2016-02-10 07:54:43 -08002 * Copyright 2014 The WebRTC project authors. All Rights Reserved.
perkj@webrtc.org81134d02015-01-12 08:30:16 +00003 *
kjellanderb24317b2016-02-10 07:54:43 -08004 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
perkj@webrtc.org81134d02015-01-12 08:30:16 +00009 */
jlmiller@webrtc.org5f93d0a2015-01-20 21:36:13 +000010
Markus Handella1b82012021-05-26 18:56:30 +020011#ifndef PC_PEER_CONNECTION_FACTORY_PROXY_H_
12#define PC_PEER_CONNECTION_FACTORY_PROXY_H_
perkj@webrtc.org81134d02015-01-12 08:30:16 +000013
kwibergd1fe2812016-04-27 06:47:29 -070014#include <memory>
perkj@webrtc.org81134d02015-01-12 08:30:16 +000015#include <string>
kwiberg0eb15ed2015-12-17 03:04:15 -080016#include <utility>
perkj@webrtc.org81134d02015-01-12 08:30:16 +000017
Steve Anton10542f22019-01-11 09:11:00 -080018#include "api/peer_connection_interface.h"
Markus Handella1b82012021-05-26 18:56:30 +020019#include "pc/proxy.h"
perkj@webrtc.org81134d02015-01-12 08:30:16 +000020
21namespace webrtc {
22
Markus Handella1b82012021-05-26 18:56:30 +020023// TODO(deadbeef): Move this to .cc file. What threads methods are called on is
24// an implementation detail.
Tomas Gunnarsson95d2f472021-04-01 19:14:54 +020025BEGIN_PROXY_MAP(PeerConnectionFactory)
Mirko Bonadei9d9b8de2021-02-26 09:51:26 +010026PROXY_PRIMARY_THREAD_DESTRUCTOR()
Yves Gerey665174f2018-06-19 15:03:05 +020027PROXY_METHOD1(void, SetOptions, const Options&)
Harald Alvestrandfaaaa872020-11-27 11:30:21 +000028PROXY_METHOD2(RTCErrorOr<rtc::scoped_refptr<PeerConnectionInterface>>,
29 CreatePeerConnectionOrError,
30 const PeerConnectionInterface::RTCConfiguration&,
31 PeerConnectionDependencies)
Florent Castelli72b751a2018-06-28 14:09:33 +020032PROXY_CONSTMETHOD1(webrtc::RtpCapabilities,
33 GetRtpSenderCapabilities,
Nico Weber22f99252019-02-20 10:13:16 -050034 cricket::MediaType)
Florent Castelli72b751a2018-06-28 14:09:33 +020035PROXY_CONSTMETHOD1(webrtc::RtpCapabilities,
36 GetRtpReceiverCapabilities,
Nico Weber22f99252019-02-20 10:13:16 -050037 cricket::MediaType)
Yves Gerey665174f2018-06-19 15:03:05 +020038PROXY_METHOD1(rtc::scoped_refptr<MediaStreamInterface>,
39 CreateLocalMediaStream,
40 const std::string&)
41PROXY_METHOD1(rtc::scoped_refptr<AudioSourceInterface>,
42 CreateAudioSource,
43 const cricket::AudioOptions&)
Yves Gerey665174f2018-06-19 15:03:05 +020044PROXY_METHOD2(rtc::scoped_refptr<VideoTrackInterface>,
45 CreateVideoTrack,
46 const std::string&,
47 VideoTrackSourceInterface*)
48PROXY_METHOD2(rtc::scoped_refptr<AudioTrackInterface>,
49 CreateAudioTrack,
50 const std::string&,
51 AudioSourceInterface*)
Tomas Gunnarsson95d2f472021-04-01 19:14:54 +020052PROXY_SECONDARY_METHOD2(bool, StartAecDump, FILE*, int64_t)
53PROXY_SECONDARY_METHOD0(void, StopAecDump)
Markus Handell3d46d0b2021-05-27 21:42:57 +020054END_PROXY_MAP(PeerConnectionFactory)
perkj@webrtc.org81134d02015-01-12 08:30:16 +000055
56} // namespace webrtc
57
Markus Handella1b82012021-05-26 18:56:30 +020058#endif // PC_PEER_CONNECTION_FACTORY_PROXY_H_