X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Faudio_mapping.h;h=a2de8306bbf376457788bb77884d4a523bbabee0;hb=b655bd3359e9a014da68cd9f61e2a5b1d233247d;hp=8804bde06174f8e9669a02a81ff207ecbd76310a;hpb=8750efb9e072cf3b42e6c3c29521c7031c0b5dfd;p=dcpomatic.git diff --git a/src/lib/audio_mapping.h b/src/lib/audio_mapping.h index 8804bde06..a2de8306b 100644 --- a/src/lib/audio_mapping.h +++ b/src/lib/audio_mapping.h @@ -17,37 +17,42 @@ */ -#include -#include -#include +#ifndef DCPOMATIC_AUDIO_MAPPING_H +#define DCPOMATIC_AUDIO_MAPPING_H + +#include #include +#include + +namespace xmlpp { + class Node; +} + +namespace cxml { + class Node; +} class AudioMapping { public: - virtual boost::optional source_to_dcp (int c) const = 0; - virtual boost::optional dcp_to_source (libdcp::Channel c) const = 0; -}; + AudioMapping (); + AudioMapping (int); + AudioMapping (boost::shared_ptr); + + void as_xml (xmlpp::Node *) const; -class AutomaticAudioMapping : public AudioMapping -{ -public: - AutomaticAudioMapping (int); + void add (int, libdcp::Channel); - boost::optional source_to_dcp (int c) const; - boost::optional dcp_to_source (libdcp::Channel c) const; - int dcp_channels () const; - -private: - int _source_channels; -}; + std::list dcp_to_content (libdcp::Channel) const; + std::list > content_to_dcp () const { + return _content_to_dcp; + } -class ConfiguredAudioMapping : public AudioMapping -{ -public: - boost::optional source_to_dcp (int c) const; - boost::optional dcp_to_source (libdcp::Channel c) const; + std::list content_channels () const; + std::list content_to_dcp (int) const; private: - std::map _source_to_dcp; + std::list > _content_to_dcp; }; + +#endif