summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSung-jae Park <nicesj.park@samsung.com>2013-01-10 17:35:10 +0900
committerSung-jae Park <nicesj.park@samsung.com>2013-01-10 17:35:10 +0900
commitf3a7b1606b820c732230c559017eb952c1c9761f (patch)
tree093fa4b5e2eb7206714c418e891bcb3fd227dcbb
parent48479b638066a99ef92c7544e415ecb98c911cca (diff)
downloadlivebox-f3a7b1606b820c732230c559017eb952c1c9761f.tar.gz
livebox-f3a7b1606b820c732230c559017eb952c1c9761f.tar.bz2
livebox-f3a7b1606b820c732230c559017eb952c1c9761f.zip
Add new API for updating boxes.
Change-Id: I59fedbfcbfe423a5fe266a7d67cf7265f065b353
-rw-r--r--include/livebox.h7
-rw-r--r--packaging/liblivebox.spec2
-rw-r--r--src/livebox.c34
3 files changed, 37 insertions, 6 deletions
diff --git a/include/livebox.h b/include/livebox.h
index 667a6e1..c17c222 100644
--- a/include/livebox.h
+++ b/include/livebox.h
@@ -204,6 +204,13 @@ extern int livebox_unref_buffer(void *buffer);
*/
extern int livebox_sync_buffer(struct livebox_buffer *handle);
+/*!
+ * \brief
+ * \param[in] filename
+ * \return int
+ */
+extern int livebox_request_update(const char *filename);
+
#ifdef __cplusplus
}
#endif
diff --git a/packaging/liblivebox.spec b/packaging/liblivebox.spec
index 3556271..ec0db1c 100644
--- a/packaging/liblivebox.spec
+++ b/packaging/liblivebox.spec
@@ -1,6 +1,6 @@
Name: liblivebox
Summary: Library for the development of a livebox
-Version: 0.1.8
+Version: 0.1.9
Release: 1
Group: main/app
License: Flora License
diff --git a/src/livebox.c b/src/livebox.c
index d36e777..9fcf597 100644
--- a/src/livebox.c
+++ b/src/livebox.c
@@ -32,10 +32,13 @@
#define EAPI __attribute__((visibility("default")))
+#define FILE_SCHEMA "file://"
+
/*!
* \brief This function is defined by the data-provider-slave
*/
extern const char *livebox_find_pkgname(const char *filename);
+extern int livebox_request_update_by_id(const char *uri);
struct block {
unsigned int idx;
@@ -457,30 +460,51 @@ EAPI struct livebox_buffer *livebox_acquire_buffer(const char *filename, int is_
return NULL;
}
- uri_len = strlen(filename) + strlen("file://") + 1;
+ uri_len = strlen(filename) + strlen(FILE_SCHEMA) + 1;
uri = malloc(uri_len);
if (!uri) {
ErrPrint("Heap: %s\n", strerror(errno));
return NULL;
}
- snprintf(uri, uri_len, "file://%s", filename);
- DbgPrint("Before call the livebox_find_pkgname\n");
+ snprintf(uri, uri_len, FILE_SCHEMA "%s", filename);
pkgname = livebox_find_pkgname(uri);
- DbgPrint("After call the livebox_find_pkgname\n");
if (!pkgname) {
ErrPrint("Invalid Request\n");
free(uri);
return NULL;
}
- DbgPrint("URI: %s\n", uri);
handle = provider_buffer_acquire((!!is_pd) ? TYPE_PD : TYPE_LB, pkgname, uri, width, height, sizeof(int), handler, data);
DbgPrint("Acquire buffer for PD(%s), %s, %p\n", pkgname, uri, handle);
free(uri);
return handle;
}
+EAPI int livebox_request_update(const char *filename)
+{
+ int uri_len;
+ char *uri;
+ int ret;
+
+ if (!filename) {
+ ErrPrint("Invalid argument\n");
+ return -EINVAL;
+ }
+
+ uri_len = strlen(filename) + strlen(FILE_SCHEMA) + 1;
+ uri = malloc(uri_len);
+ if (!uri) {
+ ErrPrint("Heap: %s\n", strerror(errno));
+ return -ENOMEM;
+ }
+
+ snprintf(uri, uri_len, FILE_SCHEMA "%s", filename);
+ ret = livebox_request_update_by_id(uri);
+ free(uri);
+ return ret;
+}
+
EAPI unsigned long livebox_pixmap_id(struct livebox_buffer *handle)
{
return provider_buffer_pixmap_id(handle);