void PlayAudio(char *name, char mode) { ssize_t bytes = 0; bytes = load_audio_file(name, &soundbuf, &soundbuf_size); soundbuf_used = (bytes > 0) ? bytes : 0; PlayVoice(); }
void NGetVoice(char plr, char val) { char fname[100]; ssize_t bytes = 0; sprintf(fname, "%s_%03d.ogg", (plr ? "sov" : "usa"), val); bytes = load_audio_file(fname, &soundbuf, &soundbuf_size); soundbuf_used = (bytes > 0) ? bytes : 0; }
std::vector<AudioBuffer> SoundFX::load_samples(const AudioSpec &_spec, const samples_t &_samples) { std::vector<std::future<void>> futures(_samples.size()); std::vector<AudioBuffer> buffers(_samples.size()); for(unsigned i=0; i<_samples.size(); ++i) { futures[i] = std::async(std::launch::async, [_spec,i,&buffers,&_samples]() { PINFOF(LOG_V1, LOG_AUDIO, "loading %s for %s sound fx\n", _samples[i].file, _samples[i].name); load_audio_file(_samples[i].file, buffers[i], _spec); }); } for(unsigned i=0; i<_samples.size(); ++i) { futures[i].wait(); } return buffers; }
void play_audio(int sidx, int mode) { char filename[40]; ssize_t size; char *name = seq_filename(sidx, mode); if (!name) { CWARNING4(audio, "failed request for sound idx %d, mode %d", sidx, mode); return; } snprintf(filename, sizeof(filename), "%s.ogg", name); CINFO3(audio, "play sound file `%s'", filename); size = load_audio_file(filename, &soundbuf, &soundbuf_size); soundbuf_used = (size > 0) ? size : 0; PlayVoice(); }