Some basics of AudioMapping.
authorCarl Hetherington <cth@carlh.net>
Mon, 20 May 2013 15:21:55 +0000 (16:21 +0100)
committerCarl Hetherington <cth@carlh.net>
Mon, 20 May 2013 15:21:55 +0000 (16:21 +0100)
18 files changed:
src/lib/audio_content.cc
src/lib/audio_content.h
src/lib/audio_mapping.cc
src/lib/audio_mapping.h
src/lib/content.h
src/lib/ffmpeg_content.cc
src/lib/ffmpeg_content.h
src/lib/ffmpeg_decoder.cc
src/lib/film.h
src/lib/sndfile_content.cc
src/lib/sndfile_content.h
src/wx/audio_mapping_view.cc
src/wx/audio_mapping_view.h
src/wx/ffmpeg_content_dialog.cc
src/wx/ffmpeg_content_dialog.h
src/wx/film_editor.cc
src/wx/film_editor.h
src/wx/properties_dialog.cc

index 9968f472561121e833f09392302ede079981575f..e38d9d265aefd723210845c877ac81e2ac8d54fc 100644 (file)
@@ -1,3 +1,5 @@
+/* -*- c-basic-offset: 8; default-tab-width: 8; -*- */
+
 /*
     Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
 
 /*
     Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
 
@@ -35,7 +37,6 @@ AudioContent::AudioContent (boost::filesystem::path f)
 AudioContent::AudioContent (shared_ptr<const cxml::Node> node)
        : Content (node)
 {
 AudioContent::AudioContent (shared_ptr<const cxml::Node> node)
        : Content (node)
 {
-
 }
 
 AudioContent::AudioContent (AudioContent const & o)
 }
 
 AudioContent::AudioContent (AudioContent const & o)
@@ -43,3 +44,9 @@ AudioContent::AudioContent (AudioContent const & o)
 {
 
 }
 {
 
 }
+
+void
+AudioContent::as_xml (xmlpp::Node* node) const
+{
+       
+}
index 87858488cec8a1f4ae416dc636241b43acadc7f7..51f05efb0c9afcdfe3e506940d6d4dac3ba9b5c7 100644 (file)
@@ -1,3 +1,5 @@
+/* -*- c-basic-offset: 8; default-tab-width: 8; -*- */
+
 /*
     Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
 
 /*
     Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
 
@@ -21,7 +23,7 @@
 #define DCPOMATIC_AUDIO_CONTENT_H
 
 #include "content.h"
 #define DCPOMATIC_AUDIO_CONTENT_H
 
 #include "content.h"
-#include "util.h"
+#include "audio_mapping.h"
 
 namespace cxml {
        class Node;
 
 namespace cxml {
        class Node;
@@ -42,10 +44,13 @@ public:
        AudioContent (boost::shared_ptr<const cxml::Node>);
        AudioContent (AudioContent const &);
 
        AudioContent (boost::shared_ptr<const cxml::Node>);
        AudioContent (AudioContent const &);
 
+       void as_xml (xmlpp::Node *) const;
+
         virtual int audio_channels () const = 0;
         virtual ContentAudioFrame audio_length () const = 0;
         virtual int content_audio_frame_rate () const = 0;
        virtual int output_audio_frame_rate (boost::shared_ptr<const Film>) const = 0;
         virtual int audio_channels () const = 0;
         virtual ContentAudioFrame audio_length () const = 0;
         virtual int content_audio_frame_rate () const = 0;
        virtual int output_audio_frame_rate (boost::shared_ptr<const Film>) const = 0;
+       virtual AudioMapping audio_mapping () const = 0;
 };
 
 #endif
 };
 
 #endif
index e1fa0c220ee64f78f65034739be3fcafaec0479e..d0aa33657fb383c9fbddcdde996186a9485e4b92 100644 (file)
@@ -1,3 +1,5 @@
+/* -*- c-basic-offset: 8; default-tab-width: 8; -*- */
+
 /*
     Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
 
 /*
     Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
 
@@ -18,6 +20,7 @@
 */
 
 #include <boost/lexical_cast.hpp>
 */
 
 #include <boost/lexical_cast.hpp>
