*/\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