#pragma once #include "WwiseItemType.h" #include "Misc/TextFilter.h" #include "WwiseBrowser/WwiseBrowserForwards.h" typedef TTextFilter< const FString& > StringFilter; class IWwiseBrowserDataSource { public: virtual ~IWwiseBrowserDataSource() = default; virtual bool Init() = 0; virtual void ConstructTree(bool bShouldRefresh) = 0; // Constructs the top-level root for the given type, along with its direct children virtual FWwiseTreeItemPtr ConstructTreeRoot(EWwiseItemType::Type Type) = 0; // Loads children for the item matching first InParentId, then InParentPath virtual int32 LoadChildren(const FGuid& InParentId, const FString& InParentPath, TArray& OutChildren) = 0; // Loads children for the item virtual int32 LoadChildren(FWwiseTreeItemPtr ParentTreeItem) = 0; virtual int32 GetChildItemCount(const FWwiseTreeItemPtr& InParentIrem) = 0; virtual FWwiseTreeItemPtr GetRootItem(EWwiseItemType::Type RootType) = 0; virtual FWwiseTreeItemPtr LoadFilteredRootItem(EWwiseItemType::Type Type, TSharedPtr CurrentFilterText) = 0; };