blob: 5721ffe80eff85801b552a10d2d0532ea216a06c [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;
18} // namespace cricket
19
Fredrik Solenberg709ed672015-09-15 12:26:33 +020020namespace webrtc {
21class Call;
22class VoiceEngine;
23
24// The MediaController currently owns shared state between media channels, but
25// in the future will create and own RtpSenders and RtpReceivers.
26class MediaControllerInterface {
27 public:
stefanc1aeaf02015-10-15 07:26:07 -070028 static MediaControllerInterface* Create(
29 rtc::Thread* worker_thread,
30 cricket::ChannelManager* channel_manager);
Fredrik Solenberg709ed672015-09-15 12:26:33 +020031
32 virtual ~MediaControllerInterface() {}
33 virtual webrtc::Call* call_w() = 0;
stefanc1aeaf02015-10-15 07:26:07 -070034 virtual cricket::ChannelManager* channel_manager() const = 0;
Fredrik Solenberg709ed672015-09-15 12:26:33 +020035};
36} // namespace webrtc
37
Henrik Kjellander15583c12016-02-10 10:53:12 +010038#endif // WEBRTC_API_MEDIACONTROLLER_H_