+/** @brief Called when a rtp-address command succeeds */
+static void got_rtp_address(void attribute((unused)) *v,
+ int attribute((unused)) nvec,
+ char attribute((unused)) **vec) {
+ rtp_address_in_flight = 0;
+ rtp_supported = 1;
+ rtp_is_running = rtp_running();
+ control_monitor(0);
+}
+
+/** @brief Called when a rtp-address command fails */
+static void no_rtp_address(struct callbackdata attribute((unused)) *cbd,
+ int attribute((unused)) code,
+ const char attribute((unused)) *msg) {
+ rtp_address_in_flight = 0;
+ rtp_supported = 0;
+ rtp_is_running = 0;
+ control_monitor(0);
+}
+
+/** @brief Called to check whether RTP play is available */
+static void check_rtp_address(void) {
+ if(!rtp_address_in_flight) {
+ struct callbackdata *const cbd = xmalloc(sizeof *cbd);
+ cbd->onerror = no_rtp_address;
+ disorder_eclient_rtp_address(client, got_rtp_address, cbd);
+ }
+}
+