+/** @brief Called when a rtp-address command succeeds */
+static void got_rtp_address(void attribute((unused)) *v,
+ const char *err,
+ 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(err) {
+ /* 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();
+ }
+ /*fprintf(stderr, "rtp supported->%d, running->%d\n",
+ rtp_supported, rtp_is_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(const char attribute((unused)) *event,
+ void attribute((unused)) *eventdata,
+ void attribute((unused)) *callbackdata) {
+ if(!rtp_address_in_flight) {
+ //fprintf(stderr, "checking rtp\n");
+ disorder_eclient_rtp_address(client, got_rtp_address, NULL);
+ }
+}
+