]> git.sesse.net Git - casparcg/blobdiff - modules/bluefish/bluefish.cpp
Reduced the coupling between specific modules and InfoCommand, VersionCommand and...
[casparcg] / modules / bluefish / bluefish.cpp
index b01e51f46f015f5e307d74bf4df999856d34bb1c..785ac469744a7ee73f384e0e0450ab10a5ab178d 100644 (file)
 #include <common/utf.h>
 
 #include <core/consumer/frame_consumer.h>
+#include <core/system_info_provider.h>
 
 #include <boost/lexical_cast.hpp>
+#include <boost/property_tree/ptree.hpp>
 
 namespace caspar { namespace bluefish {
 
-void init()
-{
-       try
-       {
-               blue_initialize();
-               core::register_consumer_factory([](const std::vector<std::wstring>& params)
-               {
-                       return create_consumer(params);
-               });
-       }
-       catch(...){}
-}
-
 std::wstring version()
 {
        try
@@ -87,4 +76,25 @@ std::vector<std::wstring> device_list()
        return devices;
 }
 
+void init(const spl::shared_ptr<core::system_info_provider_repository>& repo)
+{
+       try
+       {
+               blue_initialize();
+       }
+       catch(...){}
+
+       core::register_consumer_factory([](const std::vector<std::wstring>& params)
+       {
+               return create_consumer(params);
+       });
+       repo->register_system_info_provider([](boost::property_tree::wptree& info)
+       {
+               info.add(L"system.bluefish.version", version());
+
+               for (auto device : device_list())
+                       info.add(L"system.bluefish.device", device);
+       });
+}
+
 }}
\ No newline at end of file