Merge branch '1.0' into 1.0-seek
authorCarl Hetherington <cth@carlh.net>
Fri, 20 Dec 2013 21:28:47 +0000 (21:28 +0000)
committerCarl Hetherington <cth@carlh.net>
Fri, 20 Dec 2013 21:28:47 +0000 (21:28 +0000)
ChangeLog
cscript
debian/changelog
platform/osx/make_dmg.sh
src/lib/audio_content.cc
src/lib/config.cc
src/lib/config.h
src/lib/job_manager.h
src/wx/config_dialog.cc
src/wx/config_dialog.h
wscript

index 4dc4ba75a7287fd82a06294c7d7ecba4844ac8de..ed6021c98495c7775e2d8d177733d8835589db75 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2013-12-20  Carl Hetherington  <cth@carlh.net>
+
+       * Add configuration option for default audio delay (#276).
+
+       * Version 1.46 released.
+
 2013-12-19  Carl Hetherington  <cth@carlh.net>
 
        * Version 1.45 released.
diff --git a/cscript b/cscript
index 523eec5449ea8a45ec5cb88eff2aa40bc0f0fda1..f4db238825407c1dd011a33fe34c4f96b4f3a9d8 100644 (file)
--- a/cscript
+++ b/cscript
@@ -115,7 +115,7 @@ def make_control(version, bits, filename):
 
 def dependencies(target):
     return (('ffmpeg-cdist', '0b7ef017aca8b572914518c759db1e234d8fc505'),
-            ('libdcp', 'v0.90'))
+            ('libdcp', 'v0.91'))
 
 def build(target):
     cmd = './waf configure --prefix=%s' % target.work_dir_cscript()
index 2ae1e1bb11bd0ecd18a68d3cdd2c5c8ce12cdaec..df60e23f5d261dad03a63156c24590c179a61b1e 100644 (file)
@@ -1,4 +1,4 @@
-dcpomatic (1.45-1) UNRELEASED; urgency=low
+dcpomatic (1.46-1) UNRELEASED; urgency=low
 
   * New upstream release.
   * New upstream release.
@@ -49,8 +49,9 @@ dcpomatic (1.45-1) UNRELEASED; urgency=low
   * New upstream release.
   * New upstream release.
   * New upstream release.
+  * New upstream release.
 
- -- Carl Hetherington <carl@d1stkfactory>  Thu, 19 Dec 2013 16:26:56 +0000
+ -- Carl Hetherington <carl@d1stkfactory>  Fri, 20 Dec 2013 20:53:40 +0000
 
 dcpomatic (0.87-1) UNRELEASED; urgency=low
 
index 5280d3ededacd25a9b5353fb2fd06018b5ccce59..6d0ce484c5cfaff8df38557a9194dea77fbef99c 100644 (file)
@@ -141,7 +141,6 @@ echo '
 chmod -Rf go-w /Volumes/"$vol_name"/$appdir
 sync
 
-umount -f $device
 hdiutil eject $device
 hdiutil convert -format UDZO $tmp_dmg -imagekey zlib-level=9 -o "$dmg"
 sips -i $WORK/$resources/DCP-o-matic.icns
index de743571bf218b7e747b7792b46a057aa0965918..83a43f3bd2eae6ee48a54594adf313403dca8df2 100644 (file)
@@ -23,6 +23,7 @@
 #include "job_manager.h"
 #include "film.h"
 #include "exceptions.h"
+#include "config.h"
 
 #include "i18n.h"
 
@@ -42,7 +43,7 @@ int const AudioContentProperty::AUDIO_MAPPING = 205;
 AudioContent::AudioContent (shared_ptr<const Film> f, DCPTime s)
        : Content (f, s)
        , _audio_gain (0)
-       , _audio_delay (0)
+       , _audio_delay (Config::instance()->default_audio_delay ())
 {
 
 }
