class Filter;
class Log;
class ExamineContentJob;
+class AnalyseAudioJob;
class ExternalAudioStream;
/** @class Film
std::string info_path (int f) const;
std::string video_mxf_dir () const;
std::string video_mxf_filename () const;
+ std::string audio_analysis_path () const;
void examine_content ();
+ void analyse_audio ();
void send_dcp_to_tms ();
- void make_dcp (bool);
+ void make_dcp ();
/** @return Logger.
* It is safe to call this from any thread.
void read_metadata ();
libdcp::Size cropped_size (libdcp::Size) const;
- std::string dci_name () const;
- std::string dcp_name () const;
+ std::string dci_name (bool if_created_now) const;
+ std::string dcp_name (bool if_created_now = false) const;
boost::optional<int> dcp_intrinsic_duration () const {
return _dcp_intrinsic_duration;
void set_dci_date_today ();
+ bool have_dcp () const;
+
/** Identifiers for the parts of our state;
used for signalling changes.
*/
/** Emitted when some property has changed */
mutable boost::signals2::signal<void (Property)> Changed;
+ boost::signals2::signal<void ()> AudioAnalysisFinished;
+
/** Current version number of the state file */
static int const state_version;
/** Any running ExamineContentJob, or 0 */
boost::shared_ptr<ExamineContentJob> _examine_content_job;
-
- /** The date that we should use in a DCI name */
- boost::gregorian::date _dci_date;
+ /** Any running AnalyseAudioJob, or 0 */
+ boost::shared_ptr<AnalyseAudioJob> _analyse_audio_job;
void signal_changed (Property);
void examine_content_finished ();
+ void analyse_audio_finished ();
std::string video_state_identifier () const;
/** Complete path to directory containing the film metadata;
/** DCI naming stuff */
DCIMetadata _dci_metadata;
+ /** The date that we should use in a DCI name */
+ boost::gregorian::date _dci_date;
/* Data which are cached to speed things up */
mutable boost::mutex _state_mutex;
friend class paths_test;
+ friend class film_metadata_test;
};
#endif