+#include <libxml++/libxml++.h>
 #include <libcxml/cxml.h>
 #include "audio_mapping.h"
 
 #include <libcxml/cxml.h>
 #include "audio_mapping.h"
 
@@ -30,23 +33,39 @@ using boost::shared_ptr;
 using boost::lexical_cast;
 using boost::dynamic_pointer_cast;
 
 using boost::lexical_cast;
 using boost::dynamic_pointer_cast;
 
-void
-AudioMapping::add (int c, libdcp::Channel d)
+AudioMapping::AudioMapping ()
 {
 {
-       _content_to_dcp.push_back (make_pair (c, d));
+
 }
 
 }
 
-/* XXX: this is grotty */
-int
-AudioMapping::dcp_channels () const
+/** Create a default AudioMapping for a given channel count.
+ *  @param c Number of channels.
+ */
+AudioMapping::AudioMapping (int c)
 {
 {
-       for (list<pair<int, libdcp::Channel> >::const_iterator i = _content_to_dcp.begin(); i != _content_to_dcp.end(); ++i) {
-               if (((int) i->second) >= 2) {
-                       return 6;
+       if (c == 1) {
+               /* Mono -> Centre */
+               add (0, libdcp::CENTRE);
+       } else {
+               /* 1:1 mapping */
+               for (int i = 0; i < c; ++i) {
+                       add (i, static_cast<libdcp::Channel> (i));
                }
        }
                }
        }
+}
+
+AudioMapping::AudioMapping (shared_ptr<const cxml::Node> node)
+{
+       list<shared_ptr<cxml::Node> > const c = node->node_children ("Map");
+       for (list<shared_ptr<cxml::Node> >::const_iterator i = c.begin(); i != c.end(); ++i) {
+               add ((*i)->number_child<int> ("ContentIndex"), static_cast<libdcp::Channel> ((*i)->number_child<int> ("DCP")));
+       }
+}
 
 
-       return 2;
+void
+AudioMapping::add (int c, libdcp::Channel d)
+{
+       _content_to_dcp.push_back (make_pair (c, d));
 }
 
 list<int>
 }
 
 list<int>
@@ -97,12 +116,3 @@ AudioMapping::as_xml (xmlpp::Node* node) const
                t->add_child ("DCP")->add_child_text (lexical_cast<string> (i->second));
        }
 }
                t->add_child ("DCP")->add_child_text (lexical_cast<string> (i->second));
        }
 }
