void foobar2000_io::generate_temp_location_for_file(pfc::string_base & p_out, const char * p_origpath,const char * p_extension,const char * p_magic) { hasher_md5_result hash; { static_api_ptr_t<hasher_md5> hasher; hasher_md5_state state; hasher->initialize(state); hasher->process(state,p_origpath,strlen(p_origpath)); hasher->process(state,p_extension,strlen(p_extension)); hasher->process(state,p_magic,strlen(p_magic)); hash = hasher->get_result(state); } p_out = p_origpath; p_out.truncate(p_out.scan_filename()); p_out += "temp-"; p_out += pfc::format_hexdump(hash.m_data,sizeof(hash.m_data),""); p_out += "."; p_out += p_extension; }