#pragma once #import #import "AudioGroupFilePresenter.hpp" #include #include @interface DataOutlineView : NSOutlineView { @public IBOutlet NSButton* removeDataButton; IBOutlet NSMenuItem* deleteMenuItem; } @end @interface SamplesTableController : NSObject { AudioGroupFilePresenter* presenter; } - (id)initWithAudioGroupPresenter:(AudioGroupFilePresenter*)present; @end @interface SFXTableController : NSObject { AudioGroupFilePresenter* presenter; } - (id)initWithAudioGroupPresenter:(AudioGroupFilePresenter*)present; @end @interface AppDelegate : NSObject { IBOutlet NSWindow* mainWindow; IBOutlet NSOutlineView* dataOutline; IBOutlet NSSearchField* dataSearchField; IBOutlet NSTableView* sfxTable; IBOutlet NSTableView* samplesTable; IBOutlet NSTextView* creditsView; IBOutlet NSButton* removeDataButton; IBOutlet NSMenuItem* removeDataMenu; AudioGroupFilePresenter* groupFilePresenter; SamplesTableController* samplesController; SFXTableController* sfxController; @public std::unique_ptr booEngine; std::optional amuseAllocator; std::optional amuseEngine; std::shared_ptr activeSFXVox; } - (BOOL)importURL:(NSURL*)url; - (void)outlineView:(DataOutlineView*)ov selectionChanged:(id)item; - (void)reloadTables; - (void)startSFX:(int)sfxId; - (void)startSample:(int)sampId; @end