#define DEFAULT_PORT_RANGE NULL
#define DEFAULT_USER_AGENT "TIZEN-WFD-SINK"
#define DEFAULT_COUPLED_SINK_IP "0.0.0.0"
-#define SECONDARY_SINK_IP "192.168.0.10"
#define SOCKET_TCP_KEEPIDLE 5
#define SOCKET_TCP_KEEPINTVL 2
};
/* commands we send to out loop to notify it of events */
-#define WFD_CMD_OPEN (1 << 0)
-#define WFD_CMD_PLAY (1 << 1)
-#define WFD_CMD_PAUSE (1 << 2)
-#define WFD_CMD_CLOSE (1 << 3)
-#define WFD_CMD_WAIT (1 << 4)
-#define WFD_CMD_REQUEST (1 << 5)
-#define WFD_CMD_LOOP (1 << 6)
-#define WFD_CMD_ALL ((WFD_CMD_LOOP << 1) - 1)
+#define WFD_CMD_OPEN (1 << 0)
+#define WFD_CMD_PLAY (1 << 1)
+#define WFD_CMD_PAUSE (1 << 2)
+#define WFD_CMD_CLOSE (1 << 3)
+#define WFD_CMD_WAIT (1 << 4)
+#define WFD_CMD_REQUEST (1 << 5)
+#define WFD_CMD_CLOSE_COUPLING (1 << 6)
+#define WFD_CMD_LOOP (1 << 7)
+#define WFD_CMD_ALL ((WFD_CMD_LOOP << 1) - 1)
#define GST_ELEMENT_PROGRESS(el, type, code, text) \
G_STMT_START { \
wfd_res = gst_wfd_message_set_coupled_sink (wfd_msg,
coupled_sink_status,
gst_structure_get_string (priv->wfd_coupled_sink, "coupled_sink_address"));
-
if (wfd_res != GST_WFD_OK) {
GST_ERROR ("gst_wfd_message_set_coupled_sink is failed");
goto message_config_error;
if (wfd_msg->trigger_method) {
GstWFDTrigger trigger = GST_WFD_TRIGGER_UNKNOWN;
-
wfd_res = gst_wfd_message_get_trigger_type (wfd_msg, &trigger);
if (wfd_res != GST_WFD_OK)
goto message_config_error;
case GST_WFD_TRIGGER_TEARDOWN:
gst_wfd_base_src_loop_send_cmd (src, WFD_CMD_CLOSE, WFD_CMD_ALL);
break;
+ case GST_WFD_TRIGGER_TEARDOWN_COUPLING:
+ gst_structure_set (src->priv->wfd_coupled_sink,
+ "coupled_sink_address", G_TYPE_STRING, gst_rtsp_connection_get_ip (src->priv->conninfo.connection),
+ NULL);
+ gst_wfd_base_src_loop_send_cmd (src, WFD_CMD_CLOSE_COUPLING, WFD_CMD_ALL);
+ break;
case GST_WFD_TRIGGER_SETUP:
if (!gst_wfd_base_src_setup (src))
goto setup_failed;
case WFD_CMD_CLOSE:
GST_ELEMENT_PROGRESS (src, START, "close", ("Closing Stream"));
break;
+ case WFD_CMD_CLOSE_COUPLING:
+ GST_ELEMENT_PROGRESS (src, START, "coupling", ("Closing Stream for Coupling"));
+ break;
default:
break;
}
case WFD_CMD_CLOSE:
GST_ELEMENT_PROGRESS (src, COMPLETE, "close", ("Closed Stream"));
break;
+ case WFD_CMD_CLOSE_COUPLING:
+ GST_ELEMENT_PROGRESS (src, COMPLETE, "coupling", (gst_structure_get_string (src->priv->wfd_coupled_sink, "coupled_sink_address")));
+ break;
default:
break;
}
case WFD_CMD_CLOSE:
GST_ELEMENT_PROGRESS (src, CANCELED, "close", ("Close canceled"));
break;
+ case WFD_CMD_CLOSE_COUPLING:
+ GST_ELEMENT_PROGRESS (src, CANCELED, "coupling", ("Coupling canceled"));
+ break;
default:
break;
}
case WFD_CMD_CLOSE:
GST_ELEMENT_PROGRESS (src, ERROR, "close", ("Close failed"));
break;
+ case WFD_CMD_CLOSE_COUPLING:
+ GST_ELEMENT_PROGRESS (src, ERROR, "coupling", ("Coupling failed"));
+ break;
default:
break;
}
else
priv->pending_cmd = WFD_CMD_WAIT;
- GST_DEBUG_OBJECT (src, "got command %s", _cmd_to_string (cmd));
-
/* we got the message command, so ensure communication is possible again */
gst_wfd_base_src_connection_flush (src, FALSE);
res = gst_wfd_base_src_pause (src);
break;
case WFD_CMD_CLOSE:
+ case WFD_CMD_CLOSE_COUPLING:
res = gst_wfd_base_src_close (src, FALSE);
break;
case WFD_CMD_LOOP:
GST_OBJECT_UNLOCK (src);
if (cmd == WFD_CMD_PLAY || cmd == WFD_CMD_PAUSE
- || cmd == WFD_CMD_CLOSE || cmd == WFD_CMD_OPEN)
- gst_wfd_base_src_loop_end_cmd (src, cmd, res);
+ || cmd == WFD_CMD_CLOSE || cmd == WFD_CMD_OPEN
+ || cmd == WFD_CMD_CLOSE_COUPLING){
+ gst_wfd_base_src_loop_end_cmd (src, cmd, res);
+ }
}
static gboolean
return "PAUSE";
case WFD_CMD_CLOSE:
return "CLOSE";
+ case WFD_CMD_CLOSE_COUPLING:
+ return "Close for Coupling";
case WFD_CMD_WAIT:
return "WAIT";
case WFD_CMD_LOOP: