7Elevate::WwiseMergedDataSource::WwiseMergedDataSource(std::string& wwiseProjectPath, std::string& rootOutputPath, std::string& platform)
9 m_fileDataSource.reset(
new WwiseFileDataSource(wwiseProjectPath));;
10 m_projectDataSource.reset(
new WwiseProjectDBDataSource(rootOutputPath, platform));
13void Elevate::WwiseMergedDataSource::InitializeSource()
15 m_fileDataSource->InitializeSource();
16 m_projectDataSource->InitializeSource();
20void Elevate::WwiseMergedDataSource::RefreshSource()
24 std::map<std::string, WwiseItemPtr> projectDBRefs;
25 for (
const auto item : m_projectDataSource->GetItems().lock()->Children)
27 projectDBRefs.emplace(item->GUID, item);
29 ProcessChildrenMerge(m_fileDataSource->GetItems().lock(), projectDBRefs);
32 EE_CORE_TRACE(
"Completed the Wwise Merged Data Source Refresh.");
35std::weak_ptr<WwiseItem> Elevate::WwiseMergedDataSource::GetItems()
const
38 return m_fileDataSource->GetItems();
41void Elevate::WwiseMergedDataSource::ProcessChildrenMerge(WwiseItemPtr parent, std::map<std::string, WwiseItemPtr>& projectDBRefs)
43 for (
const auto item : parent->Children)
45 if (projectDBRefs.contains(item->GUID))
47 WwiseItemPtr projectDBItemRef = projectDBRefs[item->GUID];
48 item->ShortID = projectDBItemRef->ShortID;
49 item->Path = projectDBItemRef->Path;
50 item->IsInBank =
true;
51 projectDBRefs.erase(item->GUID);
53 ProcessChildrenMerge(item, projectDBRefs);