diff options
author | Wu zheng <wu.zheng@intel.com> | 2013-10-23 11:14:09 +0800 |
---|---|---|
committer | Wu Zheng <wu.zheng@intel.com> | 2013-12-12 04:51:34 -0500 |
commit | 99f2d5bf2d5b2deb6cc7ff516089adc8f4ecfd5a (patch) | |
tree | 14ecd479fe81f3d5111cdef2aa339da26ba89724 | |
parent | 82132ac9bbc3f7835f3581077550d117e1e7d2d7 (diff) | |
download | bluez-99f2d5bf2d5b2deb6cc7ff516089adc8f4ecfd5a.tar.gz bluez-99f2d5bf2d5b2deb6cc7ff516089adc8f4ecfd5a.tar.bz2 bluez-99f2d5bf2d5b2deb6cc7ff516089adc8f4ecfd5a.zip |
Using TIZEN driver to get/put phonebook in pbap
Change-Id: I68fa59d0f497a7f0897b34ab390a9a9ad9aea605
-rw-r--r-- | obexd/plugins/pbap.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/obexd/plugins/pbap.c b/obexd/plugins/pbap.c index 47401889..6fd86abf 100644 --- a/obexd/plugins/pbap.c +++ b/obexd/plugins/pbap.c @@ -85,6 +85,9 @@ struct pbap_session { uint32_t find_handle; struct cache cache; struct pbap_object *obj; +#ifdef __TIZEN_PATCH__ + void *backend_data; +#endif }; struct pbap_object { @@ -443,6 +446,20 @@ static void cache_entry_done(void *user_data) obex_object_set_io_flags(pbap->obj, G_IO_ERR, ret); } +#ifdef __TIZEN_PATCH__ +static void cache_clear_notify(void *user_data) +{ + struct pbap_session *pbap = user_data; + + if (pbap == NULL) + return; + + pbap->cache.valid = FALSE; + pbap->cache.index = 0; + cache_clear(&pbap->cache); +} +#endif + static struct apparam_field *parse_aparam(const uint8_t *buffer, uint32_t hlen) { GObexApparam *apparam; @@ -485,10 +502,23 @@ static void *pbap_connect(struct obex_session *os, int *err) pbap->folder = g_strdup("/"); pbap->find_handle = PHONEBOOK_INVALID_HANDLE; +#ifdef __TIZEN_PATCH__ + *err = phonebook_connect(&pbap->backend_data); + if (*err < 0) + goto failed; +#endif + if (err) *err = 0; return pbap; + +#ifdef __TIZEN_PATCH__ +failed: + g_free(pbap); + + return NULL; +#endif } static int pbap_get(struct obex_session *os, void *user_data) @@ -599,6 +629,10 @@ static void pbap_disconnect(struct obex_session *os, void *user_data) manager_unregister_session(os); +#ifdef __TIZEN_PATCH__ + phonebook_disconnect(pbap->backend_data); +#endif + if (pbap->obj) pbap->obj->session = NULL; @@ -744,6 +778,10 @@ static void *vobject_list_open(const char *name, int oflag, mode_t mode, cache_ready_notify, pbap, &ret); if (ret == 0) obj = vobject_create(pbap, request); +#ifdef __TIZEN_PATCH__ + phonebook_set_cache_notification(pbap->backend_data, + cache_clear_notify, pbap); +#endif } if (ret < 0) goto fail; @@ -788,6 +826,10 @@ static void *vobject_vcard_open(const char *name, int oflag, mode_t mode, pbap->find_handle = handle; request = phonebook_create_cache(pbap->folder, cache_entry_notify, cache_entry_done, pbap, &ret); +#ifdef __TIZEN_PATCH__ + phonebook_set_cache_notification(pbap->backend_data, + cache_clear_notify, pbap); +#endif goto done; } |