]> git.sesse.net Git - casparcg/blobdiff - modules/bluefish/bluefish.cpp
2.0. Updated namespaces.
[casparcg] / modules / bluefish / bluefish.cpp
index 2e39229aaef51983a45e8a60f4098a38bb698567..73a7c8bc37a31f38d9efdeee4c88f4d9480d0ba5 100644 (file)
 */\r
 #include "bluefish.h"\r
 \r
+#include "consumer/bluefish_consumer.h"\r
+\r
+#include "util/blue_velvet.h"\r
+\r
+#include <common/log/log.h>\r
+#include <common/utility/string.h>\r
+\r
 #include <core/consumer/frame_consumer.h>\r
 \r
-namespace caspar {\r
+#include <boost/lexical_cast.hpp>\r
+\r
+namespace caspar { namespace bluefish {\r
+\r
+void init()\r
+{\r
+       try\r
+       {\r
+               blue_initialize();\r
+               core::register_consumer_factory([](const std::vector<std::wstring>& params)\r
+               {\r
+                       return create_consumer(params);\r
+               });\r
+       }\r
+       catch(...)\r
+       {\r
+               //CASPAR_LOG_CURRENT_EXCEPTION();\r
+               CASPAR_LOG(info) << L"Bluefish not supported.";\r
+       }\r
+}\r
 \r
-void init_bluefish()\r
+std::wstring get_version()\r
 {\r
        try\r
        {\r
                blue_initialize();\r
-               core::register_consumer_factory([](const std::vector<std::wstring>& params){return create_bluefish_consumer(params);});\r
+       }\r
+       catch(...)\r
+       {\r
+               return L"Not found";\r
+       }\r
+\r
+       if(!BlueVelvetVersion)\r
+               return L"Unknown";\r
+\r
+       return widen(std::string(BlueVelvetVersion()));\r
+}\r
+\r
+std::vector<std::wstring> get_device_list()\r
+{\r
+       std::vector<std::wstring> devices;\r
+\r
+       try\r
+       {               \r
+               blue_initialize();\r
+               \r
+               auto blue = create_blue();\r
+\r
+               for(int n = 1; BLUE_PASS(blue->device_attach(n, FALSE)); ++n)\r
+               {                               \r
+                       devices.push_back(std::wstring(get_card_desc(*blue)) + L" [" + boost::lexical_cast<std::wstring>(n) + L"]");\r
+                       blue->device_detach();          \r
+               }\r
        }\r
        catch(...){}\r
+\r
+       return devices;\r
 }\r
 \r
-}
\ No newline at end of file
+}}
\ No newline at end of file