add last backwards-compatible version
This commit is contained in:
@@ -26,7 +26,6 @@ namespace {
|
||||
void operator() (unsigned p_trackno,const track_record & p_record) {
|
||||
if (p_trackno > 0) {
|
||||
cue_creator::t_entry_list::iterator iter = m_entries.insert_last();
|
||||
iter->m_trackType = "AUDIO";
|
||||
iter->m_file = p_record.m_file;
|
||||
iter->m_flags = p_record.m_flags;
|
||||
iter->m_index_list = p_record.m_index_list;
|
||||
@@ -124,18 +123,9 @@ namespace {
|
||||
};
|
||||
};
|
||||
|
||||
static bool meta_value_equals(const char* v1, const char* v2, bool asNumber) {
|
||||
if (asNumber) {
|
||||
// Special fix: leading zeros on track numbers
|
||||
while( *v1 == '0' ) ++ v1;
|
||||
while( *v2 == '0' ) ++ v2;
|
||||
}
|
||||
return strcmp(v1,v2) == 0;
|
||||
}
|
||||
|
||||
static void strip_redundant_track_meta(unsigned p_tracknumber,const file_info & p_cueinfo,file_info_record::t_meta_map & p_meta,const char * p_metaname, bool asNumber) {
|
||||
const size_t metaindex = p_cueinfo.meta_find(p_metaname);
|
||||
if (metaindex == SIZE_MAX) return;
|
||||
static void strip_redundant_track_meta(unsigned p_tracknumber,const file_info & p_cueinfo,file_info_record::t_meta_map & p_meta,const char * p_metaname) {
|
||||
t_size metaindex = p_cueinfo.meta_find(p_metaname);
|
||||
if (metaindex == ~0) return;
|
||||
pfc::string_formatter namelocal;
|
||||
build_cue_meta_name(p_metaname,p_tracknumber,namelocal);
|
||||
{
|
||||
@@ -144,8 +134,7 @@ static void strip_redundant_track_meta(unsigned p_tracknumber,const file_info &
|
||||
file_info_record::t_meta_value::const_iterator iter = val->first();
|
||||
for(t_size valwalk = 0, valcount = p_cueinfo.meta_enum_value_count(metaindex); valwalk < valcount; ++valwalk) {
|
||||
if (iter.is_empty()) return;
|
||||
|
||||
if (!meta_value_equals(*iter,p_cueinfo.meta_enum_value(metaindex,valwalk), asNumber)) return;
|
||||
if (strcmp(*iter,p_cueinfo.meta_enum_value(metaindex,valwalk)) != 0) return;
|
||||
++iter;
|
||||
}
|
||||
if (!iter.is_empty()) return;
|
||||
@@ -192,8 +181,8 @@ void embeddedcue_metadata_manager::get_tag(file_info & p_info) const {
|
||||
|
||||
//strip redundant titles and tracknumbers that the cuesheet already contains
|
||||
for(cue_creator::t_entry_list::const_iterator iter = entries.first(); iter.is_valid(); ++iter) {
|
||||
strip_redundant_track_meta(iter->m_track_number,iter->m_infos,output.m_meta,"tracknumber", true);
|
||||
strip_redundant_track_meta(iter->m_track_number,iter->m_infos,output.m_meta,"title", false);
|
||||
strip_redundant_track_meta(iter->m_track_number,iter->m_infos,output.m_meta,"tracknumber");
|
||||
strip_redundant_track_meta(iter->m_track_number,iter->m_infos,output.m_meta,"title");
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user