Browse Source

[alsa io] add latency callback for correct latency computation

git-svn-id: svn+ssh://jackaudio.org/trunk/jack@4104 0c269be4-1314-0410-8aa9-9f06e86f4224
tags/0.120.1
torben 14 years ago
parent
commit
bf16a19cda
2 changed files with 60 additions and 0 deletions
  1. +30
    -0
      tools/alsa_in.c
  2. +30
    -0
      tools/alsa_out.c

+ 30
- 0
tools/alsa_in.c View File

@@ -464,6 +464,34 @@ again:
return 0;
}

/**
* the latency callback.
* sets up the latencies on the ports.
*/

int
latency_cb (jack_latency_callback_mode_t mode, void *arg)
{
jack_latency_range_t range;
JSList *node;

range.min = range.max = target_delay;

if (mode == JackCaptureLatency) {
for (node = capture_ports; node; node = jack_slist_next (node)) {
jack_port_t *port = node->data;
jack_port_set_latency_range (port, mode, &range);
}
} else {
for (node = playback_ports; node; node = jack_slist_next (node)) {
jack_port_t *port = node->data;
jack_port_set_latency_range (port, mode, &range);
}
}

return 0;
}


/**
* Allocate the necessary jack ports...
@@ -660,6 +688,8 @@ int main (int argc, char *argv[]) {

jack_on_shutdown (client, jack_shutdown, 0);

if (jack_set_latency_callback)
jack_set_latency_callback (client, latency_cb, 0);

// get jack sample_rate


+ 30
- 0
tools/alsa_out.c View File

@@ -462,6 +462,34 @@ again:
return 0;
}

/**
* the latency callback.
* sets up the latencies on the ports.
*/

int
latency_cb (jack_latency_callback_mode_t mode, void *arg)
{
jack_latency_range_t range;
JSList *node;

range.min = range.max = target_delay;

if (mode == JackCaptureLatency) {
for (node = capture_ports; node; node = jack_slist_next (node)) {
jack_port_t *port = node->data;
jack_port_set_latency_range (port, mode, &range);
}
} else {
for (node = playback_ports; node; node = jack_slist_next (node)) {
jack_port_t *port = node->data;
jack_port_set_latency_range (port, mode, &range);
}
}

return 0;
}


/**
* Allocate the necessary jack ports...
@@ -658,6 +686,8 @@ int main (int argc, char *argv[]) {

jack_on_shutdown (client, jack_shutdown, 0);

if (jack_set_latency_callback)
jack_set_latency_callback (client, latency_cb, 0);

// get jack sample_rate


Loading…
Cancel
Save