LinuxOggMusic::LinuxOggMusic(gdx_cpp::backends::nix::LinuxOpenALAudio* audio, const ref_ptr_maker< gdx_cpp::files::FileHandle >::type file): LinuxOpenALMusic(audio, file) { input = new LinuxOggInputStream(); input->open(file->path()); setup(input->getChannels(), input->getSampleRate()); }
LinuxOggSound::LinuxOggSound(gdx::nix::LinuxOpenALAudio* audio, const ref_ptr_maker< gdx::FileHandle >::shared_ptr_t file): LinuxOpenALSound(audio) { LinuxOggInputStream input; input.open(file->path()); char* buffer = (char *) malloc(16384); int bufSize = 16384; int size = 0; int i = 0; while ((size = input.read(&buffer[i], 16384)) > 0) { i += size; if (i == bufSize) { buffer = (char *) realloc(buffer, bufSize * 2); assert(buffer); bufSize *= 2; } } setup(buffer, i, input.getChannels(), input.getSampleRate()); free(buffer); }