@@ -50,7 +51,7 @@ AudioContent::AudioContent (shared_ptr<const Film> f, DCPTime s)
 AudioContent::AudioContent (shared_ptr<const Film> f, boost::filesystem::path p)
        : Content (f, p)
        , _audio_gain (0)
-       , _audio_delay (0)
+       , _audio_delay (Config::instance()->default_audio_delay ())
 {
 
 }
index ccbcdf7ddb04e5cf08f4a80ca3c1d609545ce556..93eec9bc0330fb4258f3f90d78de59759adc83b7 100644 (file)
@@ -64,6 +64,7 @@ Config::Config ()
        , _default_container (Ratio::from_id ("185"))
        , _default_dcp_content_type (DCPContentType::from_dci_name ("TST"))
        , _default_j2k_bandwidth (200000000)
+       , _default_audio_delay (0)
        , _kdm_email (
                "Dear Projectionist\n\nPlease find attached KDMs for $CPL_NAME.\n\nBest regards,\nDCP-o-matic"
                )
@@ -145,6 +146,7 @@ Config::read ()
        _default_dci_metadata = DCIMetadata (f.node_child ("DCIMetadata"));
        _default_still_length = f.optional_number_child<int>("DefaultStillLength").get_value_or (10);
        _default_j2k_bandwidth = f.optional_number_child<int>("DefaultJ2KBandwidth").get_value_or (200000000);
+       _default_audio_delay = f.optional_number_child<int>("DefaultAudioDelay").get_value_or (0);
 
        list<cxml::NodePtr> cc = f.node_children ("ColourConversion");
 
@@ -334,6 +336,7 @@ Config::write () const
 
        root->add_child("DefaultStillLength")->add_child_text (lexical_cast<string> (_default_still_length));
        root->add_child("DefaultJ2KBandwidth")->add_child_text (lexical_cast<string> (_default_j2k_bandwidth));
+       root->add_child("DefaultAudioDelay")->add_child_text (lexical_cast<string> (_default_audio_delay));
 
        for (vector<PresetColourConversion>::const_iterator i = _colour_conversions.begin(); i != _colour_conversions.end(); ++i) {
                i->as_xml (root->add_child ("ColourConversion"));
index 1fa54f669bd83130fa8502faf3c9789e9a5a8285..14c707dd2dcf85d70fe4449b05d82637040cf7fb 100644 (file)
@@ -143,6 +143,10 @@ public:
                return _default_j2k_bandwidth;
        }
 
+       int default_audio_delay () const {
+               return _default_audio_delay;
+       }
+
        std::vector<PresetColourConversion> colour_conversions () const {
                return _colour_conversions;
        }
@@ -245,6 +249,10 @@ public:
                _default_j2k_bandwidth = b;
        }
 
+       void set_default_audio_delay (int d) {
+               _default_audio_delay = d;
+       }
+
        void set_colour_conversions (std::vector<PresetColourConversion> const & c) {
                _colour_conversions = c;
        }
@@ -309,6 +317,7 @@ private:
        DCPContentType const * _default_dcp_content_type;
        libdcp::XMLMetadata _dcp_metadata;
        int _default_j2k_bandwidth;
+       int _default_audio_delay;
        std::vector<PresetColourConversion> _colour_conversions;
        std::list<boost::shared_ptr<Cinema> > _cinemas;
        std::string _mail_server;
index 0c92efd2831f5d1b213d1a9e19ae2a0e4fdb9f1b..f0673df1531bd933d0ebb6662795e20e18cc9a84 100644 (file)
@@ -27,6 +27,7 @@
 #include <boost/signals2.hpp>
 
 class Job;
