X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Faudio_mapping.cc;h=e86e2e2ac6820499cd551ddaed17ffe8e7f30019;hb=5dc2dbdb6639f8d617a40209ad603d2a38f9df2a;hp=7d7e9f82863794b6495f368a677402793d8b5160;hpb=bb0a36c3a6bea9cd1ebdde7b8a3a04765e317569;p=dcpomatic.git diff --git a/src/lib/audio_mapping.cc b/src/lib/audio_mapping.cc index 7d7e9f828..e86e2e2ac 100644 --- a/src/lib/audio_mapping.cc +++ b/src/lib/audio_mapping.cc @@ -22,6 +22,7 @@ #include #include "audio_mapping.h" #include "util.h" +#include "md5_digester.h" using std::list; using std::cout; @@ -39,7 +40,7 @@ AudioMapping::AudioMapping () } -/** Create a default AudioMapping for a given channel count. +/** Create an empty AudioMapping for a given channel count. * @param channels Number of channels. */ AudioMapping::AudioMapping (int channels) @@ -126,3 +127,20 @@ AudioMapping::as_xml (xmlpp::Node* node) const } } } + +/** @return a string which is unique for a given AudioMapping configuration, for + * differentiation between different AudioMappings. + */ +string +AudioMapping::digest () const +{ + MD5Digester digester; + digester.add (_content_channels); + for (int i = 0; i < _content_channels; ++i) { + for (int j = 0; j < MAX_DCP_AUDIO_CHANNELS; ++j) { + digester.add (_gain[i][j]); + } + } + + return digester.get (); +}