+/** @brief Called when a rtp-address command succeeds */
+static void got_rtp_address(void attribute((unused)) *v,
+ const char *error,
+ int attribute((unused)) nvec,
+ char attribute((unused)) **vec) {
+ const int rtp_was_supported = rtp_supported;
+ const int rtp_was_running = rtp_is_running;
+
+ ++suppress_actions;
+ rtp_address_in_flight = 0;
+ if(error) {
+ /* An error just means that we're not using network play */
+ rtp_supported = 0;
+ rtp_is_running = 0;
+ } else {
+ rtp_supported = 1;
+ rtp_is_running = rtp_running();
+ }
+ if(rtp_supported != rtp_was_supported
+ || rtp_is_running != rtp_was_running)
+ event_raise("rtp-changed", 0);
+ --suppress_actions;
+}
+
+/** @brief Called to check whether RTP play is available */
+static void check_rtp_address(void) {
+ if(!rtp_address_in_flight)
+ disorder_eclient_rtp_address(client, got_rtp_address, NULL);
+}
+