X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fbroadcast_info.cc;h=ccdb4a331eddb4117a072efc79a3aa4019db6f7f;hb=932d6c79d01be93f491415ef1491bca17d92671f;hp=b4a5427945a2394dde3e78e0acc44114780504c1;hpb=2ab85f4b667d0d53d2bce6935528c425b80951d3;p=ardour.git diff --git a/libs/ardour/broadcast_info.cc b/libs/ardour/broadcast_info.cc index b4a5427945..ccdb4a331e 100644 --- a/libs/ardour/broadcast_info.cc +++ b/libs/ardour/broadcast_info.cc @@ -18,18 +18,18 @@ */ -#include - +#include "ardour/broadcast_info.h" +#include #include #include #include -#include -#include -#include +#include "ardour/svn_revision.h" +#include "ardour/ardour.h" +#include "ardour/session.h" -#include +#include "pbd/convert.h" using namespace PBD; @@ -56,10 +56,10 @@ BroadcastInfo::BroadcastInfo () : { info = new SF_BROADCAST_INFO; memset (info, 0, sizeof (*info)); - + // Note: Set version to 1 when UMID is used, otherwise version should stay at 0 info->version = 0; - + time_t rawtime; std::time (&rawtime); _time = *localtime (&rawtime); @@ -77,24 +77,24 @@ BroadcastInfo::set_from_session (Session const & session, int64_t time_ref) set_time_reference (time_ref); set_origination_time (); set_originator (); - set_originator_ref (); + set_originator_ref (session); } bool -BroadcastInfo::load_from_file (string const & filename) +BroadcastInfo::load_from_file (std::string const & filename) { SNDFILE * file = 0; SF_INFO info; - + info.format = 0; - + if (!(file = sf_open (filename.c_str(), SFM_READ, &info))) { update_error(); return false; } - + bool ret = load_from_file (file); - + sf_close (file); return ret; } @@ -107,12 +107,12 @@ BroadcastInfo::load_from_file (SNDFILE* sf) _has_info = false; return false; } - + _has_info = true; return true; } -string +std::string BroadcastInfo::get_description () const { return info->description; @@ -124,7 +124,7 @@ BroadcastInfo::get_time_reference () const if (!_has_info) { return 0; } - + int64_t ret = (uint32_t) info->time_reference_high; ret <<= 32; ret |= (uint32_t) info->time_reference_low; @@ -135,47 +135,47 @@ struct tm BroadcastInfo::get_origination_time () const { struct tm ret; - - string date = info->origination_date; + + std::string date = info->origination_date; ret.tm_year = atoi (date.substr (0, 4)) - 1900; ret.tm_mon = atoi (date.substr (5, 2)); ret.tm_mday = atoi (date.substr (8, 2)); - - string time = info->origination_time; + + std::string time = info->origination_time; ret.tm_hour = atoi (time.substr (0,2)); ret.tm_min = atoi (time.substr (3,2)); ret.tm_sec = atoi (time.substr (6,2)); - + return ret; } -string +std::string BroadcastInfo::get_originator () const { return info->originator; } -string +std::string BroadcastInfo::get_originator_ref () const { return info->originator_reference; } bool -BroadcastInfo::write_to_file (string const & filename) +BroadcastInfo::write_to_file (std::string const & filename) { SNDFILE * file = 0; SF_INFO info; - + info.format = 0; - + if (!(file = sf_open (filename.c_str(), SFM_RDWR, &info))) { update_error(); return false; } - + bool ret = write_to_file (file); - + sf_close (file); return ret; } @@ -187,15 +187,15 @@ BroadcastInfo::write_to_file (SNDFILE* sf) update_error(); return false; } - + return true; } void -BroadcastInfo::set_description (string const & desc) +BroadcastInfo::set_description (std::string const & desc) { _has_info = true; - + snprintf_bounded_null_filled (info->description, sizeof (info->description), desc.c_str()); } @@ -203,7 +203,7 @@ void BroadcastInfo::set_time_reference (int64_t when) { _has_info = true; - + info->time_reference_high = (when >> 32); info->time_reference_low = (when & 0xffffffff); } @@ -212,16 +212,16 @@ void BroadcastInfo::set_origination_time (struct tm * now) { _has_info = true; - + if (now) { _time = *now; } - + snprintf_bounded_null_filled (info->origination_date, sizeof (info->origination_date), "%4d-%02d-%02d", _time.tm_year + 1900, _time.tm_mon + 1, _time.tm_mday); - + snprintf_bounded_null_filled (info->origination_time, sizeof (info->origination_time), "%02d:%02d:%02d", _time.tm_hour, _time.tm_min, @@ -229,46 +229,46 @@ BroadcastInfo::set_origination_time (struct tm * now) } void -BroadcastInfo::set_originator (string const & str) +BroadcastInfo::set_originator (std::string const & str) { _has_info = true; - + if (!str.empty()) { snprintf_bounded_null_filled (info->originator, sizeof (info->originator), str.c_str()); return; } - + snprintf_bounded_null_filled (info->originator, sizeof (info->originator), Glib::get_real_name().c_str()); } void -BroadcastInfo::set_originator_ref (string const & str) +BroadcastInfo::set_originator_ref (Session const & session, std::string const & str) { _has_info = true; - + if (!str.empty()) { snprintf_bounded_null_filled (info->originator_reference, sizeof (info->originator_reference), str.c_str()); return; } - + /* random code is 9 digits */ - + int random_code = random() % 999999999; - + /* Serial number is 12 chars */ - + std::ostringstream serial_number; serial_number << "ARDOUR" << "r" << std::setfill('0') << std::right << std::setw(5) << svn_revision; - + snprintf_bounded_null_filled (info->originator_reference, sizeof (info->originator_reference), "%2s%3s%12s%02d%02d%02d%9d", - Config->get_bwf_country_code().c_str(), - Config->get_bwf_organization_code().c_str(), + session.config.get_bwf_country_code().c_str(), + session.config.get_bwf_organization_code().c_str(), serial_number.str().c_str(), _time.tm_hour, _time.tm_min, _time.tm_sec, random_code); - + } void