]> git.sesse.net Git - casparcg/blobdiff - core/producer/cg_proxy.cpp
[version.tmpl] Changed tag to Beta 1
[casparcg] / core / producer / cg_proxy.cpp
index 83099f2a3ab3ab768b58f9a48404473acc459dff..74a1318e83112232f24990856b8773a04755e3cd 100644 (file)
@@ -75,9 +75,6 @@ private:
                bool                                    reusable_producer_instance;
        };
 
-       struct name {};
-       struct extension {};
-
        mutable boost::mutex                    mutex_;
        std::map<std::wstring, record>  records_by_extension_;
 public:
@@ -190,7 +187,7 @@ public:
                                return rec.second.info_extractor(*found);
                }
 
-               CASPAR_THROW_EXCEPTION(caspar_exception() << msg_info(L"No meta info extractor for " + filename));
+               CASPAR_THROW_EXCEPTION(user_error() << msg_info(L"No meta info extractor for " + filename));
        }
 
        bool is_cg_extension(const std::wstring& extension) const
@@ -199,6 +196,16 @@ public:
 
                return records_by_extension_.find(extension) != records_by_extension_.end();
        }
+
+       std::wstring get_cg_producer_name(const std::wstring& filename) const
+       {
+               auto record = find_record(filename);
+
+               if (!record)
+                       CASPAR_THROW_EXCEPTION(caspar_exception() << msg_info(filename + L" is not a cg template."));
+
+               return record->name;
+       }
 private:
        boost::optional<record> find_record(const std::wstring& filename) const
        {
@@ -278,4 +285,9 @@ bool cg_producer_registry::is_cg_extension(const std::wstring& extension) const
        return impl_->is_cg_extension(extension);
 }
 
+std::wstring cg_producer_registry::get_cg_producer_name(const std::wstring& filename) const
+{
+       return impl_->get_cg_producer_name(filename);
+}
+
 }}