Move some methods out of util.{cc,h}
authorCarl Hetherington <cth@carlh.net>
Sat, 10 Dec 2022 00:08:56 +0000 (01:08 +0100)
committerCarl Hetherington <cth@carlh.net>
Sat, 10 Dec 2022 00:16:06 +0000 (01:16 +0100)
src/lib/film.cc
src/lib/job.cc
src/lib/json_server.cc
src/lib/player.cc
src/lib/util.cc
src/lib/util.h
src/tools/dcpomatic_cli.cc
src/wx/gain_calculator_dialog.cc

index 5543a0d01a70b72f8a08abee84476ac5b4c20523..399bd3da3ca21f2f5b3f86050e7eea0795b34b03 100644 (file)
@@ -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<string> words;
        split (words, raw_name, is_any_of (" _-"));
index 12bcff415ec63a8ef3d49b4d3263b460ff7e08ce..6ec154c34b3804c7edc040367ce88ee1e0a7fdef 100644 (file)
@@ -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);
index 8c626ad1f0e2186d48d205f050dfececbf6de0bc..92d5c117152f837e4ba11624426f8c89cecd942d 100644 (file)
@@ -24,7 +24,6 @@
 #include "job_manager.h"
 #include "json_server.h"
 #include "transcode_job.h"
-#include "util.h"
 #include <dcp/raw_convert.h>
 #include <boost/asio.hpp>
 #include <boost/bind/bind.hpp>
@@ -152,6 +151,53 @@ JSONServer::handle (shared_ptr<tcp::socket> socket)
 }
 
 
+map<string, string>
+split_get_request(string url)
+{
+       enum {
+               AWAITING_QUESTION_MARK,
+               KEY,
+               VALUE
+       } state = AWAITING_QUESTION_MARK;
+
+       map<string, string> 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<tcp::socket> socket)
 {
index 40f726d107b716f7f51606e0e28f93a07f351cc9..c7dd83d6daa152a47ad294ffcf80bf077059589d 100644 (file)
@@ -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<Piece> weak_piece, ContentVideo video)
 {
index 7680f26323fbb86d2ad07bdac4f8274acb2766e5..086a99f243784439f6877065e8c89953f0114b20 100644 (file)
@@ -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<string, string>
-split_get_request (string url)
-{
-       enum {
-               AWAITING_QUESTION_MARK,
-               KEY,
-               VALUE
-       } state = AWAITING_QUESTION_MARK;
-
-       map<string, string> 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<dcp::Asset> asset, string type, int reel_index, int reel_count, optional<string> summary, string extension)
@@ -753,18 +706,6 @@ atmos_asset_filename (shared_ptr<dcp::AtmosAsset> asset, int reel_index, int ree
 }
 
 
-float
-relaxed_string_to_float (string s)
-{
-       try {
-               boost::algorithm::replace_all (s, ",", ".");
-               return lexical_cast<float> (s);
-       } catch (bad_lexical_cast &) {
-               boost::algorithm::replace_all (s, ".", ",");
-               return lexical_cast<float> (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
 
index ebd9295e66b6040fcae379be95101449338fe49d..61922325db3ec5070a8e54907fabd2dc984fa308 100644 (file)
@@ -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<std::string, std::string> split_get_request (std::string url);
 extern std::string video_asset_filename (std::shared_ptr<dcp::PictureAsset> asset, int reel_index, int reel_count, boost::optional<std::string> content_summary);
 extern std::string audio_asset_filename (std::shared_ptr<dcp::SoundAsset> asset, int reel_index, int reel_count, boost::optional<std::string> content_summary);
 extern std::string subtitle_asset_filename (std::shared_ptr<dcp::SubtitleAsset> asset, int reel_index, int reel_count, boost::optional<std::string> content_summary, std::string extension);
 extern std::string atmos_asset_filename (std::shared_ptr<dcp::AtmosAsset> asset, int reel_index, int reel_count, boost::optional<std::string> content_summary);
-extern float relaxed_string_to_float (std::string);
 extern std::string careful_string_filter (std::string);
 extern std::pair<int, int> audio_channel_types (std::list<int> mapped, int channels);
 extern std::shared_ptr<AudioBuffers> remap (std::shared_ptr<const AudioBuffers> 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<TextDecoder> decoder);
-extern bool show_jobs_on_console (bool progress);
 extern void copy_in_bits (boost::filesystem::path from, boost::filesystem::path to, std::function<void (float)>);
 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);
index be5345f9ee5f5a07f110c1fbb7bae4e2ee078bce..5e55b4da273d93e93ff1ad749a228d046d896269 100644 (file)
@@ -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[])
 {
index 9c8b87dac42bd622df15700be21a9551ca8a567c..62708fd224526d64f2b455c719c4a6e8ba2d468f 100644 (file)
 
 #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<float>
 GainCalculatorDialog::db_change () const
 {
        if (_wanted->GetValue().IsEmpty() || _actual->GetValue().IsEmpty()) {
-               return optional<float>();
+               return {};
        }
 
+       auto relaxed_string_to_float = [](std::string s) {
+               try {
+                       boost::algorithm::replace_all(s, ",", ".");
+                       return boost::lexical_cast<float>(s);
+               } catch (boost::bad_lexical_cast &) {
+                       boost::algorithm::replace_all(s, ".", ",");
+                       return boost::lexical_cast<float>(s);
+               }
+       };
+
        return CinemaSoundProcessor::from_index(
                _processor->GetSelection())->db_for_fader_change(
                        relaxed_string_to_float(wx_to_std(_wanted->GetValue())),