]> git.sesse.net Git - casparcg/commitdiff
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches...
authorronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Fri, 21 Jan 2011 23:00:22 +0000 (23:00 +0000)
committerronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Fri, 21 Jan 2011 23:00:22 +0000 (23:00 +0000)
core/producer/frame_producer_device.cpp
core/producer/layer.cpp
core/producer/layer.h

index fe802dc0181468c00ede74a42a7f210b139a2264..6e43b9391800bdcbbc8c6186bbfbf3bc70334bdf 100644 (file)
@@ -64,7 +64,7 @@ public:
                {\r
                        for(size_t i = r.begin(); i != r.end(); ++i)\r
                        {\r
-                               frames[i] = layers_[i].receive();\r
+                               frames[i] = layers_[i].receive(i);\r
                                frames[i]->set_layer_index(i);\r
                        }\r
                });             \r
@@ -79,7 +79,7 @@ public:
                producer->initialize(factory_);\r
                executor_.invoke([&]\r
                {\r
-                       layers_[index].load(producer, play_on_load);\r
+                       layers_[index].load(index, producer, play_on_load);\r
                });\r
        }\r
                        \r
@@ -89,7 +89,7 @@ public:
                producer->initialize(factory_);\r
                executor_.invoke([&]\r
                {                       \r
-                       layers_[index].preview(producer);\r
+                       layers_[index].preview(index, producer);\r
                });\r
        }\r
 \r
@@ -98,7 +98,7 @@ public:
                check_bounds(index);\r
                executor_.invoke([&]\r
                {\r
-                       layers_[index].pause();\r
+                       layers_[index].pause(index);\r
                });\r
        }\r
 \r
@@ -107,7 +107,7 @@ public:
                check_bounds(index);\r
                executor_.invoke([&]\r
                {\r
-                       layers_[index].play();\r
+                       layers_[index].play(index);\r
                });\r
        }\r
 \r
@@ -116,7 +116,7 @@ public:
                check_bounds(index);\r
                executor_.invoke([&]\r
                {\r
-                       layers_[index].stop();\r
+                       layers_[index].stop(index);\r
                });\r
        }\r
 \r
index 6c36614a36d1a4ebbfb0f04748b1ceef4dc1f378..eed27b29473a4ac93f2f638ac66d8e07d32164a7 100644 (file)
@@ -27,18 +27,18 @@ public:
                , last_frame_(draw_frame::empty())\r
                , is_paused_(false){}\r
        \r
-       void load(const safe_ptr<frame_producer>& frame_producer, bool play_on_load)\r
+       void load(int index, const safe_ptr<frame_producer>& frame_producer, bool play_on_load)\r
        {                       \r
                background_ = frame_producer;\r
-               CASPAR_LOG(info) << print() << " " << frame_producer->print() << " => background";\r
+               CASPAR_LOG(info) << print(index) << " " << frame_producer->print() << " => background";\r
                if(play_on_load)\r
-                       play();                 \r
+                       play(index);                    \r
        }\r
 \r
-       void preview(const safe_ptr<frame_producer>& frame_producer)\r
+       void preview(int index, const safe_ptr<frame_producer>& frame_producer)\r
        {\r
-               stop();\r
-               load(frame_producer, false);            \r
+               stop(index);\r
+               load(index, frame_producer, false);             \r
                try\r
                {\r
                        last_frame_ = frame_producer->receive();\r
@@ -46,11 +46,11 @@ public:
                catch(...)\r
                {\r
                        CASPAR_LOG_CURRENT_EXCEPTION();\r
-                       clear();\r
+                       clear(index);\r
                }\r
        }\r
        \r
-       void play()\r
+       void play(int index)\r
        {                       \r
                if(is_paused_)                  \r
                        is_paused_ = false;\r
@@ -59,31 +59,31 @@ public:
                        background_->set_leading_producer(foreground_);\r
                        foreground_ = background_;\r
                        background_ = frame_producer::empty();\r
-                       CASPAR_LOG(info) << print() << L" background => foreground";\r
+                       CASPAR_LOG(info) << print(index) << L" background => foreground";\r
                }\r
        }\r
 \r
-       void pause()\r
+       void pause(int)\r
        {\r
                is_paused_ = true;\r
        }\r
 \r
-       void stop()\r
+       void stop(int index)\r
        {\r
-               pause();\r
+               pause(index);\r
                last_frame_ = draw_frame::empty();\r
                foreground_ = frame_producer::empty();\r
-               CASPAR_LOG(warning) << print() << L" empty => foreground";\r
+               CASPAR_LOG(warning) << print(index) << L" empty => foreground";\r
        }\r
 \r
