| /* |
| * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. |
| * |
| * Use of this source code is governed by a BSD-style license |
| * that can be found in the LICENSE file in the root of the source |
| * tree. An additional intellectual property rights grant can be found |
| * in the file PATENTS. All contributing project authors may |
| * be found in the AUTHORS file in the root of the source tree. |
| */ |
| |
| // ViESharedData contains data and instances common to all interface |
| // implementations. |
| |
| #ifndef WEBRTC_VIDEO_ENGINE_VIE_SHARED_DATA_H_ |
| #define WEBRTC_VIDEO_ENGINE_VIE_SHARED_DATA_H_ |
| |
| #include <map> |
| |
| #include "webrtc/base/scoped_ptr.h" |
| |
| namespace webrtc { |
| |
| class Config; |
| class CpuOveruseObserver; |
| class ProcessThread; |
| class ViEChannelManager; |
| class ViEInputManager; |
| class ViERenderManager; |
| |
| class ViESharedData { |
| public: |
| explicit ViESharedData(const Config& config); |
| ~ViESharedData(); |
| |
| void SetLastError(const int error) const; |
| int LastErrorInternal() const; |
| int NumberOfCores() const; |
| |
| // TODO(mflodman) Remove all calls to 'instance_id()'. |
| int instance_id() { return 0;} |
| ViEChannelManager* channel_manager() { return channel_manager_.get(); } |
| ViEInputManager* input_manager() { return input_manager_.get(); } |
| ViERenderManager* render_manager() { return render_manager_.get(); } |
| |
| std::map<int, CpuOveruseObserver*>* overuse_observers() { |
| return &overuse_observers_; } |
| |
| private: |
| const int number_cores_; |
| |
| rtc::scoped_ptr<ViEChannelManager> channel_manager_; |
| rtc::scoped_ptr<ViEInputManager> input_manager_; |
| rtc::scoped_ptr<ViERenderManager> render_manager_; |
| rtc::scoped_ptr<ProcessThread> module_process_thread_; |
| mutable int last_error_; |
| |
| std::map<int, CpuOveruseObserver*> overuse_observers_; |
| }; |
| |
| } // namespace webrtc |
| |
| #endif // WEBRTC_VIDEO_ENGINE_VIE_SHARED_DATA_H_ |