audio_stream_type type;
} stream_cfg;
-#ifdef CONFIG_AIRPLAY_2
-typedef enum { ts_ntp, ts_ptp } timing_t;
-typedef enum { ap_1, ap_2 } airplay_t;
+// the following is used even when not built for AirPlay 2
typedef enum {
unspecified_stream_category = 0,
ptp_stream,
ntp_stream,
remote_control_stream
} airplay_stream_c; // "c" for category
+
+
+#ifdef CONFIG_AIRPLAY_2
+typedef enum { ts_ntp, ts_ptp } timing_t;
+typedef enum { ap_1, ap_2 } airplay_t;
typedef enum { realtime_stream, buffered_stream } airplay_stream_t;
typedef struct {
clock_status_t clock_status;
+ airplay_stream_c
+ airplay_stream_category; // is it a remote control stream or a normal "full service" stream? (will be unspecified if not build for AirPlay 2)
+
#ifdef CONFIG_AIRPLAY_2
char *airplay_gid; // UUID in the Bonjour advertisement -- if NULL, the group UUID is the same as
// the pi UUID
airplay_t airplay_type; // are we using AirPlay 1 or AirPlay 2 protocol on this connection?
- airplay_stream_c
- airplay_stream_category; // is it a remote control stream or a normal "full service" stream?
airplay_stream_t airplay_stream_type; // is it realtime audio or buffered audio...
timing_t timing_type; // are we using NTP or PTP on this connection?
}
#endif
+#ifdef CONFIG_AIRPLAY_2
void build_bonjour_strings(rtsp_conn_info *conn) {
+#else
+void build_bonjour_strings(__attribute((unused)) rtsp_conn_info *conn) {
+#endif
int entry_number = 0;
req->contentlength);
resp->respcode = 500;
}
+void handle_post(__attribute((unused)) rtsp_conn_info *conn, __attribute((unused)) rtsp_message *req,
+ __attribute((unused)) rtsp_message *resp) {
+ debug(1, "Connection %d: POST %s Content-Length %d", conn->connection_number, req->path,
+ req->contentlength);
+ resp->respcode = 500;
+}
#endif
#ifdef CONFIG_AIRPLAY_2
resp->respcode = 200;
} else if (conn->airplay_stream_category == remote_control_stream) {
debug(1, "Connection %d: SETUP: Remote Control Stream received.", conn->connection_number);
+ debug_log_rtsp_message(1, "Remote Control Stream stream (second) message", req);
+
resp->respcode = 200;
} else {
debug(1, "Connection %d: SETUP: Stream received but no airplay category set. Nothing done.",
void (*handler)(rtsp_conn_info *conn, rtsp_message *req,
rtsp_message *resp); // for AirPlay 1 only
} method_handlers[] = {{"OPTIONS", handle_options},
+ {"GET", handle_get},
+ {"POST", handle_post},
{"ANNOUNCE", handle_announce},
{"FLUSH", handle_flush},
{"TEARDOWN", handle_teardown},