MDG_ERROR_NOT_PROPER_DEVICE = TIZEN_ERROR_MDG | 0x09, /**< Not proper device */
} mdg_error_e;
+typedef enum {
+ MDG_EVENT_INVITED = 0,
+ MDG_EVENT_EJECTED,
+} mdg_event_type_e;
+
/**
* @addtogroup CAPI_NETWORK_MDG_DEVICE_MODULE
* @{
mdg_device_h device, char *PIN,
mdg_group_invite_device_finish_cb callback, void *user_data);
+typedef void (*mdg_invited_event_cb)(mdg_group_h group, void *user_data);
+int mdg_set_invited_event_cb(mdg_h handle, mdg_invited_event_cb event_cb, void *user_data);
+int mdg_unset_invited_event_cb(mdg_h handle);
+
+typedef void (*mdg_ejected_event_cb)(mdg_group_h group, void *user_data);
+int mdg_set_ejected_event_cb(mdg_h handle, mdg_ejected_event_cb event_cb, void *user_data);
+int mdg_unset_ejected_event_cb(mdg_h handle);
+
/**
* @brief Requests to expel the device from the group which local device owns.
* @details This function is used to kick away a remote devices in my local group.
return ret;
}
+EXPORT_API int mdg_set_invited_event_cb(mdg_h handle, mdg_invited_event_cb invited_event_cb, void *user_data)
+{
+ int ret = MDG_ERROR_NONE;
+
+ CHECK_FEATURE_SUPPORTED(MDG_FEATURE);
+
+ mdg_manager_s *_handle = handle;
+ mdg_check_null_ret_error("handle", handle, MDG_ERROR_INVALID_PARAMETER);
+
+ _handle->invited_event_cb.invited_event_cb = invited_event_cb;
+ _handle->invited_event_cb.user_data = user_data;
+
+ return ret;
+}
+
+EXPORT_API int mdg_unset_invited_event_cb(mdg_h handle)
+{
+ int ret = MDG_ERROR_NONE;
+
+ CHECK_FEATURE_SUPPORTED(MDG_FEATURE);
+
+ mdg_manager_s *_handle = handle;
+ mdg_check_null_ret_error("handle", handle, MDG_ERROR_INVALID_PARAMETER);
+
+ _handle->invited_event_cb.invited_event_cb = NULL;
+ _handle->invited_event_cb.user_data = NULL;
+
+ return ret;
+}
+
+EXPORT_API int mdg_set_ejected_event_cb(mdg_h handle, mdg_ejected_event_cb ejected_event_cb, void *user_data)
+{
+ int ret = MDG_ERROR_NONE;
+
+ CHECK_FEATURE_SUPPORTED(MDG_FEATURE);
+
+ mdg_manager_s *_handle = handle;
+ mdg_check_null_ret_error("handle", handle, MDG_ERROR_INVALID_PARAMETER);
+
+ _handle->ejected_event_cb.ejected_event_cb = ejected_event_cb;
+ _handle->ejected_event_cb.user_data = user_data;
+
+ return ret;
+}
+
+EXPORT_API int mdg_unset_ejected_event_cb(mdg_h handle)
+{
+ int ret = MDG_ERROR_NONE;
+
+ CHECK_FEATURE_SUPPORTED(MDG_FEATURE);
+
+ mdg_manager_s *_handle = handle;
+ mdg_check_null_ret_error("handle", handle, MDG_ERROR_INVALID_PARAMETER);
+
+ _handle->ejected_event_cb.ejected_event_cb = NULL;
+ _handle->ejected_event_cb.user_data = NULL;
+
+ return ret;
+}
+
} else {
_ERR("The callback not exists");
}
+ break;
+ }
+ case MDG_EVENT_INVITED:
+ {
+ mdg_group_s *group = NULL;
+
+ group = mdg_get_group_from_variant(va);
+
+ if (handle->invited_event_cb.invited_event_cb) {
+ handle->invited_event_cb.invited_event_cb(group, handle->invited_event_cb.user_data);
+ } else {
+ _ERR("The callback not exists");
+ }
+ break;
+ }
+ case MDG_EVENT_EJECTED:
+ {
+ mdg_group_s *group = NULL;
+
+ group = mdg_get_group_from_variant(va);
+
+ if (handle->ejected_event_cb.ejected_event_cb) {
+ handle->ejected_event_cb.ejected_event_cb(group, handle->ejected_event_cb.user_data);
+ } else {
+ _ERR("The callback not exists");
+ }
+ break;
}
default:
_ERR("Unknown Event");
void *user_data; /**< User data pointer */
} request_channel_list_finish_cb_t;
+typedef struct _invited_event_cb_t {
+ mdg_invited_event_cb invited_event_cb; /**< User callback to be called */
+ void *user_data; /**< User data pointer */
+} invited_event_cb_t;
+
+typedef struct _ejected_event_cb_t {
+ mdg_ejected_event_cb ejected_event_cb; /**< User callback to be called */
+ void *user_data; /**< User data pointer */
+} ejected_event_cb_t;
+
/**
* @brief The mdg-manager context
* @since_tizen 5.0
receive_file_cb_t receive_file_cb; /**< When it called after sending the device done or timeout */
request_result_cb_t request_result_cb; /**< When it called after sending private commands or timeout */
request_channel_list_finish_cb_t request_channel_list_finish_cb; /**< When it called after sending private commands or timeout */
+ invited_event_cb_t invited_event_cb;
+ ejected_event_cb_t ejected_event_cb;
} mdg_manager_s;
#define CHECK_HANDLE_IS_VALID(handle) { \
} channel_cb_s;
typedef enum {
- MDG_EVENT_GROUP_FOUND = 0,
+ MDG_EVENT_GROUP_FOUND = 100,
MDG_EVENT_GROUP_FIND_FINISH,
MDG_EVENT_DEVICE_FOUND,
MDG_EVENT_DEVICE_FIND_FINISH,
MDG_EVENT_SEND_DATA_FINISH,
MDG_EVENT_REQ_CHANNEL_LIST_FINISH,
MDG_EVENT_RECEIVE_DATA,
- MDG_EVENT_RECEIVE_FILE = 10,
+ MDG_EVENT_RECEIVE_FILE = 110,
MDG_EVENT_SEND_FILE_PROGRESS,
MDG_EVENT_SEND_FILE_FINISH,
- MDG_EVENT_INVITED,
- MDG_EVENT_EJECTED,
-} mdg_event_type_e;
+} mdg_private_event_type_e;
#endif /* __TIZEN_NETWORK_COMMON_MDG_PRIVATE_H__ */
return RET_SUCCESS;
}
+void __invited_event_cb(mdg_group_h group, void *user_data)
+{
+ char *device_id;
+ char *name;
+
+ mdg_group_info_get_device_id(group, &device_id);
+ mdg_group_info_get_name(group, &name);
+
+ msgb("device is invited by [%s], Group Name [%s]", device_id, name);
+}
+
+void __ejected_event_cb(mdg_group_h group, void *user_data)
+{
+ char *device_id;
+ char *name;
+
+ mdg_group_info_get_device_id(group, &device_id);
+ mdg_group_info_get_name(group, &name);
+
+ msgb("device is ejected by [%s], Group Name [%s]", device_id, name);
+}
+
void __receive_file_cb(int result, char *device_id, const char *file_path, void *user_data)
{
msgb("The %s is stored by %s", file_path, device_id);
device = NULL;
}
-
+ mdg_set_invited_event_cb(handle, __invited_event_cb, NULL);
+ mdg_set_ejected_event_cb(handle, __ejected_event_cb, NULL);
mdg_set_receive_file_cb(handle, __receive_file_cb, NULL);
return RET_SUCCESS;