summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHyunho Kang <hhstark.kang@samsung.com>2016-11-14 14:02:54 +0900
committerHyunho Kang <hhstark.kang@samsung.com>2016-11-14 14:05:05 +0900
commit1ee08106585dd6c0ae335f8828f872ee128418ad (patch)
tree564ada9cf9ebd1acf3891459cab5c21406793410
parent527e629ac677440e8eb39fee451d92fe59935470 (diff)
downloadaul-1-1ee08106585dd6c0ae335f8828f872ee128418ad.tar.gz
aul-1-1ee08106585dd6c0ae335f8828f872ee128418ad.tar.bz2
aul-1-1ee08106585dd6c0ae335f8828f872ee128418ad.zip
Change-Id: I39c86de77ded873c879f07887ce1f5f39145bdab Signed-off-by: Hyunho Kang <hhstark.kang@samsung.com>
-rw-r--r--include/aul_rsm_viewer.h1
-rw-r--r--src/aul_rsm.c25
2 files changed, 26 insertions, 0 deletions
diff --git a/include/aul_rsm_viewer.h b/include/aul_rsm_viewer.h
index bbaa549a..6aa6c8a4 100644
--- a/include/aul_rsm_viewer.h
+++ b/include/aul_rsm_viewer.h
@@ -36,6 +36,7 @@ struct aul_rsm_handler_s {
typedef struct aul_rsm_handler_s aul_rsm_handler;
int aul_rsm_viewer_set_surface_handler(const char *id, aul_rsm_handler *cbs, void *data);
+int aul_rsm_viewer_unset_surface_handler(const char *id);
int aul_rsm_viewer_set_surface_handler_by_rid(int resource_id, aul_rsm_handler *cbs, void *data);
int aul_rsm_viewer_get_surface_rid(const char *id, int *resource_id);
int aul_rsm_viewer_get_surface_pid(const char *id, int *pid);
diff --git a/src/aul_rsm.c b/src/aul_rsm.c
index c71262d3..e876e905 100644
--- a/src/aul_rsm.c
+++ b/src/aul_rsm.c
@@ -323,6 +323,31 @@ API int aul_rsm_viewer_fini()
return 0;
}
+API int aul_rsm_viewer_unset_surface_handler(const char *id)
+{
+ struct __surface_s *surface;
+
+ if (!id) {
+ _E("invalid parameter");
+ return -1;
+ }
+
+ if (!__viewer_tbl) {
+ _E("surface table empty");
+ return -1;
+ }
+
+ surface = g_hash_table_lookup(__viewer_tbl, id);
+ if (!surface) {
+ _E("surface not exists");
+ return -1;
+ }
+ g_hash_table_remove(__viewer_tbl, id);
+ free(surface);
+
+ return 0;
+}
+
API int aul_rsm_viewer_set_surface_handler(const char *id, aul_rsm_handler *cbs, void *data)
{
struct __surface_s *surface;