Allow content parts to not be preset in XML.
[dcpomatic.git] / src / lib / analyse_audio_job.h
index c255d9caab09fb6b83bbb2efe5ba265a06e74f58..65282b1926ee349617fcc2bae57f88775c4c4f49 100644 (file)
  */
 
 #include "job.h"
+#include "audio_point.h"
 #include "types.h"
 
 class AudioBuffers;
 class AudioAnalysis;
 class Playlist;
+class AudioPoint;
+class AudioFilterGraph;
+class Filter;
 
 /** @class AnalyseAudioJob
  *  @brief A job to analyse the audio of a film and make a note of its
@@ -39,11 +43,16 @@ class AnalyseAudioJob : public Job
 {
 public:
        AnalyseAudioJob (boost::shared_ptr<const Film>, boost::shared_ptr<const Playlist>);
+       ~AnalyseAudioJob ();
 
        std::string name () const;
        std::string json_name () const;
        void run ();
 
+       boost::shared_ptr<const Playlist> playlist () const {
+               return _playlist;
+       }
+
 private:
        void analyse (boost::shared_ptr<const AudioBuffers>);
 
@@ -51,12 +60,15 @@ private:
 
        int64_t _done;
        int64_t _samples_per_point;
-       std::vector<AudioPoint> _current;
+       AudioPoint* _current;
 
-       float _overall_peak;
-       Frame _overall_peak_frame;
+       float _sample_peak;
+       Frame _sample_peak_frame;
 
        boost::shared_ptr<AudioAnalysis> _analysis;
 
+       boost::shared_ptr<AudioFilterGraph> _ebur128;
+       std::vector<Filter const *> _filters;
+
        static const int _num_points;
 };