/*
- Copyright (C) 2012 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2012-2015 Carl Hetherington <cth@carlh.net>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
*/
-#ifndef DVDOMATIC_AUDIO_ANALYSIS_H
-#define DVDOMATIC_AUDIO_ANALYSIS_H
+#ifndef DCPOMATIC_AUDIO_ANALYSIS_H
+#define DCPOMATIC_AUDIO_ANALYSIS_H
-#include <iostream>
#include <vector>
+#include <list>
+#include <boost/filesystem.hpp>
+#include <boost/optional.hpp>
+#include <libcxml/cxml.h>
+#include "types.h"
class AudioPoint
{
};
AudioPoint ();
- AudioPoint (std::istream &);
+ AudioPoint (cxml::ConstNodePtr node);
+ AudioPoint (AudioPoint const &);
+ AudioPoint& operator= (AudioPoint const &);
- void write (std::ostream &) const;
+ void as_xml (xmlpp::Element *) const;
float& operator[] (int t) {
return _data[t];
float _data[COUNT];
};
-class AudioAnalysis
+class AudioAnalysis : public boost::noncopyable
{
public:
AudioAnalysis (int c);
- AudioAnalysis (std::string);
+ AudioAnalysis (boost::filesystem::path);
void add_point (int c, AudioPoint const & p);
+ void set_peak (float peak, DCPTime time) {
+ _peak = peak;
+ _peak_time = time;
+ }
AudioPoint get_point (int c, int p) const;
int points (int c) const;
int channels () const;
- void write (std::string);
+ boost::optional<float> peak () const {
+ return _peak;
+ }
+
+ boost::optional<DCPTime> peak_time () const {
+ return _peak_time;
+ }
+ void write (boost::filesystem::path);
private:
std::vector<std::vector<AudioPoint> > _data;
+ boost::optional<float> _peak;
+ boost::optional<DCPTime> _peak_time;
};
#endif