}
}
-#ifdef DCPOMATIC_VARIANT_SWAROOP
- optional<dcp::EncryptedKDM> get_kdm_from_url (shared_ptr<DCPContent> dcp)
- {
- ScopedTemporary temp;
- string url = Config::instance()->kdm_server_url();
- boost::algorithm::replace_all (url, "{CPL}", *dcp->cpl());
- optional<dcp::EncryptedKDM> kdm;
- if (dcp->cpl() && !get_from_url(url, false, temp)) {
- try {
- kdm = dcp::EncryptedKDM (dcp::file_to_string(temp.file()));
- if (kdm->cpl_id() != dcp->cpl()) {
- kdm = boost::none;
- }
- } catch (std::exception& e) {
- /* Hey well */
- }
- }
- return kdm;
- }
-#endif
-
- optional<dcp::EncryptedKDM> get_kdm_from_directory (shared_ptr<DCPContent> dcp)
- {
- using namespace boost::filesystem;
- optional<path> kdm_dir = Config::instance()->player_kdm_directory();
- if (!kdm_dir) {
- return optional<dcp::EncryptedKDM>();
- }
- for (directory_iterator i = directory_iterator(*kdm_dir); i != directory_iterator(); ++i) {
- try {
- if (file_size(i->path()) < MAX_KDM_SIZE) {
- dcp::EncryptedKDM kdm (dcp::file_to_string(i->path()));
- if (kdm.cpl_id() == dcp->cpl()) {
- return kdm;
- }
- }
- } catch (std::exception& e) {
- /* Hey well */
- }
- }
- return optional<dcp::EncryptedKDM>();
- }
-
void reset_film_weak (weak_ptr<Film> weak_film)
{
shared_ptr<Film> film = weak_film.lock ();
BOOST_FOREACH (shared_ptr<Content> i, _film->content()) {
shared_ptr<DCPContent> dcp = dynamic_pointer_cast<DCPContent>(i);
- if (dcp && dcp->needs_kdm()) {
- optional<dcp::EncryptedKDM> kdm;
-#ifdef DCPOMATIC_VARIANT_SWAROOP
- kdm = get_kdm_from_url (dcp);
-#endif
- if (!kdm) {
- kdm = get_kdm_from_directory (dcp);
- }
-
- if (kdm) {
- dcp->add_kdm (*kdm);
- dcp->examine (_film, shared_ptr<Job>());
- }
- }
BOOST_FOREACH (shared_ptr<TextContent> j, i->text) {
j->set_use (true);