]> git.sesse.net Git - casparcg/blobdiff - modules/bluefish/consumer/bluefish_consumer.cpp
2.0.0.2: Added only_key support to all consumers.
[casparcg] / modules / bluefish / consumer / bluefish_consumer.cpp
index 5bdef668d6655fabd004c17c39427caadea26ce5..f0bb889a40545b17164232c51f899b1097833b3b 100644 (file)
@@ -24,7 +24,7 @@
 #include "../util/util.h"\r
 #include "../util/memory.h"\r
 \r
-#include <core/consumer/frame/read_frame.h>\r
+#include <core/mixer/read_frame.h>\r
 \r
 #include <common/concurrency/executor.h>\r
 #include <common/diagnostics/graph.h>\r
@@ -229,7 +229,7 @@ public:
 \r
                active_ = executor_.begin_invoke([]{});\r
                                \r
-               CASPAR_LOG(info) << print() << TEXT(" Successfully initialized for ") << format_desc_ << TEXT(".");\r
+               CASPAR_LOG(info) << print() << L" Successfully Initialized.";\r
        }\r
 \r
        ~bluefish_consumer()\r
@@ -348,7 +348,7 @@ public:
        \r
        std::wstring print() const\r
        {\r
-               return model_name_ + L" [" + boost::lexical_cast<std::wstring>(device_index_) + L"]";\r
+               return model_name_ + L" [" + boost::lexical_cast<std::wstring>(device_index_) + L"|" +  format_desc_.name + L"]";\r
        }\r
 };\r
 \r
@@ -357,11 +357,13 @@ struct bluefish_consumer_proxy : public core::frame_consumer
        std::unique_ptr<bluefish_consumer> consumer_;\r
        const size_t device_index_;\r
        const bool embedded_audio_;\r
+       bool key_only_;\r
 public:\r
 \r
-       bluefish_consumer_proxy(size_t device_index, bool embedded_audio)\r
+       bluefish_consumer_proxy(size_t device_index, bool embedded_audio, bool key_only)\r
                : device_index_(device_index)\r
-               , embedded_audio_(embedded_audio){}\r
+               , embedded_audio_(embedded_audio)\r
+               , key_only_(key_only){}\r
        \r
        virtual void initialize(const core::video_format_desc& format_desc)\r
        {\r
@@ -377,6 +379,11 @@ public:
        {\r
                return consumer_->print();\r
        }\r
+\r
+       virtual bool key_only() const\r
+       {\r
+               return key_only_;\r
+       }\r
 };     \r
 \r
 std::wstring get_bluefish_version()\r
@@ -408,7 +415,7 @@ std::vector<std::wstring> get_bluefish_device_list()
 \r
                for(int n = 1; BLUE_PASS(blue->device_attach(n, FALSE)); ++n)\r
                {                               \r
-                       devices.push_back(L"[" + boost::lexical_cast<std::wstring>(n) + L"] " + get_card_desc(blue->has_video_cardtype()));\r
+                       devices.push_back(std::wstring(get_card_desc(blue->has_video_cardtype())) + L" [" + boost::lexical_cast<std::wstring>(n) + L"]");\r
                        blue->device_detach();          \r
                }\r
        }\r
@@ -427,16 +434,18 @@ safe_ptr<core::frame_consumer> create_bluefish_consumer(const std::vector<std::w
                device_index = lexical_cast_or_default<int>(params[1], 1);\r
 \r
        bool embedded_audio = std::find(params.begin(), params.end(), L"EMBEDDED_AUDIO") != params.end();\r
+       bool key_only = std::find(params.begin(), params.end(), L"KEY_ONLY") != params.end();\r
 \r
-       return make_safe<bluefish_consumer_proxy>(device_index, embedded_audio);\r
+       return make_safe<bluefish_consumer_proxy>(device_index, embedded_audio, key_only);\r
 }\r
 \r
 safe_ptr<core::frame_consumer> create_bluefish_consumer(const boost::property_tree::ptree& ptree) \r
 {      \r
        auto device_index = ptree.get("device", 0);\r
        auto embedded_audio  = ptree.get("embedded-audio", false);\r
+       bool key_only = (ptree.get("output", "fill_and_key") == "key_only");\r
 \r
-       return make_safe<bluefish_consumer_proxy>(device_index, embedded_audio);\r
+       return make_safe<bluefish_consumer_proxy>(device_index, embedded_audio, key_only);\r
 }\r
 \r
 }
\ No newline at end of file