From 02b74112721d13a27b0bbaece714d5c8ea743d43 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sat, 10 Dec 2022 01:08:56 +0100 Subject: [PATCH] Move some methods out of util.{cc,h} --- src/lib/film.cc | 5 ++ src/lib/job.cc | 21 +++++ src/lib/json_server.cc | 48 ++++++++++- src/lib/player.cc | 12 +++ src/lib/util.cc | 143 ------------------------------- src/lib/util.h | 7 -- src/tools/dcpomatic_cli.cc | 56 ++++++++++++ src/wx/gain_calculator_dialog.cc | 15 +++- 8 files changed, 154 insertions(+), 153 deletions(-) diff --git a/src/lib/film.cc b/src/lib/film.cc index 5543a0d01..399bd3da3 100644 --- a/src/lib/film.cc +++ b/src/lib/film.cc @@ -809,6 +809,11 @@ Film::isdcf_name (bool if_created_now) const auto raw_name = name (); + auto to_upper = [](string s) { + transform(s.begin(), s.end(), s.begin(), ::toupper); + return s; + }; + /* Split the raw name up into words */ vector words; split (words, raw_name, is_any_of (" _-")); diff --git a/src/lib/job.cc b/src/lib/job.cc index 12bcff415..6ec154c34 100644 --- a/src/lib/job.cc +++ b/src/lib/job.cc @@ -514,6 +514,27 @@ Job::status () const int const t = elapsed_sub_time (); int const r = remaining_time (); + auto day_of_week_to_string = [](boost::gregorian::greg_weekday d) -> std::string { + switch (d.as_enum()) { + case boost::date_time::Sunday: + return _("Sunday"); + case boost::date_time::Monday: + return _("Monday"); + case boost::date_time::Tuesday: + return _("Tuesday"); + case boost::date_time::Wednesday: + return _("Wednesday"); + case boost::date_time::Thursday: + return _("Thursday"); + case boost::date_time::Friday: + return _("Friday"); + case boost::date_time::Saturday: + return _("Saturday"); + } + + return d.as_long_string(); + }; + string s; if (!finished () && p) { int pc = lrintf (p.get() * 100); diff --git a/src/lib/json_server.cc b/src/lib/json_server.cc index 8c626ad1f..92d5c1171 100644 --- a/src/lib/json_server.cc +++ b/src/lib/json_server.cc @@ -24,7 +24,6 @@ #include "job_manager.h" #include "json_server.h" #include "transcode_job.h" -#include "util.h" #include #include #include @@ -152,6 +151,53 @@ JSONServer::handle (shared_ptr socket) } +map +split_get_request(string url) +{ + enum { + AWAITING_QUESTION_MARK, + KEY, + VALUE + } state = AWAITING_QUESTION_MARK; + + map r; + string k; + string v; + for (size_t i = 0; i < url.length(); ++i) { + switch (state) { + case AWAITING_QUESTION_MARK: + if (url[i] == '?') { + state = KEY; + } + break; + case KEY: + if (url[i] == '=') { + v.clear(); + state = VALUE; + } else { + k += url[i]; + } + break; + case VALUE: + if (url[i] == '&') { + r.insert(make_pair(k, v)); + k.clear (); + state = KEY; + } else { + v += url[i]; + } + break; + } + } + + if (state == VALUE) { + r.insert (make_pair (k, v)); + } + + return r; +} + + void JSONServer::request (string url, shared_ptr socket) { diff --git a/src/lib/player.cc b/src/lib/player.cc index 40f726d10..c7dd83d6d 100644 --- a/src/lib/player.cc +++ b/src/lib/player.cc @@ -932,6 +932,18 @@ Player::open_subtitles_for_frame (DCPTime time) const } +static +Eyes +increment_eyes (Eyes e) +{ + if (e == Eyes::LEFT) { + return Eyes::RIGHT; + } + + return Eyes::LEFT; +} + + void Player::video (weak_ptr weak_piece, ContentVideo video) { diff --git a/src/lib/util.cc b/src/lib/util.cc index 7680f2632..086a99f24 100644 --- a/src/lib/util.cc +++ b/src/lib/util.cc @@ -663,53 +663,6 @@ fit_ratio_within (float ratio, dcp::Size full_frame) return dcp::Size (full_frame.width, lrintf (full_frame.width / ratio)); } -map -split_get_request (string url) -{ - enum { - AWAITING_QUESTION_MARK, - KEY, - VALUE - } state = AWAITING_QUESTION_MARK; - - map r; - string k; - string v; - for (size_t i = 0; i < url.length(); ++i) { - switch (state) { - case AWAITING_QUESTION_MARK: - if (url[i] == '?') { - state = KEY; - } - break; - case KEY: - if (url[i] == '=') { - v.clear (); - state = VALUE; - } else { - k += url[i]; - } - break; - case VALUE: - if (url[i] == '&') { - r.insert (make_pair (k, v)); - k.clear (); - state = KEY; - } else { - v += url[i]; - } - break; - } - } - - if (state == VALUE) { - r.insert (make_pair (k, v)); - } - - return r; -} - - static string asset_filename (shared_ptr asset, string type, int reel_index, int reel_count, optional summary, string extension) @@ -753,18 +706,6 @@ atmos_asset_filename (shared_ptr asset, int reel_index, int ree } -float -relaxed_string_to_float (string s) -{ - try { - boost::algorithm::replace_all (s, ",", "."); - return lexical_cast (s); - } catch (bad_lexical_cast &) { - boost::algorithm::replace_all (s, ".", ","); - return lexical_cast (s); - } -} - string careful_string_filter (string s) { @@ -904,28 +845,6 @@ utf8_strlen (string s) return N; } -string -day_of_week_to_string (boost::gregorian::greg_weekday d) -{ - switch (d.as_enum()) { - case boost::date_time::Sunday: - return _("Sunday"); - case boost::date_time::Monday: - return _("Monday"); - case boost::date_time::Tuesday: - return _("Tuesday"); - case boost::date_time::Wednesday: - return _("Wednesday"); - case boost::date_time::Thursday: - return _("Thursday"); - case boost::date_time::Friday: - return _("Friday"); - case boost::date_time::Saturday: - return _("Saturday"); - } - - return d.as_long_string (); -} /** @param size Size of picture that the subtitle will be overlaid onto */ void @@ -966,60 +885,6 @@ emit_subtitle_image (ContentTimePeriod period, dcp::SubtitleImage sub, dcp::Size decoder->emit_bitmap (period, image, rect); } -bool -show_jobs_on_console (bool progress) -{ - bool first = true; - bool error = false; - while (true) { - - dcpomatic_sleep_seconds (5); - - auto jobs = JobManager::instance()->get(); - - if (!first && progress) { - for (size_t i = 0; i < jobs.size(); ++i) { - cout << "\033[1A\033[2K"; - } - cout.flush (); - } - - first = false; - - for (auto i: jobs) { - if (progress) { - cout << i->name(); - if (!i->sub_name().empty()) { - cout << "; " << i->sub_name(); - } - cout << ": "; - - if (i->progress ()) { - cout << i->status() << " \n"; - } else { - cout << ": Running \n"; - } - } - - if (!progress && i->finished_in_error()) { - /* We won't see this error if we haven't been showing progress, - so show it now. - */ - cout << i->status() << "\n"; - } - - if (i->finished_in_error()) { - error = true; - } - } - - if (!JobManager::instance()->work_to_do()) { - break; - } - } - - return error; -} /** XXX: could use mmap? */ void @@ -1130,14 +995,6 @@ default_font_file () } -string -to_upper (string s) -{ - transform (s.begin(), s.end(), s.begin(), ::toupper); - return s; -} - - /* Set to 1 to print the IDs of some of our threads to stdout on creation */ #define DCPOMATIC_DEBUG_THREADS 0 diff --git a/src/lib/util.h b/src/lib/util.h index ebd9295e6..61922325d 100644 --- a/src/lib/util.h +++ b/src/lib/util.h @@ -55,7 +55,6 @@ namespace dcp { extern std::string program_name; extern bool is_batch_converter; -struct AVSubtitle; class AudioBuffers; class TextDecoder; @@ -80,25 +79,19 @@ extern boost::filesystem::path mo_path (); extern std::string tidy_for_filename (std::string); extern dcp::Size fit_ratio_within (float ratio, dcp::Size); extern void set_backtrace_file (boost::filesystem::path); -extern std::map split_get_request (std::string url); extern std::string video_asset_filename (std::shared_ptr asset, int reel_index, int reel_count, boost::optional content_summary); extern std::string audio_asset_filename (std::shared_ptr asset, int reel_index, int reel_count, boost::optional content_summary); extern std::string subtitle_asset_filename (std::shared_ptr asset, int reel_index, int reel_count, boost::optional content_summary, std::string extension); extern std::string atmos_asset_filename (std::shared_ptr asset, int reel_index, int reel_count, boost::optional content_summary); -extern float relaxed_string_to_float (std::string); extern std::string careful_string_filter (std::string); extern std::pair audio_channel_types (std::list mapped, int channels); extern std::shared_ptr remap (std::shared_ptr input, int output_channels, AudioMapping map); -extern Eyes increment_eyes (Eyes e); extern size_t utf8_strlen (std::string s); -extern std::string day_of_week_to_string (boost::gregorian::greg_weekday d); extern void emit_subtitle_image (dcpomatic::ContentTimePeriod period, dcp::SubtitleImage sub, dcp::Size size, std::shared_ptr decoder); -extern bool show_jobs_on_console (bool progress); extern void copy_in_bits (boost::filesystem::path from, boost::filesystem::path to, std::function); extern dcp::Size scale_for_display (dcp::Size s, dcp::Size display_container, dcp::Size film_container, PixelQuanta quanta); extern dcp::DecryptedKDM decrypt_kdm_with_helpful_error (dcp::EncryptedKDM kdm); extern boost::filesystem::path default_font_file (); -extern std::string to_upper (std::string s); extern void start_of_thread (std::string name); extern void capture_asdcp_logs (); extern std::string error_details(boost::system::error_code ec); diff --git a/src/tools/dcpomatic_cli.cc b/src/tools/dcpomatic_cli.cc index be5345f9e..5e55b4da2 100644 --- a/src/tools/dcpomatic_cli.cc +++ b/src/tools/dcpomatic_cli.cc @@ -196,6 +196,62 @@ list_servers () } +bool +show_jobs_on_console (bool progress) +{ + bool first = true; + bool error = false; + while (true) { + + dcpomatic_sleep_seconds (5); + + auto jobs = JobManager::instance()->get(); + + if (!first && progress) { + for (size_t i = 0; i < jobs.size(); ++i) { + cout << "\033[1A\033[2K"; + } + cout.flush (); + } + + first = false; + + for (auto i: jobs) { + if (progress) { + cout << i->name(); + if (!i->sub_name().empty()) { + cout << "; " << i->sub_name(); + } + cout << ": "; + + if (i->progress ()) { + cout << i->status() << " \n"; + } else { + cout << ": Running \n"; + } + } + + if (!progress && i->finished_in_error()) { + /* We won't see this error if we haven't been showing progress, + so show it now. + */ + cout << i->status() << "\n"; + } + + if (i->finished_in_error()) { + error = true; + } + } + + if (!JobManager::instance()->work_to_do()) { + break; + } + } + + return error; +} + + int main (int argc, char* argv[]) { diff --git a/src/wx/gain_calculator_dialog.cc b/src/wx/gain_calculator_dialog.cc index 9c8b87dac..62708fd22 100644 --- a/src/wx/gain_calculator_dialog.cc +++ b/src/wx/gain_calculator_dialog.cc @@ -20,11 +20,12 @@ #include "gain_calculator_dialog.h" #include "wx_util.h" -#include "lib/util.h" #include "lib/cinema_sound_processor.h" + using boost::optional; + GainCalculatorDialog::GainCalculatorDialog (wxWindow* parent) : TableDialog (parent, _("Gain Calculator"), 2, 1, true) { @@ -50,9 +51,19 @@ optional GainCalculatorDialog::db_change () const { if (_wanted->GetValue().IsEmpty() || _actual->GetValue().IsEmpty()) { - return optional(); + return {}; } + auto relaxed_string_to_float = [](std::string s) { + try { + boost::algorithm::replace_all(s, ",", "."); + return boost::lexical_cast(s); + } catch (boost::bad_lexical_cast &) { + boost::algorithm::replace_all(s, ".", ","); + return boost::lexical_cast(s); + } + }; + return CinemaSoundProcessor::from_index( _processor->GetSelection())->db_for_fader_change( relaxed_string_to_float(wx_to_std(_wanted->GetValue())), -- 2.30.2