Fix truncated log timestamps in at least some cases.
[dcpomatic.git] / src / lib / sndfile_content.h
index a79fb99b6bd01f6497d6e3dd2d2184c2c57d5ec1..9dcf954b5e55b09b9c6e1a088dd78a80f0d370f2 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2013-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 DCPOMATIC_SNDFILE_CONTENT_H
 #define DCPOMATIC_SNDFILE_CONTENT_H
 
-extern "C" {
-#include <libavutil/audioconvert.h>
-}
-#include "audio_content.h"
+#include "single_stream_audio_content.h"
 
-namespace cxml {
-       class Node;
-}
-
-class SndfileContentProperty
-{
-public:
-       static int const VIDEO_FRAME_RATE;
-};
-
-class SndfileContent : public AudioContent
+class SndfileContent : public SingleStreamAudioContent
 {
 public:
        SndfileContent (boost::shared_ptr<const Film>, boost::filesystem::path);
-       SndfileContent (boost::shared_ptr<const Film>, boost::shared_ptr<const cxml::Node>, int);
+       SndfileContent (boost::shared_ptr<const Film>, cxml::ConstNodePtr, int);
 
        boost::shared_ptr<SndfileContent> shared_from_this () {
                return boost::dynamic_pointer_cast<SndfileContent> (Content::shared_from_this ());
        }
-       
+
+       DCPTime full_length () const;
+
        void examine (boost::shared_ptr<Job>);
        std::string summary () const;
        std::string technical_summary () const;
        std::string information () const;
        void as_xml (xmlpp::Node *) const;
-       Time full_length () const;
 
-       /* AudioContent */
-       int audio_channels () const {
-               boost::mutex::scoped_lock lm (_mutex);
-               return _audio_channels;
-       }
-       
-       AudioContent::Frame audio_length () const {
-               boost::mutex::scoped_lock lm (_mutex);
-               return _audio_length;
-       }
-       
-       int content_audio_frame_rate () const {
-               boost::mutex::scoped_lock lm (_mutex);
-               return _audio_frame_rate;
-       }
+       void take_from_audio_examiner (boost::shared_ptr<AudioExaminer>);
 
-       int output_audio_frame_rate () const;
+       static bool valid_file (boost::filesystem::path);
 
-       AudioMapping audio_mapping () const {
+private:
+       Frame audio_length () const {
                boost::mutex::scoped_lock lm (_mutex);
-               return _audio_mapping;
-       }
-
-       void set_video_frame_rate (float r) {
-               {
-                       boost::mutex::scoped_lock lm (_mutex);
-                       _video_frame_rate = r;
-               }
-
-               signal_changed (SndfileContentProperty::VIDEO_FRAME_RATE);
+               return _audio_length;
        }
 
-       float video_frame_rate () const;
-
-       void set_audio_mapping (AudioMapping);
-       
-       static bool valid_file (boost::filesystem::path);
-
-private:
-       int _audio_channels;
-       AudioContent::Frame _audio_length;
-       int _audio_frame_rate;
-       AudioMapping _audio_mapping;
-       /** Video frame rate that this audio has been prepared for,
-           if specified.
-       */
-       boost::optional<float> _video_frame_rate;
+       Frame _audio_length;
 };
 
 #endif