diff --git a/src/monocoque/devices/sound/usb_generic_shaker_pulse.c b/src/monocoque/devices/sound/usb_generic_shaker_pulse.c index 6c14d60..b1c1ee0 100644 --- a/src/monocoque/devices/sound/usb_generic_shaker_pulse.c +++ b/src/monocoque/devices/sound/usb_generic_shaker_pulse.c @@ -123,7 +123,7 @@ int usb_generic_shaker_init(SoundDevice* sounddevice, pa_threaded_mainloop* main // recommended settings, i.e. server uses sensible values pa_buffer_attr buffer_attr; - buffer_attr.maxlength = (uint32_t) -1; + buffer_attr.maxlength = (uint32_t) 32767; buffer_attr.tlength = (uint32_t) -1; buffer_attr.prebuf = (uint32_t) -1; buffer_attr.minreq = (uint32_t) -1; @@ -131,22 +131,17 @@ int usb_generic_shaker_init(SoundDevice* sounddevice, pa_threaded_mainloop* main pa_cvolume cv; uint16_t pvolume = ceil(((double) volume/100.0d)*65535); // Settings copied as per the chromium browser source - pa_stream_flags_t stream_flags; - stream_flags = PA_STREAM_INTERPOLATE_TIMING | - PA_STREAM_NOT_MONOTONIC | PA_STREAM_AUTO_TIMING_UPDATE | - PA_STREAM_ADJUST_LATENCY; - //stream_flags = PA_STREAM_START_CORKED; + pa_stream_flags_t stream_flags; + stream_flags = PA_STREAM_INTERPOLATE_TIMING | PA_STREAM_NOT_MONOTONIC | PA_STREAM_AUTO_TIMING_UPDATE | PA_STREAM_ADJUST_LATENCY | PA_STREAM_START_CORKED; + // Connect stream to the default audio output sink pa_cvolume_set(&cv, sample_specifications.channels, pvolume); - //pa_cvolume_set(&cv, 1, 0); pa_cvolume_set_balance(&cv, &channel_map, pan); assert(pa_stream_connect_playback(stream, devname, &buffer_attr, stream_flags, &cv, NULL) == 0); - - // Wait for the stream to be ready for(;;) { pa_stream_state_t stream_state = pa_stream_get_state(stream); diff --git a/src/monocoque/gameloop/gameloop.c b/src/monocoque/gameloop/gameloop.c index 2b9db20..484d152 100644 --- a/src/monocoque/gameloop/gameloop.c +++ b/src/monocoque/gameloop/gameloop.c @@ -203,10 +203,9 @@ int clilooper(SimDevice* devices, int numdevices, Parameters* p, SimData* simdat for (int x = 0; x < numdevices; x++) { devices[x].update(&devices[x], simdata); - } - if( poll(&mypoll, 1, 1000.0/DEFAULT_UPDATE_RATE) ) + if( poll(&mypoll, 1, 1000.0/update_rate) ) { scanf("%c", &ch); if(ch == 'q')