X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fmetadata.cc;h=8d8abc60f625165d6091c4eca668ccddd4d0f385;hb=bec7cbcc015814452690a0f702cc41b6f5f56311;hp=07e289b3ccaadeee38ab06d254dbe6758d516037;hpb=4de6f6e4f4df4cc9b28b98188d36082b26e81345;p=libdcp.git diff --git a/src/metadata.cc b/src/metadata.cc index 07e289b3..8d8abc60 100644 --- a/src/metadata.cc +++ b/src/metadata.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2012 Carl Hetherington + Copyright (C) 2012-2014 Carl Hetherington This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -18,40 +18,46 @@ */ /** @file src/metadata.cc - * @brief Metadata for writing to the DCP. + * @brief XMLMetadata and MXFMetadata classes. */ #include "metadata.h" +#include "util.h" +#include "local_time.h" +#include "AS_DCP.h" +#include +#include +#include using namespace std; -using namespace libdcp; +using namespace dcp; -Metadata* Metadata::_instance = 0; - -/** Construct a Metadata object with some default values */ -Metadata::Metadata () +MXFMetadata::MXFMetadata () : company_name ("libdcp") , product_name ("libdcp") , product_version (LIBDCP_VERSION) - , issuer ("libdcp" LIBDCP_VERSION) - , creator ("libdcp" LIBDCP_VERSION) { - char buffer[64]; - time_t now; - time (&now); - struct tm* tm = localtime (&now); - strftime (buffer, 64, "%Y-%m-%dT%I:%M:%S+00:00", tm); - issue_date = string (buffer); + } -/** @return Singleton Metadata instance */ -Metadata * -Metadata::instance () +void +MXFMetadata::read (ASDCP::WriterInfo const & info) { - if (_instance == 0) { - _instance = new Metadata; - } + company_name = info.CompanyName; + product_name = info.ProductName; + product_version = info.ProductVersion; +} - return _instance; +XMLMetadata::XMLMetadata () + : issuer ("libdcp" LIBDCP_VERSION) + , creator ("libdcp" LIBDCP_VERSION) +{ + set_issue_date_now (); +} + +/** Set the issue date to the current local time */ +void +XMLMetadata::set_issue_date_now () +{ + issue_date = LocalTime().as_string (); } -