t_size file_info::meta_find_ex(const char * p_name,t_size p_name_length) const { t_size n, m = meta_get_count(); for(n=0; n<m; n++) { if (pfc::stricmp_ascii_ex(meta_enum_name(n),pfc_infinite,p_name,p_name_length) == 0) return n; } return pfc_infinite; }
void file_info::meta_remove_field(const char * name)//removes ALL fields of given name { assert(is_valid_utf8(name)); int n; for(n=meta_get_count()-1;n>=0;n--) { if (!stricmp_utf8(meta_enum_name(n),name)) meta_remove(n); } }
int file_info::meta_get_count_by_name(const char* name) const { assert(is_valid_utf8(name)); int n,m=meta_get_count(); int rv=0; for(n=0;n<m;n++) { if (!stricmp_utf8(name,meta_enum_name(n))) rv++; } return rv; }
void file_info::to_console() const { console::formatter() << "File info dump:"; if (get_length() > 0) console::formatter() << "Duration: " << pfc::format_time_ex(get_length(), 6); pfc::string_formatter temp; for(t_size metaWalk = 0; metaWalk < meta_get_count(); ++metaWalk) { meta_format_entry(metaWalk, temp); console::formatter() << "Meta: " << meta_enum_name(metaWalk) << " = " << temp; } for(t_size infoWalk = 0; infoWalk < info_get_count(); ++infoWalk) { console::formatter() << "Info: " << info_enum_name(infoWalk) << " = " << info_enum_value(infoWalk); } }
int file_info::meta_get_idx(const char * name,int num) const { assert(is_valid_utf8(name)); int n,m=meta_get_count(); for(n=0;n<m;n++) { if (!stricmp_utf8(name,meta_enum_name(n))) { if (num==0) return n; num--; } } return -1; }