static void hash_hes_file( Hes_Emu::header_t const& h, byte const* data, int data_size, Music_Emu::Hash_Function& out ) { out.hash_( &h.vers, sizeof(h.vers) ); out.hash_( &h.first_track, sizeof(h.first_track) ); out.hash_( &h.init_addr[0], sizeof(h.init_addr) ); out.hash_( &h.banks[0], sizeof(h.banks) ); out.hash_( &h.data_size[0], sizeof(h.data_size) ); out.hash_( &h.addr[0], sizeof(h.addr) ); out.hash_( &h.unused[0], sizeof(h.unused) ); out.hash_( data, Hes_Core::info_offset ); track_info_t temp; // GCC whines about passing a pointer to a temporary here byte const* more_data = copy_hes_fields( data + Hes_Core::info_offset, &temp ); out.hash_( more_data, data_size - ( more_data - data ) ); }
blargg_err_t Hes_Emu::track_info_( track_info_t* out, int ) const { copy_hes_fields( rom.begin() + 0x20, out ); return 0; }
blargg_err_t track_info_( track_info_t* out, int ) const { copy_hes_fields( h.fields, out ); return 0; }
blargg_err_t Hes_Emu::track_info_( track_info_t* out, int ) const { copy_hes_fields( core.data() + core.info_offset, out ); return blargg_ok; }
blargg_err_t track_info_( track_info_t* out, int ) const { copy_hes_fields( h->data + fields_offset, out ); return blargg_ok; }