00001
00002
00003
00004
00005
00006
00007
00008
00009 #include "ResSoundPack.h"
00010
00011 #include "Path.h"
00012 #include "OptionAgent.h"
00013
00014
00015 void
00016 ResSoundPack::unloadRes(Mix_Chunk *res)
00017 {
00018 Mix_FreeChunk(res);
00019 }
00020
00021
00022
00023
00024
00025 Mix_Chunk *
00026 ResSoundPack::loadSound(const Path &file)
00027 {
00028 Mix_Chunk *chunk = NULL;
00029
00030 if (OptionAgent::agent()->getAsBool("sound", true)) {
00031 chunk = Mix_LoadWAV(file.getNative().c_str());
00032 if (NULL == chunk) {
00033 LOG_WARNING(ExInfo("cannot load sound")
00034 .addInfo("path", file.getNative())
00035 .addInfo("MixError", Mix_GetError()));
00036 }
00037 }
00038 return chunk;
00039 }
00040
00041
00042
00043
00044
00045 void
00046 ResSoundPack::addSound(const std::string &name, const Path &file)
00047 {
00048 Mix_Chunk *chunk = loadSound(file);
00049 if (chunk) {
00050 addRes(name, chunk);
00051 }
00052 }
00053