Use VideoContentScale rather than Ratio for the default scale to.
authorCarl Hetherington <cth@carlh.net>
Sun, 7 Sep 2014 20:49:36 +0000 (21:49 +0100)
committerCarl Hetherington <cth@carlh.net>
Sun, 7 Sep 2014 20:49:36 +0000 (21:49 +0100)
ChangeLog
src/lib/config.cc
src/lib/config.h
src/lib/video_content.cc
src/lib/video_content.h
src/wx/config_dialog.cc

index 0fcb2da4dd0be53bddc211a2dca9f3f8e26c9080..99cc20dc12472051a8be8655867a758b054f52e9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2014-09-07  Carl Hetherington  <cth@carlh.net>
+
+       * Put no stretch / no scale in the set of choices for default
+       scale to.
+
+       * Fix a few bad fuzzy translations from the preferences dialog.
+
 2014-09-03  Carl Hetherington  <cth@carlh.net>
 
        * Version 1.73.2 released.
index 67abc63c2e8df4207ea339b3c909b1f69ffdf1b5..878fedaa4c31ed394bad0c43819ea7f961c1fdcb 100644 (file)
@@ -64,7 +64,7 @@ Config::Config ()
        , _sound_processor (SoundProcessor::from_id (N_("dolby_cp750")))
        , _allow_any_dcp_frame_rate (false)
        , _default_still_length (10)
-       , _default_scale (Ratio::from_id ("185"))
+       , _default_scale (VideoContentScale (Ratio::from_id ("185")))
        , _default_container (Ratio::from_id ("185"))
        , _default_dcp_content_type (DCPContentType::from_isdcf_name ("TST"))
        , _default_j2k_bandwidth (100000000)
@@ -137,7 +137,7 @@ Config::read ()
 
        c = f.optional_string_child ("DefaultScale");
        if (c) {
-               _default_scale = Ratio::from_id (c.get ());
+               _default_scale = VideoContentScale::from_id (c.get ());
        }
 
        c = f.optional_string_child ("DefaultContainer");
@@ -353,9 +353,7 @@ Config::write () const
        if (_language) {
                root->add_child("Language")->add_child_text (_language.get());
        }
-       if (_default_scale) {
-               root->add_child("DefaultScale")->add_child_text (_default_scale->id ());
-       }
+       root->add_child("DefaultScale")->add_child_text (_default_scale.id ());
        if (_default_container) {
                root->add_child("DefaultContainer")->add_child_text (_default_container->id ());
        }
index 4f6b57f5652c2ef14f1bf9ade48c6a40db8a96d0..0639382a05040abc85e7e4fc1a9075a591dd974c 100644 (file)
@@ -31,6 +31,7 @@
 #include "isdcf_metadata.h"
 #include "colour_conversion.h"
 #include "server.h"
+#include "video_content.h"
 
 class ServerDescription;
 class Scaler;
@@ -132,7 +133,7 @@ public:
                return _default_still_length;
        }
 
-       Ratio const * default_scale () const {
+       VideoContentScale default_scale () const {
                return _default_scale;
        }
 
@@ -293,7 +294,7 @@ public:
                changed ();
        }
 
-       void set_default_scale (Ratio const * s) {
+       void set_default_scale (VideoContentScale s) {
                _default_scale = s;
                changed ();
        }
@@ -441,7 +442,7 @@ private:
        ISDCFMetadata _default_isdcf_metadata;
        boost::optional<std::string> _language;
        int _default_still_length;
-       Ratio const * _default_scale;
+       VideoContentScale _default_scale;
        Ratio const * _default_container;
        DCPContentType const * _default_dcp_content_type;
        std::string _dcp_issuer;
index b0d4c2de506cb2b4abd828639365b8d786342354..5a80dba7455cab235aaa34f1d7855b681a9f4620 100644 (file)
@@ -476,7 +476,7 @@ VideoContentScale::id () const
        SafeStringStream s;
        
        if (_ratio) {
-               s << _ratio->id () << "_";
+               s << _ratio->id ();
        } else {
                s << (_scale ? "S1" : "S0");
        }
@@ -498,6 +498,21 @@ VideoContentScale::name () const
        return _("No scale");
 }
 
