2013-12-02 Carl Hetherington <cth@carlh.net>
+ * Fix crash on double-click of "show audio" button (#278).
+
* Version 1.40 released.
2013-12-02 Carl Hetherington <cth@carlh.net>
signal_changed (AudioContentProperty::AUDIO_DELAY);
}
-void
+boost::signals2::connection
AudioContent::analyse_audio (boost::function<void()> finished)
{
shared_ptr<const Film> film = _film.lock ();
- if (!film) {
- return;
- }
+ assert (film);
shared_ptr<AnalyseAudioJob> job (new AnalyseAudioJob (film, dynamic_pointer_cast<AudioContent> (shared_from_this())));
- job->Finished.connect (finished);
+ boost::signals2::connection c = job->Finished.connect (finished);
JobManager::instance()->add (job);
+
+ return c;
}
boost::filesystem::path
virtual AudioMapping audio_mapping () const = 0;
virtual void set_audio_mapping (AudioMapping) = 0;
- void analyse_audio (boost::function<void()>);
+ boost::signals2::connection analyse_audio (boost::function<void()>);
boost::filesystem::path audio_analysis_path () const;
void set_audio_gain (float);
AudioDialog::set_content (shared_ptr<AudioContent> c)
{
_content_changed_connection.disconnect ();
-
+
_content = c;
try_to_load_analysis ();
if (!IsShown ()) {
return;
}
-
+
if (!boost::filesystem::exists (_content->audio_analysis_path())) {
- _content->analyse_audio (bind (&AudioDialog::analysis_finished, this));
+ _analysis_finished_connection = _content->analyse_audio (bind (&AudioDialog::analysis_finished, this));
return;
}
wxCheckBox* _type_checkbox[AudioPoint::COUNT];
wxSlider* _smoothing;
boost::signals2::scoped_connection _content_changed_connection;
+ boost::signals2::scoped_connection _analysis_finished_connection;
};