extern "C" {
#endif
+typedef enum {
+ SCREEN_CONNECTOR_CHANGED_EVENT_FILTER_NONE = TIZEN_REMOTE_SURFACE_CHANGED_BUFFER_EVENT_FILTER_NONE,
+ SCREEN_CONNECTOR_CHANGED_EVENT_FILTER_TBM = TIZEN_REMOTE_SURFACE_CHANGED_BUFFER_EVENT_FILTER_TBM,
+ SCREEN_CONNECTOR_CHANGED_EVENT_FILTER_IMAGE_FILE = TIZEN_REMOTE_SURFACE_CHANGED_BUFFER_EVENT_FILTER_IMAGE_FILE,
+ SCREEN_CONNECTOR_CHANGED_EVENT_FILTER_ALL =
+ TIZEN_REMOTE_SURFACE_CHANGED_BUFFER_EVENT_FILTER_TBM | TIZEN_REMOTE_SURFACE_CHANGED_BUFFER_EVENT_FILTER_IMAGE_FILE,
+} screen_connector_changed_event_filter_type;
+
typedef void (*screen_connector_watcher_added_cb)(const char *appid, const char *instance_id, const int pid, void *data);
typedef void (*screen_connector_watcher_removed_cb)(const char *appid, const char *instance_id, const int pid, void *data);
typedef void (*screen_connector_watcher_update_cb)(struct tizen_remote_surface *trs, uint32_t type, struct wl_buffer *tbm,
struct tizen_remote_surface *screen_connector_watcher_get_trs(screen_connector_watcher_h h);
screen_connector_watcher_h screen_connector_watcher_create_handle(char *id, int pid, screen_connector_watcher_ops *ops, void *data);
int screen_connector_watcher_redirect_surface(screen_connector_info_h info);
+int screen_connector_watcher_set_changed_event_filter(screen_connector_watcher_h h,
+ screen_connector_changed_event_filter_type type);
#ifdef __cplusplus
}
if (!strcmp(global->interface, "tizen_remote_surface_manager")) {
__rsm = wl_registry_bind(registry, global->id,
&tizen_remote_surface_manager_interface,
- global->version < 4 ? global->version : 4);
+ global->version < 5 ? global->version : 5);
}
}
void *data;
GHashTable *info_table;
aul_screen_viewer_h aul_handle;
+ screen_connector_changed_event_filter_type changed_filter;
};
struct _screen_connector_info_h {
struct tizen_remote_surface *surface;
bool renderable;
void *data;
+ screen_connector_changed_event_filter_type changed_filter;
};
static void __buffer_updated(void *data, struct tizen_remote_surface *trs, struct wl_buffer *buffer, uint32_t time)
LOGD("resource_id : %d, (%p)", info->surface_id, info->surface);
tizen_remote_surface_add_listener(info->surface, &__rs_listener, info);
tizen_remote_surface_redirect(info->surface);
+ tizen_remote_surface_set_changed_buffer_event_filter(info->surface, info->changed_filter);
+ LOGD("set filter [%d] for [%s]", info->changed_filter, info->instance_id);
return 0;
}
info->ops = watcher_h->ops;
info->data = watcher_h->data;
info->renderable = false;
+ info->changed_filter = watcher_h->changed_filter;
if (event_type == AUL_SCREEN_CONNECTOR_EVENT_TYPE_ADD) {
LOGE("watcher_h calloc fail");
return NULL;
}
+ watcher_h->changed_filter = SCREEN_CONNECTOR_CHANGED_EVENT_FILTER_ALL;
watcher_h->data = data;
watcher_h->ops = ops;
watcher_h->info_table = g_hash_table_new_full(g_str_hash,
{
return h->data;
}
+
+EXPORT_API int screen_connector_watcher_set_changed_event_filter(screen_connector_watcher_h h,
+ screen_connector_changed_event_filter_type type)
+{
+ GHashTableIter iter;
+ gpointer key, value;
+ screen_connector_info_h info;
+
+ if (h == NULL || h->info_table == NULL) {
+ LOGE("Invalid param");
+ return -1;
+ }
+
+ g_hash_table_iter_init(&iter, h->info_table);
+ while (g_hash_table_iter_next(&iter, &key, &value)) {
+ info = (screen_connector_info_h)value;
+ LOGD("set filter [%d] for [%s]", type, info->instance_id);
+ tizen_remote_surface_set_changed_buffer_event_filter(info->surface, type);
+ }
+
+ h->changed_filter = type;
+
+ return 0;
+}
* @addtogroup CAPI_SCREEN_CONNECTOR_WATCHER_EVAS_MODULE
* @{
*/
+typedef enum {
+ SCREEN_CONNECTOR_EVAS_CHANGED_EVENT_FILTER_NONE = TIZEN_REMOTE_SURFACE_CHANGED_BUFFER_EVENT_FILTER_NONE,
+ SCREEN_CONNECTOR_EVAS_CHANGED_EVENT_FILTER_TBM = TIZEN_REMOTE_SURFACE_CHANGED_BUFFER_EVENT_FILTER_TBM,
+ SCREEN_CONNECTOR_EVAS_CHANGED_EVENT_FILTER_IMAGE_FILE = TIZEN_REMOTE_SURFACE_CHANGED_BUFFER_EVENT_FILTER_IMAGE_FILE,
+ SCREEN_CONNECTOR_EVAS_CHANGED_EVENT_FILTER_ALL =
+ TIZEN_REMOTE_SURFACE_CHANGED_BUFFER_EVENT_FILTER_TBM | TIZEN_REMOTE_SURFACE_CHANGED_BUFFER_EVENT_FILTER_IMAGE_FILE,
+} screen_connector_evas_changed_event_filter_type;
typedef void (*screen_connector_watcher_evas_added_cb)(const char *appid, const char *instance_id, const int pid, void *data);
typedef void (*screen_connector_watcher_evas_removed_cb)(const char *appid, const char *instance_id, const int pid, void *data);
screen_connector_watcher_evas_h screen_connector_watcher_evas_add(screen_connector_watcher_evas_ops *ops, void *data);
int screen_connector_watcher_evas_remove(screen_connector_watcher_evas_h h);
int screen_connector_watcher_evas_update(screen_connector_watcher_evas_h watcher_evas_h, const char *instance_id);
+int screen_connector_watcher_evas_set_changed_event_filter(screen_connector_watcher_evas_h watcher_evas_h,
+ screen_connector_evas_changed_event_filter_type type);
/**
* @}
return screen_connector_watcher_update(watcher_evas_h->watcher_h, instance_id);
}
+EXPORT_API int screen_connector_watcher_evas_set_changed_event_filter(screen_connector_watcher_evas_h watcher_evas_h,
+ screen_connector_evas_changed_event_filter_type type)
+{
+ return screen_connector_watcher_set_changed_event_filter(watcher_evas_h->watcher_h, type);
+}