+VideoContentScale
+VideoContentScale::from_id (string id)
+{
+       Ratio const * r = Ratio::from_id (id);
+       if (r) {
+               return VideoContentScale (r);
+       }
+
+       if (id == "S0") {
+               return VideoContentScale (false);
+       }
+
+       return VideoContentScale (true);
+}
+               
 /** @param display_container Size of the container that we are displaying this content in.
  *  @param film_container The size of the film's image.
  */
index 62459222d84cb823d95682b65d2f44481bcc41bf..9404676808504d912814e70673d9d28e348826bb 100644 (file)
@@ -62,6 +62,7 @@ public:
        static std::vector<VideoContentScale> all () {
                return _scales;
        }
+       static VideoContentScale from_id (std::string id);
 
 private:
        /** a ratio to stretch the content to, or 0 for no stretch */
index 463b77e97e82d6d6f0d33c236e21eb8cfec8696c..b18598d702c6dfff0f95eaffbe0ff942d365ff5c 100644 (file)
@@ -312,31 +312,31 @@ public:
                
                _isdcf_metadata_button->Bind (wxEVT_COMMAND_BUTTON_CLICKED, boost::bind (&DefaultsPage::edit_isdcf_metadata_clicked, this, parent));
                
-               vector<Ratio const *> ratio = Ratio::all ();
-               int n = 0;
-               for (vector<Ratio const *>::iterator i = ratio.begin(); i != ratio.end(); ++i) {
-                       _scale->Append (std_to_wx ((*i)->nickname ()));
-                       if (*i == config->default_scale ()) {
-                               _scale->SetSelection (n);
+               vector<VideoContentScale> scales = VideoContentScale::all ();
+               for (size_t i = 0; i < scales.size(); ++i) {
+                       _scale->Append (std_to_wx (scales[i].name ()));
+                       if (scales[i] == config->default_scale ()) {
+                               _scale->SetSelection (i);
                        }
-                       _container->Append (std_to_wx ((*i)->nickname ()));
-                       if (*i == config->default_container ()) {
-                               _container->SetSelection (n);
+               }
+
+               vector<Ratio const *> ratios = Ratio::all ();
+               for (size_t i = 0; i < ratios.size(); ++i) {
+                       _container->Append (std_to_wx (ratios[i]->nickname ()));
+                       if (ratios[i] == config->default_container ()) {
+                               _container->SetSelection (i);
                        }
-                       ++n;
                }
                
                _scale->Bind (wxEVT_COMMAND_CHOICE_SELECTED, boost::bind (&DefaultsPage::scale_changed, this));
                _container->Bind (wxEVT_COMMAND_CHOICE_SELECTED, boost::bind (&DefaultsPage::container_changed, this));
                
                vector<DCPContentType const *> const ct = DCPContentType::all ();
-               n = 0;
-               for (vector<DCPContentType const *>::const_iterator i = ct.begin(); i != ct.end(); ++i) {
-                       _dcp_content_type->Append (std_to_wx ((*i)->pretty_name ()));
-                       if (*i == config->default_dcp_content_type ()) {
-                               _dcp_content_type->SetSelection (n);
+               for (size_t i = 0; i < ct.size(); ++i) {
+                       _dcp_content_type->Append (std_to_wx (ct[i]->pretty_name ()));
+                       if (ct[i] == config->default_dcp_content_type ()) {
+                               _dcp_content_type->SetSelection (i);
                        }
-                       ++n;
                }
                
                _dcp_content_type->Bind (wxEVT_COMMAND_CHOICE_SELECTED, boost::bind (&DefaultsPage::dcp_content_type_changed, this));
@@ -386,8 +386,8 @@ private:
 
        void scale_changed ()
        {
-               vector<Ratio const *> ratio = Ratio::all ();
-               Config::instance()->set_default_scale (ratio[_scale->GetSelection()]);
+               vector<VideoContentScale> scale = VideoContentScale::all ();
+               Config::instance()->set_default_scale (scale[_scale->GetSelection()]);
        }
        
        void container_changed ()