-       void clear()\r
+       void clear(int index)\r
        {\r
-               stop();\r
+               stop(index);\r
                background_ = frame_producer::empty();\r
-               CASPAR_LOG(warning) << print() << L" empty => background";\r
+               CASPAR_LOG(warning) << print(index) << L" empty => background";\r
        }\r
        \r
-       safe_ptr<draw_frame> receive()\r
+       safe_ptr<draw_frame> receive(int index)\r
        {               \r
                if(is_paused_)\r
                        return last_frame_;\r
@@ -99,21 +99,21 @@ public:
                                following->set_leading_producer(foreground_);\r
                                foreground_ = following;\r
 \r
-                               CASPAR_LOG(info) << print() << L" [EOF] " << foreground_->print() << " => foreground";\r
+                               CASPAR_LOG(info) << print(index) << L" [EOF] " << foreground_->print() << " => foreground";\r
 \r
-                               last_frame_ = receive();\r
+                               last_frame_ = receive(index);\r
                        }\r
                }\r
                catch(...)\r
                {\r
                        CASPAR_LOG_CURRENT_EXCEPTION();\r
-                       stop();\r
+                       stop(index);\r
                }\r
 \r
                return last_frame_;\r
        }\r
 \r
-       std::wstring print() const { return L"layer[]"; }\r
+       std::wstring print(int index) const { return L"layer[" + boost::lexical_cast<std::wstring>(index) + L"]"; }\r
 };\r
 \r
 layer::layer() \r
@@ -135,13 +135,13 @@ void layer::swap(layer& other)
 {\r
        impl_ = other.impl_.compare_and_swap(impl_, other.impl_);\r
 }\r
-void layer::load(const safe_ptr<frame_producer>& frame_producer, bool play_on_load){return impl_->load(frame_producer, play_on_load);} \r
-void layer::preview(const safe_ptr<frame_producer>& frame_producer){return impl_->preview(frame_producer);}    \r
-void layer::play(){impl_->play();}\r
-void layer::pause(){impl_->pause();}\r
-void layer::stop(){impl_->stop();}\r
-void layer::clear(){impl_->clear();}\r
-safe_ptr<draw_frame> layer::receive() {return impl_->receive();}\r
+void layer::load(int index, const safe_ptr<frame_producer>& frame_producer, bool play_on_load){return impl_->load(index, frame_producer, play_on_load);}       \r
+void layer::preview(int index, const safe_ptr<frame_producer>& frame_producer){return impl_->preview(index, frame_producer);}  \r
+void layer::play(int index){impl_->play(index);}\r
+void layer::pause(int index){impl_->pause(index);}\r
+void layer::stop(int index){impl_->stop(index);}\r
+void layer::clear(int index){impl_->clear(index);}\r
+safe_ptr<draw_frame> layer::receive(int index) {return impl_->receive(index);}\r
 safe_ptr<frame_producer> layer::foreground() const { return impl_->foreground_;}\r
 safe_ptr<frame_producer> layer::background() const { return impl_->background_;}\r
 }}
\ No newline at end of file
index 41cc74f1dd90297f281e11456c84017fcb52c736..9ae70a11f4c09c64a0c979eb37e3cc61585912fd 100644 (file)
@@ -22,17 +22,17 @@ public:
        //NOTE: swap is thread-safe on "other", NOT on "this".\r
        void swap(layer& other); // nothrow \r
                \r
-       void load(const safe_ptr<frame_producer>& producer, bool play_on_load = false); // nothrow\r
-       void preview(const safe_ptr<frame_producer>& producer); // nothrow\r
-       void play(); // nothrow\r
-       void pause(); // nothrow\r
-       void stop(); // nothrow\r
-       void clear(); // nothrow\r
+       void load(int index, const safe_ptr<frame_producer>& producer, bool play_on_load = false); // nothrow\r
+       void preview(int index, const safe_ptr<frame_producer>& producer); // nothrow\r
+       void play(int index); // nothrow\r
+       void pause(int index); // nothrow\r
+       void stop(int index); // nothrow\r
+       void clear(int index); // nothrow\r
 \r
        safe_ptr<frame_producer> foreground() const; // nothrow\r
        safe_ptr<frame_producer> background() const; // nothrow\r
 \r
-       safe_ptr<draw_frame> receive(); // nothrow\r
+       safe_ptr<draw_frame> receive(int index); // nothrow\r
 private:\r
        struct implementation;\r
        tbb::atomic<implementation*> impl_;\r