Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* game provides us mono samples, we need stereo */
- static int16_t rb_soundbuf [MAX_SOUNDBUF_SIZE * 2];
- static int8_t temp_soundbuf[MAX_SOUNDBUF_SIZE];
- static void get_more(const void** start, size_t* size)
- {
- if(audio_sys->settings.sound_enabled && audio_callback)
- {
- audio_callback(audio_param, temp_soundbuf, audio_sys->settings.sound_bufsize);
- /* convert xworld format (signed 8-bit) to rockbox format (stereo signed 16-bit) */
- for(int i = 0; i < audio_sys->settings.sound_bufsize; i += 2)
- {
- rb_soundbuf[i] = temp_soundbuf[i] * 0x100; /* mirror left/right channels */
- rb_soundbuf[i+1] = rb_soundbuf[i];
- }
- *start = rb_soundbuf;
- *size = audio_sys->settings.sound_bufsize * 2 * sizeof(int16_t);
- }
- else
- {
- rb->memset(rb_soundbuf, 0, audio_sys->settings.sound_bufsize * 2 * sizeof(int16_t));
- *start = rb_soundbuf;
- *size = audio_sys->settings.sound_bufsize * 2 * sizeof(int16_t);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement