From 49df90ea712a801868ef1007f50926c65b1329da Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Fri, 2 Sep 2011 10:54:04 +0000 Subject: added recent jack api support git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2333 90c681e8-e032-0410-971d-27865f9a5e38 --- src/plugins/Output/jack/bio2jack.c | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) (limited to 'src/plugins/Output') diff --git a/src/plugins/Output/jack/bio2jack.c b/src/plugins/Output/jack/bio2jack.c index 2b9f04e70..9fe41b1c1 100644 --- a/src/plugins/Output/jack/bio2jack.c +++ b/src/plugins/Output/jack/bio2jack.c @@ -1655,16 +1655,18 @@ JACK_OpenEx(int *deviceID, unsigned int bits_per_channel, /* FIXME: maybe we should keep different latency values for input vs output? */ if(drv->num_output_channels > 0) { - periods = jack_port_get_total_latency(drv->client, - drv->output_port[0]) / periodSize; + jack_latency_range_t range; + jack_port_get_latency_range(drv->output_port[0], JackPlaybackLatency, &range); + periods = range.max / periodSize; drv->latencyMS = periodSize * periods * 1000 / (drv->jack_sample_rate * (drv->bits_per_channel / 8 * drv->num_output_channels)); } else if(drv->num_input_channels > 0) { - periods = jack_port_get_total_latency(drv->client, - drv->input_port[0]) / periodSize; + jack_latency_range_t range; + jack_port_get_latency_range(drv->output_port[0], JackPlaybackLatency, &range); + periods = range.max / periodSize; drv->latencyMS = periodSize * periods * 1000 / (drv->jack_sample_rate * (drv->bits_per_channel / 8 * @@ -2542,8 +2544,12 @@ JACK_GetJackOutputLatency(int deviceID) jack_driver_t *drv = getDriver(deviceID); long return_val = 0; - if(drv->client && drv->num_output_channels) - return_val = jack_port_get_total_latency(drv->client, drv->output_port[0]); + if(drv->client && drv->num_input_channels) + { + jack_latency_range_t range; + jack_port_get_latency_range(drv->output_port[0], JackCaptureLatency, &range); + return_val = range.max; + } TRACE("got latency of %ld frames\n", return_val); @@ -2559,8 +2565,11 @@ JACK_GetJackInputLatency(int deviceID) long return_val = 0; if(drv->client && drv->num_input_channels) - return_val = jack_port_get_total_latency(drv->client, drv->input_port[0]); - + { + jack_latency_range_t range; + jack_port_get_latency_range(drv->output_port[0], JackPlaybackLatency, &range); + return_val = range.max; + } TRACE("got latency of %ld frames\n", return_val); releaseDriver(drv); -- cgit v1.2.3-13-gbd6f