+++ /dev/null
-#include "stdAfx.h"\r
-\r
-#include "video_channel_context.h"\r
-\r
-namespace caspar { namespace core {\r
-\r
-struct video_channel_context::implementation\r
-{ \r
- mutable tbb::spin_rw_mutex mutex_;\r
- const int index_;\r
- video_format_desc format_desc_;\r
- executor execution_;\r
- safe_ptr<ogl_device> ogl_;\r
-\r
- implementation(int index, const safe_ptr<ogl_device>& ogl, const video_format_desc& format_desc)\r
- : index_(index)\r
- , format_desc_(format_desc)\r
- , execution_(print() + L"/execution")\r
- , ogl_(ogl)\r
- {\r
- execution_.set_priority_class(above_normal_priority_class);\r
- }\r
-\r
- std::wstring print() const\r
- {\r
- return L"video_channel[" + boost::lexical_cast<std::wstring>(index_+1) + L"|" + format_desc_.name + L"]";\r
- }\r
-};\r
-\r
-video_channel_context::video_channel_context(int index, const safe_ptr<ogl_device>& ogl, const video_format_desc& format_desc) \r
- : impl_(new implementation(index, ogl, format_desc))\r
-{\r
-}\r
-\r
-const int video_channel_context::index() const {return impl_->index_;}\r
-\r
-video_format_desc video_channel_context::get_format_desc()\r
-{\r
- tbb::spin_rw_mutex::scoped_lock lock(impl_->mutex_, false);\r
- return impl_->format_desc_;\r
-}\r
-\r
-void video_channel_context::set_format_desc(const video_format_desc& format_desc)\r
-{\r
- tbb::spin_rw_mutex::scoped_lock lock(impl_->mutex_, true);\r
- impl_->format_desc_ = format_desc;\r
-}\r
-\r
-executor& video_channel_context::execution() {return impl_->execution_;}\r
-safe_ptr<ogl_device> video_channel_context::ogl() { return impl_->ogl_;}\r
-\r
-std::wstring video_channel_context::print() const\r
-{\r
- return impl_->print();\r
-}\r
-\r
-}}
\ No newline at end of file
+++ /dev/null
-#pragma once\r
-\r
-#include <common/concurrency/executor.h>\r
-\r
-#include <core/video_format.h>\r
-\r
-#include <tbb/spin_rw_mutex.h>\r
-\r
-#include <boost/noncopyable.hpp>\r
-#include <boost/lexical_cast.hpp>\r
-\r
-#include <string>\r
-\r
-namespace caspar { \r
-\r
-class executor;\r
-\r
-namespace core {\r
-\r
-class ogl_device;\r
-\r
-class video_channel_context\r
-{\r
-\r
-public:\r
- video_channel_context(int index, const safe_ptr<ogl_device>& ogl, const video_format_desc& format_desc);\r
-\r
- const int index() const;\r
- video_format_desc get_format_desc();\r
- void set_format_desc(const video_format_desc& format_desc);\r
- executor& execution();\r
- safe_ptr<ogl_device> ogl();\r
- std::wstring print() const;\r
-private:\r
- struct implementation;\r
- std::shared_ptr<implementation> impl_;\r
-};\r
- \r
-}}
\ No newline at end of file