X-Git-Url: https://git.distorted.org.uk/~mdw/disorder/blobdiff_plain/b50cfb8a0d4fc71877ae0bfcd7b28879886a2ac1..d76bbdea349bf3856172ce9599e657d566e91162:/lib/uaudio-rtp.c diff --git a/lib/uaudio-rtp.c b/lib/uaudio-rtp.c index 0060940..31e8f57 100644 --- a/lib/uaudio-rtp.c +++ b/lib/uaudio-rtp.c @@ -23,6 +23,8 @@ #include #include #include +#include +#include #include #include #include @@ -36,6 +38,7 @@ #include "addr.h" #include "ifreq.h" #include "timeval.h" +#include "configuration.h" /** @brief Bytes to send per network packet * @@ -278,7 +281,8 @@ static void rtp_start(uaudio_callback *callback, rtp_play, 256 / uaudio_sample_size, (NETWORK_BYTES - sizeof(struct rtp_header)) - / uaudio_sample_size); + / uaudio_sample_size, + 0); } static void rtp_stop(void) { @@ -296,13 +300,33 @@ static void rtp_deactivate(void) { uaudio_thread_deactivate(); } +static void rtp_configure(void) { + char buffer[64]; + + uaudio_set("rtp-destination", config->broadcast.s[0]); + uaudio_set("rtp-destination-port", config->broadcast.s[1]); + if(config->broadcast_from.n) { + uaudio_set("rtp-source", config->broadcast_from.s[0]); + uaudio_set("rtp-source-port", config->broadcast_from.s[0]); + } else { + uaudio_set("rtp-source", NULL); + uaudio_set("rtp-source-port", NULL); + } + snprintf(buffer, sizeof buffer, "%ld", config->multicast_ttl); + uaudio_set("multicast-ttl", buffer); + uaudio_set("multicast-loop", config->multicast_loop ? "yes" : "no"); + snprintf(buffer, sizeof buffer, "%ld", config->rtp_delay_threshold); + uaudio_set("delay-threshold", buffer); +} + const struct uaudio uaudio_rtp = { .name = "rtp", .options = rtp_options, .start = rtp_start, .stop = rtp_stop, .activate = rtp_activate, - .deactivate = rtp_deactivate + .deactivate = rtp_deactivate, + .configure = rtp_configure, }; /*