25 #ifndef __CU_SOUND_LOADER__
26 #define __CU_SOUND_LOADER__
27 #include <unordered_set>
63 #pragma mark Sound Coordinator
73 std::unordered_map<std::string,Sound*> _sources;
75 std::unordered_map<std::string,int> _refcnts;
77 std::unordered_map<std::string,std::vector<std::function<void(Sound* s)>>> _callbacks;
104 bool isLoaded(std::string source)
const {
return _sources.find(source) != _sources.end(); }
114 bool isPending(std::string source)
const {
return _callbacks.find(source) != _callbacks.end(); }
117 #pragma mark Allocation Methods
128 Sound* load(std::string source);
142 void loadAsync(std::string source, std::function<
void(
Sound* s)> callback);
156 void allocate(std::string source,
bool success,
bool preload =
true);
168 void release(
Sound* sound);
175 #pragma mark Sound Loader
189 void allocate(std::string key,
Sound* sound);
193 #pragma mark Activation/Deactivation
216 void start()
override;
229 void stop()
override;
232 #pragma mark Loading/Unloading
243 size_t waitCount()
const override {
return _squeue.size(); }
258 Sound*
load(std::string key, std::string source)
override;
274 void loadAsync(std::string key, std::string source)
override;
287 void unload(std::string key)
override;
301 CC_CONSTRUCTOR_ACCESS:
302 #pragma mark Initializers
size_t instances
Definition: CUSoundLoader.h:80
virtual void start()
Definition: CULoader.h:66
Definition: CUSoundLoader.h:70
size_t waitCount() const override
Definition: CUSoundLoader.h:243
bool isPending(std::string source) const
Definition: CUSoundLoader.h:114
virtual void unload(std::string key)
Definition: CULoader.h:125
bool isLoaded(std::string source) const
Definition: CUSoundLoader.h:104
virtual void unloadAll()
Definition: CULoader.h:138
static Coordinator * _gCoordinator
Definition: CUSoundLoader.h:172
Definition: CUSoundLoader.h:56
virtual void stop()
Definition: CULoader.h:82
Definition: CULoader.h:237
virtual T * load(std::string key, std::string source)
Definition: CULoader.h:310
std::unordered_set< std::string > _squeue
Definition: CUSoundLoader.h:177
virtual void loadAsync(std::string key, std::string source)
Definition: CULoader.h:111