mirror of https://github.com/AxioDL/amuse.git
Fix NameDB and Voice related crashes
This commit is contained in:
parent
1884e0ca7a
commit
d9018e2d2e
|
@ -63,7 +63,7 @@ std::pair<ObjToken<SampleEntryData>, const unsigned char*>
|
||||||
const_cast<SampleEntry*>(sample)->loadLooseData(basePath);
|
const_cast<SampleEntry*>(sample)->loadLooseData(basePath);
|
||||||
return {sample->m_data, sample->m_data->m_looseData.get()};
|
return {sample->m_data, sample->m_data->m_looseData.get()};
|
||||||
}
|
}
|
||||||
return std::make_pair(ObjToken<SampleEntryData>(), m_samp + sample->m_data->m_sampleOff);
|
return {sample->m_data, m_samp + sample->m_data->m_sampleOff};
|
||||||
}
|
}
|
||||||
|
|
||||||
SampleFileState AudioGroup::getSampleFileState(SampleId sfxId, const SampleEntry* sample, SystemString* pathOut) const
|
SampleFileState AudioGroup::getSampleFileState(SampleId sfxId, const SampleEntry* sample, SystemString* pathOut) const
|
||||||
|
|
|
@ -46,6 +46,7 @@ static void ReadRangedObjectIds(NameDB* db, athena::io::IStreamReader& r, NameDB
|
||||||
useId.id |= 0x8000;
|
useId.id |= 0x8000;
|
||||||
else if (tp == NameDB::Type::Keymap)
|
else if (tp == NameDB::Type::Keymap)
|
||||||
useId.id |= 0x4000;
|
useId.id |= 0x4000;
|
||||||
|
if (db)
|
||||||
db->registerPair(NameDB::generateName(useId, tp), useId);
|
db->registerPair(NameDB::generateName(useId, tp), useId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -55,6 +56,7 @@ static void ReadRangedObjectIds(NameDB* db, athena::io::IStreamReader& r, NameDB
|
||||||
id |= 0x8000;
|
id |= 0x8000;
|
||||||
else if (tp == NameDB::Type::Keymap)
|
else if (tp == NameDB::Type::Keymap)
|
||||||
id |= 0x4000;
|
id |= 0x4000;
|
||||||
|
if (db)
|
||||||
db->registerPair(NameDB::generateName(id, tp), id);
|
db->registerPair(NameDB::generateName(id, tp), id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -97,6 +99,7 @@ AudioGroupProject::AudioGroupProject(athena::io::IStreamReader& r, GCNDataTag)
|
||||||
GroupHeader<athena::Big> header;
|
GroupHeader<athena::Big> header;
|
||||||
header.read(r);
|
header.read(r);
|
||||||
|
|
||||||
|
if (GroupId::CurNameDB)
|
||||||
GroupId::CurNameDB->registerPair(NameDB::generateName(header.groupId, NameDB::Type::Group), header.groupId);
|
GroupId::CurNameDB->registerPair(NameDB::generateName(header.groupId, NameDB::Type::Group), header.groupId);
|
||||||
|
|
||||||
/* Sound Macros */
|
/* Sound Macros */
|
||||||
|
@ -156,6 +159,7 @@ AudioGroupProject::AudioGroupProject(athena::io::IStreamReader& r, GCNDataTag)
|
||||||
std::array<SongGroupIndex::MIDISetup, 16>& setup = idx->m_midiSetups[songId];
|
std::array<SongGroupIndex::MIDISetup, 16>& setup = idx->m_midiSetups[songId];
|
||||||
for (int i = 0; i < 16 ; ++i)
|
for (int i = 0; i < 16 ; ++i)
|
||||||
setup[i].read(r);
|
setup[i].read(r);
|
||||||
|
if (SongId::CurNameDB)
|
||||||
SongId::CurNameDB->registerPair(NameDB::generateName(songId, NameDB::Type::Song), songId);
|
SongId::CurNameDB->registerPair(NameDB::generateName(songId, NameDB::Type::Song), songId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -174,6 +178,7 @@ AudioGroupProject::AudioGroupProject(athena::io::IStreamReader& r, GCNDataTag)
|
||||||
SFXGroupIndex::SFXEntryDNA<athena::Big> entry;
|
SFXGroupIndex::SFXEntryDNA<athena::Big> entry;
|
||||||
entry.read(r);
|
entry.read(r);
|
||||||
idx->m_sfxEntries[entry.sfxId.id] = entry;
|
idx->m_sfxEntries[entry.sfxId.id] = entry;
|
||||||
|
if (SFXId::CurNameDB)
|
||||||
SFXId::CurNameDB->registerPair(
|
SFXId::CurNameDB->registerPair(
|
||||||
NameDB::generateName(entry.sfxId.id, NameDB::Type::SFX), entry.sfxId.id);
|
NameDB::generateName(entry.sfxId.id, NameDB::Type::SFX), entry.sfxId.id);
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,6 +51,7 @@ AudioGroupSampleDirectory::AudioGroupSampleDirectory(athena::io::IStreamReader&
|
||||||
EntryDNA<athena::Big> ent;
|
EntryDNA<athena::Big> ent;
|
||||||
ent.read(r);
|
ent.read(r);
|
||||||
m_entries[ent.m_sfxId] = MakeObj<Entry>(ent);
|
m_entries[ent.m_sfxId] = MakeObj<Entry>(ent);
|
||||||
|
if (SampleId::CurNameDB)
|
||||||
SampleId::CurNameDB->registerPair(NameDB::generateName(ent.m_sfxId, NameDB::Type::Sample), ent.m_sfxId);
|
SampleId::CurNameDB->registerPair(NameDB::generateName(ent.m_sfxId, NameDB::Type::Sample), ent.m_sfxId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue