summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2013-03-08 20:04:05 +0000
committerCarl Hetherington <cth@carlh.net>2013-03-08 20:04:05 +0000
commita9172427858ec747ed5ff6ff4c2ab6eba1613135 (patch)
tree8e9082ee9cccf90e320be91651489ed3b52c9577 /src
parentdf499ab4fd81b3cf4686f2e97fd4c9cd339dfdff (diff)
Disable show audio button when there is no audio (#73).
Diffstat (limited to 'src')
-rw-r--r--src/lib/film.cc18
-rw-r--r--src/lib/film.h2
-rw-r--r--src/wx/film_editor.cc12
-rw-r--r--src/wx/film_editor.h1
4 files changed, 32 insertions, 1 deletions
diff --git a/src/lib/film.cc b/src/lib/film.cc
index 8f545952b..20e08c037 100644
--- a/src/lib/film.cc
+++ b/src/lib/film.cc
@@ -1434,3 +1434,21 @@ Film::have_dcp () const
return true;
}
+
+bool
+Film::has_audio () const
+{
+ if (use_content_audio()) {
+ return audio_stream();
+ }
+
+ vector<string> const e = external_audio ();
+ for (vector<string>::const_iterator i = e.begin(); i != e.end(); ++i) {
+ if (!i->empty ()) {
+ return true;
+ }
+ }
+
+ return false;
+}
+
diff --git a/src/lib/film.h b/src/lib/film.h
index 9921acbb4..88f6fbcd7 100644
--- a/src/lib/film.h
+++ b/src/lib/film.h
@@ -327,7 +327,7 @@ public:
}
boost::shared_ptr<AudioStream> audio_stream () const;
-
+ bool has_audio () const;
/* SET */
diff --git a/src/wx/film_editor.cc b/src/wx/film_editor.cc
index b9a4012e3..dcd18c97f 100644
--- a/src/wx/film_editor.cc
+++ b/src/wx/film_editor.cc
@@ -617,6 +617,7 @@ FilmEditor::film_changed (Film::Property p)
setup_formats ();
setup_subtitle_control_sensitivity ();
setup_streams ();
+ setup_show_audio_sensitivity ();
break;
case Film::TRUST_CONTENT_HEADER:
checked_set (_trust_content_header, _film->trust_content_header ());
@@ -627,6 +628,7 @@ FilmEditor::film_changed (Film::Property p)
break;
case Film::CONTENT_AUDIO_STREAMS:
setup_streams ();
+ setup_show_audio_sensitivity ();
break;
case Film::FORMAT:
{
@@ -754,6 +756,7 @@ FilmEditor::film_changed (Film::Property p)
setup_dcp_name ();
setup_audio_details ();
setup_audio_control_sensitivity ();
+ setup_show_audio_sensitivity ();
break;
case Film::USE_CONTENT_AUDIO:
checked_set (_use_content_audio, _film->use_content_audio());
@@ -761,6 +764,7 @@ FilmEditor::film_changed (Film::Property p)
setup_dcp_name ();
setup_audio_details ();
setup_audio_control_sensitivity ();
+ setup_show_audio_sensitivity ();
break;
case Film::SUBTITLE_STREAM:
if (_film->subtitle_stream()) {
@@ -774,6 +778,7 @@ FilmEditor::film_changed (Film::Property p)
checked_set (_external_audio[i], a[i]);
}
setup_audio_details ();
+ setup_show_audio_sensitivity ();
break;
}
case Film::DCP_FRAME_RATE:
@@ -915,6 +920,7 @@ FilmEditor::set_things_sensitive (bool s)
setup_subtitle_control_sensitivity ();
setup_audio_control_sensitivity ();
+ setup_show_audio_sensitivity ();
}
/** Called when the `Edit filters' button has been clicked */
@@ -1289,3 +1295,9 @@ FilmEditor::best_dcp_frame_rate_clicked (wxCommandEvent &)
_film->set_dcp_frame_rate (best_dcp_frame_rate (_film->source_frame_rate ()));
}
+
+void
+FilmEditor::setup_show_audio_sensitivity ()
+{
+ _show_audio->Enable (_film && _film->has_audio ());
+}
diff --git a/src/wx/film_editor.h b/src/wx/film_editor.h
index 29b453b8b..e5b619886 100644
--- a/src/wx/film_editor.h
+++ b/src/wx/film_editor.h
@@ -98,6 +98,7 @@ private:
void setup_streams ();
void setup_audio_details ();
void setup_dcp_name ();
+ void setup_show_audio_sensitivity ();
wxControl* video_control (wxControl *);
wxControl* still_control (wxControl *);