+extern void wait_for_jobs ();
 
 /** @class JobManager
  *  @brief A simple scheduler for jobs.
index 71a0f505fc794947ce5a7791e5564245de078428..4743000f23a90000ff7371d84bcb6e36c1ff49a5 100644 (file)
@@ -158,6 +158,15 @@ ConfigDialog::make_misc_panel ()
                add_label_to_sizer (s, _misc_panel, _("MBps"), false);
                table->Add (s, 1);
        }
+
+       {
+               add_label_to_sizer (table, _misc_panel, _("Default audio delay"), true);
+               wxBoxSizer* s = new wxBoxSizer (wxHORIZONTAL);
+               _default_audio_delay = new wxSpinCtrl (_misc_panel);
+               s->Add (_default_audio_delay);
+               add_label_to_sizer (s, _misc_panel, _("ms"), false);
+               table->Add (s, 1);
+       }
        
        Config* config = Config::instance ();
 
@@ -225,6 +234,10 @@ ConfigDialog::make_misc_panel ()
        _default_j2k_bandwidth->SetRange (50, 250);
        _default_j2k_bandwidth->SetValue (config->default_j2k_bandwidth() / 1000000);
        _default_j2k_bandwidth->Bind (wxEVT_COMMAND_SPINCTRL_UPDATED, boost::bind (&ConfigDialog::default_j2k_bandwidth_changed, this));
+
+       _default_audio_delay->SetRange (-1000, 1000);
+       _default_audio_delay->SetValue (config->default_audio_delay ());
+       _default_audio_delay->Bind (wxEVT_COMMAND_SPINCTRL_UPDATED, boost::bind (&ConfigDialog::default_audio_delay_changed, this));
 }
 
 void
@@ -457,6 +470,12 @@ ConfigDialog::default_j2k_bandwidth_changed ()
        Config::instance()->set_default_j2k_bandwidth (_default_j2k_bandwidth->GetValue() * 1000000);
 }
 
+void
+ConfigDialog::default_audio_delay_changed ()
+{
+       Config::instance()->set_default_audio_delay (_default_audio_delay->GetValue());
+}
+
 static std::string
 colour_conversion_column (PresetColourConversion c)
 {
index 3a196cce309d031b742a1da39fcbfd692fe91089..45739ef9287ba3a9253ea7124159ac8b9d07b467 100644 (file)
@@ -58,6 +58,7 @@ private:
        void issuer_changed ();
        void creator_changed ();
        void default_j2k_bandwidth_changed ();
+       void default_audio_delay_changed ();
        void mail_server_changed ();
        void kdm_from_changed ();
        void kdm_email_changed ();
@@ -99,6 +100,7 @@ private:
        wxTextCtrl* _issuer;
        wxTextCtrl* _creator;
        wxSpinCtrl* _default_j2k_bandwidth;
+       wxSpinCtrl* _default_audio_delay;
        wxPanel* _kdm_email_panel;
        wxTextCtrl* _kdm_email;
        wxCheckBox* _use_any_servers;
diff --git a/wscript b/wscript
index f571d51a6dd0a766328546aa77b53c95b63eb1df..212f1d5c6929d88d0503329a474cf1555e142d68 100644 (file)
--- a/wscript
+++ b/wscript
@@ -3,7 +3,7 @@ import os
 import sys
 
 APPNAME = 'dcpomatic'
-VERSION = '1.46pre'
+VERSION = '1.47pre'
 
 def options(opt):
     opt.load('compiler_cxx')
@@ -88,7 +88,7 @@ def configure(conf):
 
     # Dependencies which are dynamically linked everywhere except --static
     # Get libs only when we are dynamically linking
-    conf.check_cfg(package='libdcp',        atleast_version='0.90', args=pkg_config_args(conf), uselib_store='DCP',  mandatory=True)
+    conf.check_cfg(package='libdcp',        atleast_version='0.91', args=pkg_config_args(conf), uselib_store='DCP',  mandatory=True)
     # Remove erroneous escaping of quotes from xmlsec1 defines
     conf.env.DEFINES_DCP = [f.replace('\\', '') for f in conf.env.DEFINES_DCP]
     conf.check_cfg(package='libcxml',       atleast_version='0.08', args=pkg_config_args(conf), uselib_store='CXML', mandatory=True)