1. 'coupled-sink-ip' removed. it will be handled on sink.
2. API 'scmirroring_sink_set_coupled_ip' is changed to 'scmirroring_sink_set_coupled_sink'.
Change-Id: I0ff0439fce39795df765cabbc64812d1c7252a82
Signed-off-by: Hyunsoo Park <hance.park@samsung.com>
typedef void(*scmirroring_state_cb)(scmirroring_error_e error, scmirroring_state_e state, void *user_data);
/**
- * @brief Called when user wants to set 'coupled_sink_ip'.
+ * @brief Called when user wants to set 'stats' and 'address' of coupled sink.
*
* @details This callback is called for state and error of screen mirroring.
*
- * @param[in] scmirroring_sink screen mirroring sink handle
- * @param[in] coupled_ip ip address which is coupled with primary sink. e.g secondary sink
+ * @param[in] scmirroring_sink Screen mirroring sink handle
+ * @param[in] status Status which indicates whether primary sink is coupled or not.
+ * @param[in] address Mac address of coupled sink.
*
- * @pre scmirroring_src_create()
+ * @pre scmirroring_sink_create()
*
- * @see scmirroring_src_create()
+ * @see scmirroring_sink_create()
*/
-int scmirroring_sink_set_coupled_ip(scmirroring_sink_h scmirroring_sink, char* coupled_ip);
+int scmirroring_sink_set_coupled_sink(scmirroring_sink_h scmirroring_sink, gint status, gchar* address);
#ifdef __cplusplus
}
scmirroring_direct_streaming_e direct_streaming;
char *filesrc;
scmirroring_av_transport_e av_transport;
- char *coupled_sink_ip;
} scmirroring_src_s;
typedef struct {
bool use_hdcp;
scmirroring_sink_state_cb_s *scmirroring_sink_state_cb;
unsigned int magic_num;
- char *coupled_sink_ip;
} scmirroring_sink_s;
typedef struct {
scmirroring_direct_streaming_e direct_streaming;
char *filesrc;
scmirroring_av_transport_e av_transport;
- char *coupled_sink_ip;
} scmirroring_primary_sink_s;
bool use_hdcp;
scmirroring_sink_state_cb_s *scmirroring_sink_state_cb;
unsigned int magic_num;
- char *coupled_sink_ip;
} scmirroring_secondary_sink_s;
#define WIFIDIRECT_DISPLAY_FEATURE "http://tizen.org/feature/network.wifi.direct.display"
return __scmirroring_primary_sink_error_convert(__func__, result);
}
-int scmirroring_primary_sink_set_coupled_ip(scmirroring_primary_sink_h scmirroring_primary_sink, char* coupled_ip)
+int scmirroring_primary_sink_set_coupled_sink(scmirroring_primary_sink_h scmirroring_primary_sink, gint status, gchar* address)
{
int ret = SCMIRRORING_ERROR_NONE;
scmirroring_debug_fenter();
scmirroring_retvm_if(handle == NULL, SCMIRRORING_ERROR_INVALID_PARAMETER, "scmirroring_primary_sink is NULL");
scmirroring_retvm_if(handle->magic_num != SCMIRRORING_MAGIC_NUMBER, SCMIRRORING_ERROR_INVALID_PARAMETER, "scmirroring_primary_sink is invalid handle");
- if (coupled_ip == NULL) {
- scmirroring_error("Invalid coupled ip parameter [%s]", coupled_ip);
- return SCMIRRORING_ERROR_INVALID_PARAMETER;
- }
- scmirroring_debug("coupled_ip (%s)", coupled_ip);
+ scmirroring_debug("address [%s], status[%d]", address, status);
- ret = mm_wfd_sink_set_coupled_ip(handle->mm_handle, coupled_ip);
+ ret = mm_wfd_sink_set_coupled_sink(handle->mm_handle, status, address);
if (ret != MM_ERROR_NONE) {
scmirroring_error("Fail to Set Coupled IP");
return __scmirroring_primary_sink_error_convert(__func__, ret);
} else {
scmirroring_debug("Current state is already %d", src_state);
}
-
}else{
- scmirroring->coupled_sink_ip = response[1];
+ /* for coupled sink */
error_code = SCMIRRORING_ERROR_NONE;
src_state = SCMIRRORING_STATE_TEARDOWN_FOR_SINK;
- scmirroring_debug("__scmirroring_primary_src_interpret sec_ip : %s", scmirroring->coupled_sink_ip);
- scmirroring_debug("__scmirroring_primary_src_interpret is here %d : %d",error_code, src_state);
__scmirroring_primary_src_set_callback_info(scmirroring, error_code, src_state);
}
_scmirroring->server_name = g_strdup("scmirroring");
_scmirroring->multisink = SCMIRRORING_MULTISINK_DISABLE;
_scmirroring->av_transport = SCMIRRORING_AV_TRANSPORT_UDP;
- _scmirroring->coupled_sink_ip = NULL;
*scmirroring = (scmirroring_primary_sink_h)_scmirroring;
return __scmirroring_secondary_sink_error_convert(__func__, result);
}
-int scmirroring_secondary_sink_set_coupled_ip(scmirroring_secondary_sink_h scmirroring_secondary_sink, char* coupled_ip)
+int scmirroring_secondary_sink_set_coupled_sink(scmirroring_secondary_sink_h scmirroring_secondary_sink, gint status, gchar* address)
{
int ret = SCMIRRORING_ERROR_NONE;
scmirroring_debug_fenter();
scmirroring_retvm_if(handle == NULL, SCMIRRORING_ERROR_INVALID_PARAMETER, "scmirroring_secondary_sink is NULL");
scmirroring_retvm_if(handle->magic_num != SCMIRRORING_MAGIC_NUMBER, SCMIRRORING_ERROR_INVALID_PARAMETER, "scmirroring_secondary_sink is invalid handle");
- if (coupled_ip == NULL) {
- scmirroring_error("Invalid coupled ip parameter [%s]", coupled_ip);
- return SCMIRRORING_ERROR_INVALID_PARAMETER;
- }
- scmirroring_debug("coupled_ip (%s)", coupled_ip);
+ scmirroring_debug("status [%d], address[%s]", status, address);
+
+ ret = mm_wfd_sink_set_coupled_sink(handle->mm_handle, status, address);
- ret = mm_wfd_sink_set_coupled_ip(handle->mm_handle, coupled_ip);
if (ret != MM_ERROR_NONE) {
- scmirroring_error("Fail to Set Coupled IP");
+ scmirroring_error("Fail to Set Coupled sink");
return __scmirroring_secondary_sink_error_convert(__func__, ret);
}
ret = __scmirroring_secondary_sink_error_convert(__func__, ret);
return __scmirroring_sink_error_convert(__func__, result);
}
-int scmirroring_sink_set_coupled_ip(scmirroring_sink_h scmirroring_sink, char* coupled_ip)
+int scmirroring_sink_set_coupled_sink(scmirroring_sink_h scmirroring_sink, gint status, gchar* address)
{
int ret = SCMIRRORING_ERROR_NONE;
scmirroring_debug_fenter();
scmirroring_retvm_if(handle == NULL, SCMIRRORING_ERROR_INVALID_PARAMETER, "scmirroring_sink is NULL");
scmirroring_retvm_if(handle->magic_num != SCMIRRORING_MAGIC_NUMBER, SCMIRRORING_ERROR_INVALID_PARAMETER, "scmirroring_sink is invalid handle");
- if (coupled_ip == NULL) {
- scmirroring_error("Invalid coupled ip parameter [%s]", coupled_ip);
- return SCMIRRORING_ERROR_INVALID_PARAMETER;
- }
- scmirroring_debug("coupled_ip (%s)", coupled_ip);
+ scmirroring_debug("status [%d], address[%s]", status, address);
+
+ ret = mm_wfd_sink_set_coupled_sink(handle->mm_handle, status, address);
- ret = mm_wfd_sink_set_coupled_ip(handle->mm_handle, coupled_ip);
if (ret != MM_ERROR_NONE) {
scmirroring_error("Fail to Set Coupled IP");
return __scmirroring_sink_error_convert(__func__, ret);
}
}else{
- scmirroring->coupled_sink_ip = response[1];
+ /* for coupled sink */
error_code = SCMIRRORING_ERROR_NONE;
src_state = SCMIRRORING_STATE_TEARDOWN_FOR_SINK;
- scmirroring_debug("__scmirroring_src_interpret sec_ip : %s", scmirroring->coupled_sink_ip);
- scmirroring_debug("__scmirroring_src_interpret is here %d : %d",error_code, src_state);
+ scmirroring_debug("__scmirroring_src_interpret is here %d : %d", error_code, src_state);
__scmirroring_src_set_callback_info(scmirroring, error_code, src_state);
}
_scmirroring->server_name = g_strdup("scmirroring");
_scmirroring->multisink = SCMIRRORING_MULTISINK_DISABLE;
_scmirroring->av_transport = SCMIRRORING_AV_TRANSPORT_UDP;
- _scmirroring->coupled_sink_ip = NULL;
*scmirroring = (scmirroring_src_h)_scmirroring;
*/
#include <gio/gio.h>
#include <scmirroring_private.h>
+#include <scmirroring_internal.h>
#include <stdlib.h>
#include <string.h>
gint g_sinktype = SCMIRRORING_DISPLAY_TYPE_OVERLAY;
gint g_menu = MAIN_MENU;
-gchar* sec_ip = NULL;
GMainLoop *g_loop;
#ifdef TEST_WITH_WIFI_DIRECT
//if state 8, copy it to sink's sec_ip and make coupled_state = coupled.
if(state == 8){
- scmirroring_primary_sink_s* scm = (scmirroring_primary_sink_s*) scmirroring_primary_sink;
- g_print(" >> 8 and %s", scm->coupled_sink_ip);
- sec_ip = g_strdup(scm->coupled_sink_ip);
- g_print("sec_ip is : %s", sec_ip);
g_print("Stop\n");
int ret=0;
ret = scmirroring_primary_src_stop(scmirroring_primary_sink);
g_print("scmirroring_primary_sink_create fail [%d]", ret);
return SCMIRRORING_ERROR_INVALID_OPERATION;
}
-
- if (sec_ip != NULL){
- scmirroring_primary_sink_s *wfd_sink = (scmirroring_primary_sink_s *) scmirroring_primary_sink;
- wfd_sink->coupled_sink_ip = sec_ip;
- g_print("sec_ip in sink is : %s", wfd_sink->coupled_sink_ip);
- scmirroring_sink_set_coupled_ip(wfd_sink,sec_ip);
- }
- else {
- scmirroring_primary_sink_s *wfd_sink = (scmirroring_primary_sink_s *) scmirroring_primary_sink;
- g_print("sec_ip is null and i set sec_ip to \"192.168.0.10\" for testing \n");
- wfd_sink->coupled_sink_ip = strdup("192.168.0.10");
- g_print("0set sec_ip is [%s] \n",wfd_sink->coupled_sink_ip);
- }
- scmirroring_primary_sink_s *wfd_sink = (scmirroring_primary_sink_s *) scmirroring_primary_sink;
- g_print("1set sec_ip is [%s] \n",wfd_sink->coupled_sink_ip);
+ char address[50]={0};
+ strncpy(address,"00:00:00:00:00",50);
+ scmirroring_sink_set_coupled_sink(scmirroring_primary_sink,0,address);
if (g_sinktype != -1) {
if (g_sinktype == SCMIRRORING_DISPLAY_TYPE_OVERLAY) {
//char ip[50]={0};
//strncpy(ip,"192.168.0.23",50);
//g_print("IP is %s\n", ip);
- //ret=scmirroring_sink_set_coupled_ip(g_scmirroring,ip);
+ //ret=scmirroring_sink_set_coupled_sink(g_scmirroring,0,"00:00:00:00:00");
if (g_sinktype != -1) {
if (g_sinktype == SCMIRRORING_DISPLAY_TYPE_OVERLAY) {
evas_object_show(g_evas);
return SCMIRRORING_ERROR_INVALID_OPERATION;
}
- char ip[50]={0};
- strncpy(ip,"192.168.0.23",50);
- g_print("IP is %s\n", ip);
- ret=scmirroring_sink_set_coupled_ip(g_scmirroring,ip);
+ char address[50]={0};
+ strncpy(address,"00:00:00:00:00",50);
+ ret=scmirroring_sink_set_coupled_sink(g_scmirroring,0,address);
if (g_sinktype != -1) {
if (g_sinktype == SCMIRRORING_DISPLAY_TYPE_OVERLAY) {
evas_object_show(g_evas);