projects
/
dcpomatic.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge master.
[dcpomatic.git]
/
src
/
lib
/
util.cc
diff --git
a/src/lib/util.cc
b/src/lib/util.cc
index 55df5cc83798ba126eeebc82a0e9ca0d7f71aa34..837f3cdf3af1d044d266271894a61032e2c4b9f1 100644
(file)
--- a/
src/lib/util.cc
+++ b/
src/lib/util.cc
@@
-64,7
+64,7
@@
extern "C" {
#include "scaler.h"
#include "dcp_content_type.h"
#include "filter.h"
#include "scaler.h"
#include "dcp_content_type.h"
#include "filter.h"
-#include "sound_processor.h"
+#include "
cinema_
sound_processor.h"
#include "config.h"
#include "ratio.h"
#include "job.h"
#include "config.h"
#include "ratio.h"
#include "job.h"
@@
-72,6
+72,7
@@
extern "C" {
#include "video_content.h"
#include "rect.h"
#include "md5_digester.h"
#include "video_content.h"
#include "rect.h"
#include "md5_digester.h"
+#include "audio_processor.h"
#ifdef DCPOMATIC_WINDOWS
#include "stack.hpp"
#endif
#ifdef DCPOMATIC_WINDOWS
#include "stack.hpp"
#endif
@@
-145,25
+146,54
@@
seconds_to_approximate_hms (int s)
m -= (h * 60);
stringstream ap;
m -= (h * 60);
stringstream ap;
-
- if (h > 0) {
- if (m > 30) {
+
+ bool const hours = h > 0;
+ bool const minutes = h < 10 && m > 0;
+ bool const seconds = m < 10 && s > 0;
+
+ if (hours) {
+ if (m > 30 && !minutes) {
ap << (h + 1) << N_(" ") << _("hours");
} else {
ap << (h + 1) << N_(" ") << _("hours");
} else {
+ ap << h << N_(" ");
if (h == 1) {
if (h == 1) {
- ap << N_("1 ") << _("hour");
+ ap << _("hour");
+ } else {
+ ap << _("hours");
+ }
+ }
+
+ if (minutes | seconds) {
+ ap << N_(" ");
+ }
+ }
+
+ if (minutes) {
+ /* Minutes */
+ if (s > 30 && !seconds) {
+ ap << (m + 1) << N_(" ") << _("minutes");
+ } else {
+ ap << m << N_(" ");
+ if (m == 1) {
+ ap << _("minute");
} else {
} else {
- ap <<
h << N_(" ") << _("hour
s");
+ ap <<
_("minute
s");
}
}
}
}
- } else if (m > 0) {
- if (m == 1) {
- ap << N_("1 ") << _("minute");
+
+ if (seconds) {
+ ap << N_(" ");
+ }
+ }
+
+ if (seconds) {
+ /* Seconds */
+ ap << s << N_(" ");
+ if (s == 1) {
+ ap << _("second");
} else {
} else {
- ap <<
m << N_(" ") << _("minute
s");
+ ap <<
_("second
s");
}
}
- } else {
- ap << s << N_(" ") << _("seconds");
}
return ap.str ();
}
return ap.str ();
@@
-335,7
+365,8
@@
dcpomatic_setup ()
DCPContentType::setup_dcp_content_types ();
Scaler::setup_scalers ();
Filter::setup_filters ();
DCPContentType::setup_dcp_content_types ();
Scaler::setup_scalers ();
Filter::setup_filters ();
- SoundProcessor::setup_sound_processors ();
+ CinemaSoundProcessor::setup_cinema_sound_processors ();
+ AudioProcessor::setup_audio_processors ();
ui_thread = boost::this_thread::get_id ();
}
ui_thread = boost::this_thread::get_id ();
}