-
-void
-AudioMapping::set_from_xml (shared_ptr<const cxml::Node> node)
-{
-       list<shared_ptr<cxml::Node> > const c = node->node_children ("Map");
-       for (list<shared_ptr<cxml::Node> >::const_iterator i = c.begin(); i != c.end(); ++i) {
-               add ((*i)->number_child<int> ("ContentIndex"), static_cast<libdcp::Channel> ((*i)->number_child<int> ("DCP")));
-       }
-}
index 3c471d3f4f16aaead62df787c4c7666e5226e8aa..7d76e4f5a0643066285086522cd66d12d81ceaea 100644 (file)
@@ -1,3 +1,5 @@
+/* -*- c-basic-offset: 8; default-tab-width: 8; -*- */
+
 /*
     Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
 
 /*
     Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
 
 #define DCPOMATIC_AUDIO_MAPPING_H
 
 #include <list>
 #define DCPOMATIC_AUDIO_MAPPING_H
 
 #include <list>
-#include <string>
 #include <libdcp/types.h>
 #include <boost/shared_ptr.hpp>
 #include <libdcp/types.h>
 #include <boost/shared_ptr.hpp>
-#include "audio_content.h"
+
+namespace xmlpp {
+       class Node;
+}
+
+namespace cxml {
+       class Node;
+}
 
 class AudioMapping
 {
 public:
 
 class AudioMapping
 {
 public:
+       AudioMapping ();
+       AudioMapping (int);
+       AudioMapping (boost::shared_ptr<const cxml::Node>);
+       
        void as_xml (xmlpp::Node *) const;
        void as_xml (xmlpp::Node *) const;
-       void set_from_xml (boost::shared_ptr<const cxml::Node>);
 
        void add (int, libdcp::Channel);
 
 
        void add (int, libdcp::Channel);
 
-       int dcp_channels () const;
        std::list<int> dcp_to_content (libdcp::Channel) const;
        std::list<std::pair<int, libdcp::Channel> > content_to_dcp () const {
                return _content_to_dcp;
        std::list<int> dcp_to_content (libdcp::Channel) const;
        std::list<std::pair<int, libdcp::Channel> > content_to_dcp () const {
                return _content_to_dcp;
index 9f465570bd2312570a6d5bae2602830ea866db39..8db35891a4979af6f795421bcc026cd923e17a4f 100644 (file)
@@ -1,3 +1,5 @@
+/* -*- c-basic-offset: 8; default-tab-width: 8; -*- */
+
 /*
     Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
 
 /*
     Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
 
index f0df1519393e96c423fa1f935b1357e6fe5cf7d9..d730f3ecbc6057c4a65a660f962b8d3bbf590c52 100644 (file)
@@ -1,3 +1,5 @@
+/* -*- c-basic-offset: 8; default-tab-width: 8; -*- */
+
 /*
     Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
 
 /*
     Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
 
@@ -88,6 +90,7 @@ FFmpegContent::as_xml (xmlpp::Node* node) const
        node->add_child("Type")->add_child_text ("FFmpeg");
        Content::as_xml (node);
        VideoContent::as_xml (node);
        node->add_child("Type")->add_child_text ("FFmpeg");
        Content::as_xml (node);
        VideoContent::as_xml (node);
+       AudioContent::as_xml (node);
 
        boost::mutex::scoped_lock lm (_mutex);
 
 
        boost::mutex::scoped_lock lm (_mutex);
 
@@ -263,6 +266,7 @@ operator== (FFmpegAudioStream const & a, FFmpegAudioStream const & b)
 }
 
 FFmpegAudioStream::FFmpegAudioStream (shared_ptr<const cxml::Node> node)
 }
 
 FFmpegAudioStream::FFmpegAudioStream (shared_ptr<const cxml::Node> node)
+       : mapping (node->node_child ("Mapping"))
 {
        name = node->string_child ("Name");
        id = node->number_child<int> ("Id");
 {
        name = node->string_child ("Name");
        id = node->number_child<int> ("Id");
@@ -277,6 +281,7 @@ FFmpegAudioStream::as_xml (xmlpp::Node* root) const
        root->add_child("Id")->add_child_text (lexical_cast<string> (id));
        root->add_child("FrameRate")->add_child_text (lexical_cast<string> (frame_rate));
        root->add_child("Channels")->add_child_text (lexical_cast<string> (channels));
        root->add_child("Id")->add_child_text (lexical_cast<string> (id));
        root->add_child("FrameRate")->add_child_text (lexical_cast<string> (frame_rate));
        root->add_child("Channels")->add_child_text (lexical_cast<string> (channels));
+       mapping.as_xml (root->add_child("Mapping"));
 }
 
 /** Construct a SubtitleStream from a value returned from to_string().
 }
 
 /** Construct a SubtitleStream from a value returned from to_string().
@@ -308,3 +313,13 @@ FFmpegContent::length (shared_ptr<const Film> film) const
        FrameRateConversion frc (video_frame_rate (), film->dcp_video_frame_rate ());
        return video_length() * frc.factor() * TIME_HZ / film->dcp_video_frame_rate ();
 }
        FrameRateConversion frc (video_frame_rate (), film->dcp_video_frame_rate ());
        return video_length() * frc.factor() * TIME_HZ / film->dcp_video_frame_rate ();
 }
+
+AudioMapping
+FFmpegContent::audio_mapping () const
+{
+       if (!_audio_stream) {
+               return AudioMapping ();
+       }
+       
+       return _audio_stream->mapping;
+}
index 540df041f510c8bd3b78f94231d9cb0a9dd36efb..d26c73125b663bf8c7f341fde049e9a185f37ea7 100644 (file)
@@ -1,3 +1,5 @@
+/* -*- c-basic-offset: 8; default-tab-width: 8; -*- */
+
 /*
     Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
 
 /*
     Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
 
@@ -32,6 +34,7 @@ public:
                 , id (i)
                 , frame_rate (f)
                , channels (c)
                 , id (i)
                 , frame_rate (f)
                , channels (c)
+               , mapping (c)
         {}
 
        FFmpegAudioStream (boost::shared_ptr<const cxml::Node>);
         {}
 
        FFmpegAudioStream (boost::shared_ptr<const cxml::Node>);
@@ -42,6 +45,7 @@ public:
         int id;
         int frame_rate;
        int channels;
         int id;
         int frame_rate;
        int channels;
+       AudioMapping mapping;
 };
 
 extern bool operator== (FFmpegAudioStream const & a, FFmpegAudioStream const & b);
 };
 
 extern bool operator== (FFmpegAudioStream const & a, FFmpegAudioStream const & b);
@@ -96,6 +100,7 @@ public:
         ContentAudioFrame audio_length () const;
         int content_audio_frame_rate () const;
         int output_audio_frame_rate (boost::shared_ptr<const Film>) const;
         ContentAudioFrame audio_length () const;
         int content_audio_frame_rate () const;
         int output_audio_frame_rate (boost::shared_ptr<const Film>) const;
+       AudioMapping audio_mapping () const;
        
         std::vector<FFmpegSubtitleStream> subtitle_streams () const {
                 boost::mutex::scoped_lock lm (_mutex);
        
         std::vector<FFmpegSubtitleStream> subtitle_streams () const {
                 boost::mutex::scoped_lock lm (_mutex);
index e99a960cef4723095ab6017b278f0c5a78a51e95..adf16c9408a36d39976d730e86e8c29a894ec505 100644 (file)
@@ -143,7 +143,7 @@ FFmpegDecoder::setup_general ()
                        _audio_streams.push_back (
                                FFmpegAudioStream (stream_name (s), i, s->codec->sample_rate, s->codec->channels)
                                );
                        _audio_streams.push_back (
                                FFmpegAudioStream (stream_name (s), i, s->codec->sample_rate, s->codec->channels)
                                );
-                       
+
                } else if (s->codec->codec_type == AVMEDIA_TYPE_SUBTITLE) {
                        _subtitle_streams.push_back (FFmpegSubtitleStream (stream_name (s), i));
                }
                } else if (s->codec->codec_type == AVMEDIA_TYPE_SUBTITLE) {
                        _subtitle_streams.push_back (FFmpegSubtitleStream (stream_name (s), i));
                }
index cfc55c0aca7c7ed70285320191081e29938e03ea..03d472cee3e85a609ecea48f318787896d356674 100644 (file)
@@ -154,7 +154,6 @@ public:
                J2K_BANDWIDTH,
                DCI_METADATA,
                DCP_VIDEO_FRAME_RATE,
                J2K_BANDWIDTH,
                DCI_METADATA,
                DCP_VIDEO_FRAME_RATE,
-               AUDIO_MAPPING
        };
 
 
        };
 
 
@@ -322,7 +321,6 @@ private:
        void read_metadata ();
        void playlist_changed ();
        void playlist_content_changed (boost::weak_ptr<Content>, int);
        void read_metadata ();
        void playlist_changed ();
        void playlist_content_changed (boost::weak_ptr<Content>, int);
-       void setup_default_audio_mapping ();
        std::string filename_safe_name () const;
 
        /** Log to write to */
        std::string filename_safe_name () const;
 
        /** Log to write to */
