void Media::play(const std::string & in, int channel, int loop) { std::string filename = convert_path(in); size_t size = platform_get_file_size(filename.c_str()); if (size <= 0) { std::cout << "Audio file does not exist: " << filename << std::endl; return; } AudioType type = get_audio_type(filename); SoundFile data(INVALID_ASSET_ID, filename, type, size); play(&data, channel, loop); }
void Media::add_file(unsigned int id, const chowstring & fn) { chowstring filename = convert_path(fn); AudioType type = get_audio_type(filename); size_t size = platform_get_file_size(filename.c_str()); bool is_wav = type == WAV; SoundData * data; if ((is_wav && size <= WAV_STREAM_THRESHOLD) || (!is_wav && size <= OGG_STREAM_THRESHOLD)) { FSFile fp(filename.c_str(), "r"); data = new SoundMemory(id, fp, type, size); } else { data = new SoundFile(id, filename, type, size); } sounds[id] = data; }
void Media::play(const chowstring & in, int channel, int loop) { chowstring filename = convert_path(in); size_t size; #ifdef USE_FILE_PRELOAD ChowdrenAudio::AudioPreload * preload; preload = ChowdrenAudio::get_audio_preload(filename); if (preload != NULL) { size = preload->size; } else #endif { size = platform_get_file_size(filename.c_str()); } if (size <= 0) { std::cout << "Audio file does not exist: " << filename << std::endl; return; } AudioType type = get_audio_type(filename); SoundFile data(INVALID_ASSET_ID, filename, type, size); play(&data, channel, loop); }