/* * 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 "video_engine/vie_defines.h" namespace webrtc { class ProcessThread; class ViEChannelManager; class ViEInputManager; class ViERenderManager; class ViESharedData { public: ViESharedData(); ~ViESharedData(); bool Initialized() const; int SetInitialized(); int SetUnInitialized(); void SetLastError(const int error) const; int LastErrorInternal() const; void SetOverUseDetectorOptions(const OverUseDetectorOptions& options); int NumberOfCores() const; int instance_id() { return instance_id_;} ViEChannelManager* channel_manager() { return &channel_manager_; } ViEInputManager* input_manager() { return &input_manager_; } ViERenderManager* render_manager() { return &render_manager_; } private: static int instance_counter_; const int instance_id_; bool initialized_; const int number_cores_; OverUseDetectorOptions over_use_detector_options_; ViEChannelManager& channel_manager_; ViEInputManager& input_manager_; ViERenderManager& render_manager_; ProcessThread* module_process_thread_; mutable int last_error_; }; } // namespace webrtc #endif // WEBRTC_VIDEO_ENGINE_VIE_SHARED_DATA_H_