]> git.sesse.net Git - casparcg/blobdiff - core/channel.h
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches...
[casparcg] / core / channel.h
index a5ca2b1b0a59a5f2293bcd8d974fe6e12b66ad96..0605fde8ebbc47c22dc68b160279894f41781dcf 100644 (file)
@@ -1,9 +1,10 @@
 #pragma once\r
 \r
-#include "consumer/frame_consumer.h"\r
-#include "producer/frame_producer.h"\r
+#include "consumer/frame_consumer_device.h"\r
+#include "mixer/frame_mixer_device.h"\r
+#include "producer/frame_producer_device.h"\r
 \r
-#include <common/utility/safe_ptr.h>\r
+#include <common/memory/safe_ptr.h>\r
 \r
 #include <boost/noncopyable.hpp>\r
 #include <boost/thread/future.hpp>\r
@@ -16,26 +17,22 @@ namespace caspar { namespace core {
 /// \brief\r
 ///            \r
 ///                |**********| <-   empty frame   <- |***********| <-   frame format  <- |**********|\r
-///   PROTOCOL ->  | PRODUCER |                       | PROCESSOR |                       | CONSUMER |  -> DISPLAY DEVICE\r
+///   PROTOCOL ->  | PRODUCER |                       |   MIXER          |                       | CONSUMER |  -> DISPLAY DEVICE\r
 ///                |**********| -> rendered frames -> |***********| -> formatted frame -> |**********|\r
 ///   \r
 ////////////////////////////////////////////////////////////////////////////////////////////////////\r
 class channel : boost::noncopyable\r
 {\r
 public:\r
+       explicit channel(const video_format_desc& format_desc);\r
        channel(channel&& other);\r
-       channel(const video_format_desc& format_desc, const std::vector<safe_ptr<frame_consumer>>& consumers);\r
-       \r
-       void load(int index, const safe_ptr<frame_producer>& producer, bool autoplay = false);\r
-       void preview(int index, const safe_ptr<frame_producer>& producer);\r
-       void pause(int index);\r
-       void play(int index);\r
-       void stop(int index);\r
-       void clear(int index);\r
-       void clear();   \r
-       boost::unique_future<safe_ptr<frame_producer>> foreground(int index) const;\r
-       boost::unique_future<safe_ptr<frame_producer>> background(int index) const;\r
+\r
+       frame_producer_device& producer();\r
+       frame_mixer_device& mixer();\r
+       frame_consumer_device& consumer();\r
+\r
        const video_format_desc& get_video_format_desc() const;\r
+\r
 private:\r
        struct implementation;\r
        safe_ptr<implementation> impl_;\r