Browse Source

[latency api] change backend code to use jack_set_latency_range()

git-svn-id: svn+ssh://jackaudio.org/trunk/jack@4106 0c269be4-1314-0410-8aa9-9f06e86f4224
tags/0.120.1
torben 15 years ago
parent
commit
ea404f416e
7 changed files with 41 additions and 19 deletions
  1. +7
    -3
      drivers/alsa/alsa_driver.c
  2. +7
    -2
      drivers/coreaudio/coreaudio_driver.c
  3. +5
    -2
      drivers/firewire/ffado_driver.c
  4. +5
    -2
      drivers/freebob/freebob_driver.c
  5. +6
    -4
      drivers/oss/oss_driver.c
  6. +5
    -2
      drivers/portaudio/portaudio_driver.c
  7. +6
    -4
      drivers/sun/sun_driver.c

+ 7
- 3
drivers/alsa/alsa_driver.c View File

@@ -1745,6 +1745,7 @@ alsa_driver_attach (alsa_driver_t *driver)
channel_t chn;
jack_port_t *port;
int port_flags;
jack_latency_range_t range;

if (driver->engine->set_buffer_size (driver->engine, driver->frames_per_cycle)) {
jack_error ("ALSA: cannot set engine buffer size for %d (check MIDI)", driver->frames_per_cycle);
@@ -1769,7 +1770,8 @@ alsa_driver_attach (alsa_driver_t *driver)
break;
}

jack_port_set_latency (port, driver->frames_per_cycle + driver->capture_frame_latency);
range.min = range.max = driver->frames_per_cycle + driver->capture_frame_latency;
jack_port_set_latency_range (port, JackCaptureLatency, &range);

driver->capture_ports =
jack_slist_append (driver->capture_ports, port);
@@ -1789,7 +1791,8 @@ alsa_driver_attach (alsa_driver_t *driver)
break;
}
jack_port_set_latency (port, (driver->frames_per_cycle * (driver->user_nperiods - 1)) + driver->playback_frame_latency);
range.min = range.max = (driver->frames_per_cycle * (driver->user_nperiods - 1)) + driver->playback_frame_latency;
jack_port_set_latency_range (port, JackPlaybackLatency, &range);

driver->playback_ports =
jack_slist_append (driver->playback_ports, port);
@@ -1805,7 +1808,8 @@ alsa_driver_attach (alsa_driver_t *driver)
"port for %s", buf);
} else {

jack_port_set_latency (monitor_port, driver->frames_per_cycle);
range.min = range.max = driver->frames_per_cycle;
jack_port_set_latency_range (port, JackCaptureLatency, &range);
driver->monitor_ports =
jack_slist_append (driver->monitor_ports, monitor_port);


+ 7
- 2
drivers/coreaudio/coreaudio_driver.c View File

@@ -437,6 +437,7 @@ coreaudio_driver_attach(coreaudio_driver_t * driver, jack_engine_t * engine)
UInt32 size;
UInt32 value1,value2;
Boolean isWritable;
jack_latency_range_t range;
driver->engine = engine;

@@ -481,7 +482,9 @@ coreaudio_driver_attach(coreaudio_driver_t * driver, jack_engine_t * engine)
if (err != noErr)
JCALog("AudioDeviceGetProperty kAudioDevicePropertySafetyOffset error \n");
jack_port_set_latency(port, driver->frames_per_cycle + value1 + value2 + driver->capture_frame_latency);
range.min = range.max = driver->frames_per_cycle + value1 + value2 + driver->capture_frame_latency;
jack_port_set_latency_range(port, JackCaptureLatency, &range);

driver->capture_ports =
jack_slist_append(driver->capture_ports, port);
}
@@ -515,7 +518,9 @@ coreaudio_driver_attach(coreaudio_driver_t * driver, jack_engine_t * engine)
if (err != noErr)
JCALog("AudioDeviceGetProperty kAudioDevicePropertySafetyOffset error \n");
jack_port_set_latency(port, driver->frames_per_cycle + value1 + value2 + driver->playback_frame_latency);
range.min = range.max = driver->frames_per_cycle + value1 + value2 + driver->playback_frame_latency;
jack_port_set_latency_range(port, JackCaptureLatency, &range);

driver->playback_ports =
jack_slist_append(driver->playback_ports, port);
}


+ 5
- 2
drivers/firewire/ffado_driver.c View File

@@ -63,6 +63,7 @@ ffado_driver_attach (ffado_driver_t *driver)
channel_t chn;
jack_port_t *port=NULL;
int port_flags;
jack_latency_range_t range;

g_verbose=driver->engine->verbose;

@@ -180,7 +181,8 @@ ffado_driver_attach (ffado_driver_t *driver)
driver->capture_ports =
jack_slist_append (driver->capture_ports, NULL);
}
jack_port_set_latency (port, driver->period_size + driver->capture_frame_latency);
range.min = range.max = driver->period_size + driver->capture_frame_latency;
jack_port_set_latency_range (port, JackCaptureLatency, &range);
}
port_flags = JackPortIsInput|JackPortIsPhysical|JackPortIsTerminal;
@@ -245,7 +247,8 @@ ffado_driver_attach (ffado_driver_t *driver)
driver->playback_ports =
jack_slist_append (driver->playback_ports, NULL);
}
jack_port_set_latency (port, (driver->period_size * (driver->device_options.nb_buffers - 1)) + driver->playback_frame_latency);
range.min = range.max = (driver->period_size * (driver->device_options.nb_buffers - 1)) + driver->playback_frame_latency;
jack_port_set_latency_range (port, JackPlaybackLatency, &range);
}

