blob: 7b6a2a3e3e76d9a1802e26e7d0a2764310950978 [file] [log] [blame]
solenberg7b38f692015-09-07 04:38:33 -07001/*
kjellanderb24317b2016-02-10 07:54:43 -08002 * Copyright 2015 The WebRTC project authors. All Rights Reserved.
solenberg7b38f692015-09-07 04:38:33 -07003 *
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.
solenberg7b38f692015-09-07 04:38:33 -07009 */
10
Henrik Kjellander15583c12016-02-10 10:53:12 +010011#ifndef WEBRTC_API_MEDIACONTROLLER_H_
12#define WEBRTC_API_MEDIACONTROLLER_H_
Fredrik Solenberg709ed672015-09-15 12:26:33 +020013
14#include "webrtc/base/thread.h"
15
stefanc1aeaf02015-10-15 07:26:07 -070016namespace cricket {
17class ChannelManager;
nisse51542be2016-02-12 02:27:06 -080018struct MediaConfig;
stefanc1aeaf02015-10-15 07:26:07 -070019} // namespace cricket
20
Fredrik Solenberg709ed672015-09-15 12:26:33 +020021namespace webrtc {
22class Call;
23class VoiceEngine;
24
25// The MediaController currently owns shared state between media channels, but
26// in the future will create and own RtpSenders and RtpReceivers.
27class MediaControllerInterface {
28 public:
stefanc1aeaf02015-10-15 07:26:07 -070029 static MediaControllerInterface* Create(
nisse51542be2016-02-12 02:27:06 -080030 const cricket::MediaConfig& config,
stefanc1aeaf02015-10-15 07:26:07 -070031 rtc::Thread* worker_thread,
32 cricket::ChannelManager* channel_manager);
Fredrik Solenberg709ed672015-09-15 12:26:33 +020033
34 virtual ~MediaControllerInterface() {}
35 virtual webrtc::Call* call_w() = 0;
stefanc1aeaf02015-10-15 07:26:07 -070036 virtual cricket::ChannelManager* channel_manager() const = 0;
nisse51542be2016-02-12 02:27:06 -080037 virtual const cricket::MediaConfig& config() const = 0;
Fredrik Solenberg709ed672015-09-15 12:26:33 +020038};
39} // namespace webrtc
40
Henrik Kjellander15583c12016-02-10 10:53:12 +010041#endif // WEBRTC_API_MEDIACONTROLLER_H_