#ifndef __AMUSE_AUDIOUNIT_AUDIOGROUPFILEPRESENTER_HPP__ #define __AMUSE_AUDIOUNIT_AUDIOGROUPFILEPRESENTER_HPP__ #import #include #include @class AudioGroupFilePresenter; struct AudioGroupDataCollection { NSURL* m_proj = nullptr; /* Only this member set for single-file containers */ NSURL* m_pool = nullptr; NSURL* m_sdir = nullptr; NSURL* m_samp = nullptr; bool invalidateURL(NSURL* url); void moveURL(NSURL* oldUrl, NSURL* newUrl); std::unique_ptr _coordinateRead(AudioGroupFilePresenter* presenter, size_t& szOut, NSURL* url); std::unique_ptr coordinateProjRead(AudioGroupFilePresenter* presenter, size_t& szOut); std::unique_ptr coordinatePoolRead(AudioGroupFilePresenter* presenter, size_t& szOut); std::unique_ptr coordinateSdirRead(AudioGroupFilePresenter* presenter, size_t& szOut); std::unique_ptr coordinateSampRead(AudioGroupFilePresenter* presenter, size_t& szOut); }; @interface AudioGroupFilePresenter : NSObject { NSURL* m_groupURL; NSOperationQueue* m_dataQueue; std::map m_audioGroupCollections; } @end #endif // __AMUSE_AUDIOUNIT_AUDIOGROUPFILEPRESENTER_HPP__