index 210ca15779980d6970d79eebf61d801ca973cdb7..963abb58e0f63d3dc12e4f91859cc296a5b5f63f 100644 (file)
@@ -1,3 +1,5 @@
+/* -*- c-basic-offset: 8; default-tab-width: 8; -*- */
+
 /*
     Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
 
 /*
     Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
 
@@ -48,6 +50,7 @@ SndfileContent::SndfileContent (shared_ptr<const cxml::Node> node)
        _audio_channels = node->number_child<int> ("AudioChannels");
        _audio_length = node->number_child<ContentAudioFrame> ("AudioLength");
        _audio_frame_rate = node->number_child<int> ("AudioFrameRate");
        _audio_channels = node->number_child<int> ("AudioChannels");
        _audio_length = node->number_child<ContentAudioFrame> ("AudioLength");
        _audio_frame_rate = node->number_child<int> ("AudioFrameRate");
+       _mapping = AudioMapping (node->node_child ("Mapping"));
 }
 
 string
 }
 
 string
@@ -103,6 +106,7 @@ SndfileContent::examine (shared_ptr<Film> film, shared_ptr<Job> job, bool quick)
                _audio_channels = dec.audio_channels ();
                _audio_length = dec.audio_length ();
                _audio_frame_rate = dec.audio_frame_rate ();
                _audio_channels = dec.audio_channels ();
                _audio_length = dec.audio_length ();
                _audio_frame_rate = dec.audio_frame_rate ();
+               _mapping = AudioMapping (_audio_channels);
        }
 
        signal_changed (AudioContentProperty::AUDIO_CHANNELS);
        }
 
        signal_changed (AudioContentProperty::AUDIO_CHANNELS);
@@ -118,6 +122,7 @@ SndfileContent::as_xml (xmlpp::Node* node) const
        node->add_child("AudioChannels")->add_child_text (lexical_cast<string> (_audio_channels));
        node->add_child("AudioLength")->add_child_text (lexical_cast<string> (_audio_length));
        node->add_child("AudioFrameRate")->add_child_text (lexical_cast<string> (_audio_frame_rate));
        node->add_child("AudioChannels")->add_child_text (lexical_cast<string> (_audio_channels));
        node->add_child("AudioLength")->add_child_text (lexical_cast<string> (_audio_length));
        node->add_child("AudioFrameRate")->add_child_text (lexical_cast<string> (_audio_frame_rate));
+       _mapping.as_xml (node->add_child("Mapping"));
 }
 
 int
 }
 
 int
index 0623aa6f054748f9f56cada8573b736a7ce30e79..e0d66b9928e7de8ec21e6b8b71158afe3b6f5d79 100644 (file)
@@ -1,3 +1,5 @@
+/* -*- c-basic-offset: 8; default-tab-width: 8; -*- */
+
 /*
     Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
 
 /*
     Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
 
@@ -61,10 +63,16 @@ public:
 
         int output_audio_frame_rate (boost::shared_ptr<const Film>) const;
        
 
         int output_audio_frame_rate (boost::shared_ptr<const Film>) const;
        
+       AudioMapping audio_mapping () const {
+               boost::mutex::scoped_lock lm (_mutex);
+               return _mapping;
+       }
+       
        static bool valid_file (boost::filesystem::path);
 
 private:
        int _audio_channels;
        ContentAudioFrame _audio_length;
        int _audio_frame_rate;
        static bool valid_file (boost::filesystem::path);
 
 private:
        int _audio_channels;
        ContentAudioFrame _audio_length;
        int _audio_frame_rate;
+       AudioMapping _mapping;
 };
 };
index 10157eb2c6460e6fea4177f15c57471c3c323173..8d049e05f7de38e4511d493e66b4d24d2ea76098 100644 (file)
@@ -1,3 +1,5 @@
+/* -*- c-basic-offset: 8; default-tab-width: 8; -*- */
+
 /*
     Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
 
 /*
     Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
 
index 36429412f5ef4309dfbf8798e2704e85fa554724..9385f492db61aa134669c0a4ba6cee7746da1bf6 100644 (file)
@@ -1,3 +1,5 @@
+/* -*- c-basic-offset: 8; default-tab-width: 8; -*- */
+
 /*
     Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
 
 /*
     Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
 
@@ -20,6 +22,7 @@
 #include <boost/signals2.hpp>
 #include <wx/wx.h>
 #include <wx/grid.h>
 #include <boost/signals2.hpp>
 #include <wx/wx.h>
 #include <wx/grid.h>
+#include "lib/audio_mapping.h"
 
 class AudioMappingView : public wxPanel
 {
 
 class AudioMappingView : public wxPanel
 {
index 0949d02a6c7e38cb196e28a97dab60671615bca9..762ec377464f6a0e8e8e068ed8636ed187f5b6c2 100644 (file)
@@ -1,3 +1,5 @@
+/* -*- c-basic-offset: 8; default-tab-width: 8; -*- */
+
 /*
     Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
 
 /*
     Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
 
@@ -21,6 +23,7 @@
 #include "lib/ffmpeg_content.h"
 #include "ffmpeg_content_dialog.h"
 #include "wx_util.h"
 #include "lib/ffmpeg_content.h"
 #include "ffmpeg_content_dialog.h"
 #include "wx_util.h"
+#include "audio_mapping_view.h"
 
 using std::vector;
 using std::string;
 
 using std::vector;
 using std::string;
@@ -44,6 +47,10 @@ FFmpegContentDialog::FFmpegContentDialog (wxWindow* parent, shared_ptr<FFmpegCon
        grid->Add (_subtitle_stream, 1, wxEXPAND | wxALL, 6);
        grid->AddSpacer (0);
 
        grid->Add (_subtitle_stream, 1, wxEXPAND | wxALL, 6);
        grid->AddSpacer (0);
 
+       _audio_mapping = new AudioMappingView (this);
+       grid->Add (_audio_mapping, 1, wxEXPAND | wxALL, 6);
+       grid->AddSpacer (0);
+
        _audio_stream->Clear ();
        vector<FFmpegAudioStream> a = content->audio_streams ();
        for (vector<FFmpegAudioStream>::iterator i = a.begin(); i != a.end(); ++i) {
        _audio_stream->Clear ();
        vector<FFmpegAudioStream> a = content->audio_streams ();
        for (vector<FFmpegAudioStream>::iterator i = a.begin(); i != a.end(); ++i) {
@@ -69,6 +76,8 @@ FFmpegContentDialog::FFmpegContentDialog (wxWindow* parent, shared_ptr<FFmpegCon
                _subtitle_stream->SetSelection (wxNOT_FOUND);
        }
 
                _subtitle_stream->SetSelection (wxNOT_FOUND);
        }
 
+       _audio_mapping->set_mapping (content->audio_mapping ());
+
        wxBoxSizer* overall_sizer = new wxBoxSizer (wxVERTICAL);
        overall_sizer->Add (grid, 1, wxEXPAND | wxALL, 6);
 
        wxBoxSizer* overall_sizer = new wxBoxSizer (wxVERTICAL);
        overall_sizer->Add (grid, 1, wxEXPAND | wxALL, 6);
 
index 5251ad5da8a51093d5e5cad12a24826716e1abea..a04645f6947b5e054804bec7331e91574d86b51e 100644 (file)
@@ -1,3 +1,5 @@
+/* -*- c-basic-offset: 8; default-tab-width: 8; -*- */
+
 /*
     Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
 
 /*
     Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
 
@@ -23,6 +25,7 @@
 
 class wxSpinCtrl;
 class FFmpegContent;
 
 class wxSpinCtrl;
 class FFmpegContent;
+class AudioMappingView;
 
 class FFmpegContentDialog : public wxDialog
 {
 
 class FFmpegContentDialog : public wxDialog
 {
@@ -37,4 +40,5 @@ private:
        wxChoice* _audio_stream;
        wxStaticText* _audio_description;
        wxChoice* _subtitle_stream;
        wxChoice* _audio_stream;
        wxStaticText* _audio_description;
        wxChoice* _subtitle_stream;
+       AudioMappingView* _audio_mapping;
 };
 };
index 73c52945b8f69af8c70b689a0a5984633cbb146f..d96d146f982a7b3fa99fd4e504d52c035b4154b1 100644 (file)
@@ -53,7 +53,6 @@
 #include "audio_dialog.h"
 #include "imagemagick_content_dialog.h"
 #include "ffmpeg_content_dialog.h"
 #include "audio_dialog.h"
 #include "imagemagick_content_dialog.h"
 #include "ffmpeg_content_dialog.h"
-#include "audio_mapping_view.h"
 #include "timeline_dialog.h"
 
 using std::string;
 #include "timeline_dialog.h"
 
 using std::string;
@@ -401,9 +400,6 @@ FilmEditor::make_audio_panel ()
                grid->Add (s);
        }
 
                grid->Add (s);
        }
 
-       _audio_mapping = new AudioMappingView (_audio_panel);
-       _audio_sizer->Add (_audio_mapping, 1, wxEXPAND | wxALL, 6);
-       
        _audio_gain->SetRange (-60, 60);
        _audio_delay->SetRange (-1000, 1000);
 }
        _audio_gain->SetRange (-60, 60);
        _audio_delay->SetRange (-1000, 1000);
 }
@@ -864,7 +860,6 @@ FilmEditor::set_film (shared_ptr<Film> f)
        film_changed (Film::J2K_BANDWIDTH);
        film_changed (Film::DCI_METADATA);
        film_changed (Film::DCP_VIDEO_FRAME_RATE);
        film_changed (Film::J2K_BANDWIDTH);
        film_changed (Film::DCI_METADATA);
        film_changed (Film::DCP_VIDEO_FRAME_RATE);
-       film_changed (Film::AUDIO_MAPPING);
 
        film_content_changed (boost::shared_ptr<Content> (), FFmpegContentProperty::SUBTITLE_STREAMS);
        film_content_changed (boost::shared_ptr<Content> (), FFmpegContentProperty::SUBTITLE_STREAM);
 
        film_content_changed (boost::shared_ptr<Content> (), FFmpegContentProperty::SUBTITLE_STREAMS);
        film_content_changed (boost::shared_ptr<Content> (), FFmpegContentProperty::SUBTITLE_STREAM);
index c791ad064ef411b4e32c94f4ca2fde065b93ccc0..4bdba9979b1f53d3f0032cd04359547b1f5acf5a 100644 (file)
@@ -33,7 +33,6 @@ class wxListCtrl;
 class wxListEvent;
 class Film;
 class AudioDialog;
 class wxListEvent;
 class Film;
 class AudioDialog;
-class AudioMappingView;
 class TimelineDialog;
 
 /** @class FilmEditor
 class TimelineDialog;
 
 /** @class FilmEditor
@@ -159,7 +158,6 @@ private:
        wxButton* _audio_gain_calculate_button;
        wxButton* _show_audio;
        wxSpinCtrl* _audio_delay;
        wxButton* _audio_gain_calculate_button;
        wxButton* _show_audio;
        wxSpinCtrl* _audio_delay;
-       AudioMappingView* _audio_mapping;
        wxCheckBox* _with_subtitles;
        wxSpinCtrl* _subtitle_offset;
        wxSpinCtrl* _subtitle_scale;
        wxCheckBox* _with_subtitles;
        wxSpinCtrl* _subtitle_offset;
        wxSpinCtrl* _subtitle_scale;
index 40527ded712b038c25d4c3b3ff13e329400504fb..1e0641ac4330d5ec576aa33c9135db7906977e10 100644 (file)
@@ -1,3 +1,5 @@
+/* -*- c-basic-offset: 8; default-tab-width: 8; -*- */
+
 /*
     Copyright (C) 2012 Carl Hetherington <cth@carlh.net>
 
 /*
     Copyright (C) 2012 Carl Hetherington <cth@carlh.net>