if(ffado_streaming_prepare(driver->dev)) {


+ 5
- 2
drivers/freebob/freebob_driver.c View File

@@ -70,6 +70,7 @@ freebob_driver_attach (freebob_driver_t *driver)
jack_port_t *port=NULL;
int port_flags;
int error=0;
jack_latency_range_t range;

g_verbose=driver->engine->verbose;
driver->device_options.verbose=g_verbose;
@@ -174,7 +175,8 @@ freebob_driver_attach (freebob_driver_t *driver)

if(error) break;

jack_port_set_latency (port, driver->period_size + driver->capture_frame_latency);
range.min = range.max = driver->period_size + driver->capture_frame_latency;
jack_port_set_latency_range (port, JackCaptureLatency, &range);
}
port_flags = JackPortIsInput|JackPortIsPhysical|JackPortIsTerminal;
@@ -231,7 +233,8 @@ freebob_driver_attach (freebob_driver_t *driver)

if(error) break;

jack_port_set_latency (port, (driver->period_size * (driver->device_options.nb_buffers - 1)) + driver->playback_frame_latency);
range.min = range.max = (driver->period_size * (driver->device_options.nb_buffers - 1)) + driver->playback_frame_latency;
jack_port_set_latency_range (port, JackPlaybackLatency, &range);
}

return jack_activate (driver->client);


+ 6
- 4
drivers/oss/oss_driver.c View File

@@ -353,6 +353,7 @@ static int oss_driver_attach (oss_driver_t *driver, jack_engine_t *engine)
unsigned int channel;
char channel_name[64];
jack_port_t *port;
jack_latency_range_t range;

driver->engine = engine;

@@ -375,8 +376,9 @@ static int oss_driver_attach (oss_driver_t *driver, jack_engine_t *engine)
channel_name, __FILE__, __LINE__);
break;
}
jack_port_set_latency(port,
driver->period_size + driver->sys_in_latency);

range.min = range.max = driver->period_size + driver->sys_in_latency;
jack_port_set_latency_range(port, JackCaptureLatency, &range);
driver->capture_ports =
jack_slist_append(driver->capture_ports, port);
}
@@ -394,8 +396,8 @@ static int oss_driver_attach (oss_driver_t *driver, jack_engine_t *engine)
channel_name, __FILE__, __LINE__);
break;
}
jack_port_set_latency(port,
driver->period_size + driver->sys_out_latency);
range.min = range.max = driver->period_size + driver->sys_out_latency;
jack_port_set_latency_range(port, JackPlaybackLatency, &range);
driver->playback_ports =
jack_slist_append(driver->playback_ports, port);
}


+ 5
- 2
drivers/portaudio/portaudio_driver.c View File

@@ -132,6 +132,7 @@ portaudio_driver_attach (portaudio_driver_t *driver, jack_engine_t *engine)
int port_flags;
channel_t chn;
char buf[JACK_PORT_NAME_SIZE];
jack_latency_range_t range;
driver->engine = engine;
@@ -161,7 +162,8 @@ portaudio_driver_attach (portaudio_driver_t *driver, jack_engine_t *engine)
/* XXX fix this so that it can handle: systemic (external) latency
*/

jack_port_set_latency (port, driver->frames_per_cycle);
range.min = range.max = driver->frames_per_cycle;
jack_port_set_latency_range (port, JackCaptureLatency, &range);
driver->capture_ports = jack_slist_append (driver->capture_ports, port);
}
@@ -179,7 +181,8 @@ portaudio_driver_attach (portaudio_driver_t *driver, jack_engine_t *engine)
/* XXX fix this so that it can handle: systemic (external) latency
*/
jack_port_set_latency (port, driver->frames_per_cycle);
range.min = range.max = driver->frames_per_cycle;
jack_port_set_latency_range (port, JackPlaybackLatency, &range);
driver->playback_ports = jack_slist_append (driver->playback_ports, port);
}



+ 6
- 4
drivers/sun/sun_driver.c View File

@@ -564,6 +564,7 @@ sun_driver_attach (sun_driver_t *driver)
int channel;
char channel_name[64];
jack_port_t *port;
jack_latency_range_t range;

if (driver->engine->set_buffer_size(driver->engine, driver->period_size)) {
jack_error ("sun_driver: cannot set engine buffer size to %d (check MIDI)", driver->period_size);
@@ -585,8 +586,9 @@ sun_driver_attach (sun_driver_t *driver)
"%s@%i", channel_name, __FILE__, __LINE__);
break;
}
jack_port_set_latency(port,
driver->period_size + driver->sys_in_latency);

range.min = range.max = driver->period_size + driver->sys_in_latency;
jack_port_set_latency_range(port, JackCaptureLatency, &range);
driver->capture_ports =
jack_slist_append(driver->capture_ports, port);
}
@@ -604,8 +606,8 @@ sun_driver_attach (sun_driver_t *driver)
"%s: %s@%i", channel_name, __FILE__, __LINE__);
break;
}
jack_port_set_latency(port,
driver->period_size + driver->sys_out_latency);
range.min = range.max = driver->period_size + driver->sys_out_latency;
jack_port_set_latency_range(port, JackPlaybackLatency, &range);
driver->playback_ports =
jack_slist_append(driver->playback_ports, port);
}


Loading…
Cancel
Save