diff options
Diffstat (limited to 'dynamicbox_service/include/dynamicbox_service.h')
-rw-r--r-- | dynamicbox_service/include/dynamicbox_service.h | 1119 |
1 files changed, 1119 insertions, 0 deletions
diff --git a/dynamicbox_service/include/dynamicbox_service.h b/dynamicbox_service/include/dynamicbox_service.h new file mode 100644 index 0000000..6bb65f3 --- /dev/null +++ b/dynamicbox_service/include/dynamicbox_service.h @@ -0,0 +1,1119 @@ +/* + * Copyright 2013 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.1 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://floralicense.org/license/ + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __DYNAMICBOX_SERVICE_H +#define __DYNAMICBOX_SERVICE_H + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @file dynamic-service.h + * @brief This file declares API of libdynamic-service library + * @since_tizen 2.3 + */ + +/** + * @addtogroup CAPI_DYNAMICBOX_SERVICE_MODULE + * @{ + */ + +/** + * @brief Index of buffer + * @since_tizen 2.3 + */ +#define DBOX_PRIMARY_BUFFER -1 +#define DBOX_UNKNOWN_BUFFER -2 + +/** + * @brief Definition for maximum number of supported dynamicbox size type. + * @since_tizen 2.3 + */ +#define DBOX_NR_OF_SIZE_LIST 13 + +#define DBOX_CH_IDX(a, idx) (((char *)(a))[(idx)]) +#define DBOX_IS_INHOUSE(abi) ((DBOX_CH_IDX(abi, 0) == 'c' || DBOX_CH_IDX(abi, 0) == 'C') && (DBOX_CH_IDX(abi, 1) == '\0' || ((DBOX_CH_IDX(abi, 1) == 'p' || DBOX_CH_IDX(abi, 1) == 'P') && (DBOX_CH_IDX(abi, 2) == 'p' || DBOX_CH_IDX(abi, 2) == 'P') && DBOX_CH_IDX(abi, 3) == '\0'))) + +/** + * @brief Enumeration for list of supporting dynamicbox size types. + * @since_tizen 2.3 + */ +typedef enum dynamicbox_size_type { + DBOX_SIZE_TYPE_1x1 = 0x0001, /**< 175x175 based on 720x1280 resolution */ + DBOX_SIZE_TYPE_2x1 = 0x0002, /**< 354x175 based on 720x1280 resolution */ + DBOX_SIZE_TYPE_2x2 = 0x0004, /**< 354x354 based on 720x1280 resolution */ + DBOX_SIZE_TYPE_4x1 = 0x0008, /**< 712x175 based on 720x1280 resolution */ + DBOX_SIZE_TYPE_4x2 = 0x0010, /**< 712x354 based on 720x1280 resolution */ + DBOX_SIZE_TYPE_4x3 = 0x0020, /**< 712x533 based on 720x1280 resolution */ + DBOX_SIZE_TYPE_4x4 = 0x0040, /**< 712x712 based on 720x1280 resolution */ + DBOX_SIZE_TYPE_4x5 = 0x0080, /**< 712x891 based on 720x1280 resolution */ + DBOX_SIZE_TYPE_4x6 = 0x0100, /**< 712x1070 based on 720x1280 resolution */ + DBOX_SIZE_TYPE_EASY_1x1 = 0x1000, /**< 224x215 based on 720x1280 resolution */ + DBOX_SIZE_TYPE_EASY_3x1 = 0x2000, /**< 680x215 based on 720x1280 resolution */ + DBOX_SIZE_TYPE_EASY_3x3 = 0x4000, /**< 680x653 based on 720x1280 resolution */ + DBOX_SIZE_TYPE_0x0 = 0x0800, /**< 720x1280 based on 720x1280 resolution */ + DBOX_SIZE_TYPE_UNKNOWN = 0xFFFF /**< Error */ +} dynamicbox_size_type_e; + +/** + * @internal + * @brief Enumeration for result of accessibility event processing. + * @details Reference the libprovider & libdynamicbox-viewer. + * @since_tizen 2.3 + */ +typedef enum dynamicbox_access_status { + DBOX_ACCESS_STATUS_ERROR = 0x80000000, /**< Mask value */ + DBOX_ACCESS_STATUS_DONE = 0x00000000, /**< Successfully finished */ + DBOX_ACCESS_STATUS_FIRST, /**< Reach to the first item */ + DBOX_ACCESS_STATUS_LAST, /**< Reach to the last item */ + DBOX_ACCESS_STATUS_READ /**< TTS is done */ +} dynamicbox_access_status_e; + +/** + * @internal + * @brief Key event handling result status. + * @since_tizen 2.3 + */ +typedef enum dynamicbox_key_status { + DBOX_KEY_STATUS_ERROR = 0x80000000, /**< Key operation is failed */ + DBOX_KEY_STATUS_DONE = 0x00000000, /**< Key operation is successfully done */ + DBOX_KEY_STATUS_FIRST, /**< Focusable object item reaches to the first in it */ + DBOX_KEY_STATUS_LAST, /**< Focusable object item reaches to the last in it */ +} dynamicbox_key_status_e; + +/** + * @brief Delete type for dynamicbox delete operation. + * @since_tizen 2.3 + */ +typedef enum dynamicbox_delete_type { + DBOX_DELETE_PERMANENTLY = 0x01, /**< The dynamicbox is removed from the homescreen temporary */ + DBOX_DELETE_TEMPORARY = 0x02, /**< The dynamicbox is removed from the homescreen by user permanently */ + DBOX_DELETE_INVALID = 0xff, /**< Unknown event type */ +} dynamicbox_delete_type_e; + +/** + * @brief Request type for closing Glance Bar + * @since_tizen 2.3 + */ +typedef enum dynamicbox_gbar_close_type { + DBOX_CLOSE_GBAR_NORMAL = 0x00, /**< Glance Bar is closed normally */ + DBOX_CLOSE_GBAR_TIMEOUT = 0x01, /**< Glance Bar is closed because of timeout, there is no response */ + DBOX_CLOSE_GBAR_FAULT = 0x02, /**< Glance Bar is closed because of unrecoverable error */ + DBOX_CLOSE_GBAR_INVALID = 0xff, /**< Unknown event type */ +} dynamicbox_gbar_close_type_e; + +/** + * @internal + * @brief Type of dynamicbox content sharing method + * @since_tizen 2.3 + */ +typedef enum dynamicbox_dbox_type { + DBOX_TYPE_NONE = 0x0, /**< Undefined */ + DBOX_TYPE_SCRIPT, /**< Script base */ + DBOX_TYPE_FILE, /**< File base */ + DBOX_TYPE_TEXT, /**< Text base */ + DBOX_TYPE_BUFFER, /**< Buffer base */ + DBOX_TYPE_UIFW /**< UIFW supported type */ +} dynamicbox_dbox_type_e; + +/** + * @internal + * @brief Type of glance bar content sharing method + * @since_tizen 2.3 + */ +typedef enum dynamicbox_gbar_type { + GBAR_TYPE_NONE = 0x0, /**< Undefined */ + GBAR_TYPE_SCRIPT, /**< Script base */ + GBAR_TYPE_TEXT, /**< Text base */ + GBAR_TYPE_BUFFER, /**< Buffer base */ + GBAR_TYPE_UIFW /**< UIFW supported type */ +} dynamicbox_gbar_type_e; + +/** + * @brief Destroy type of dynamicbox instance + * @since_tizen 2.3 + */ +typedef enum dynamicbox_destroy_type { + DBOX_DESTROY_TYPE_DEFAULT = 0x00, /**< Deleted */ + DBOX_DESTROY_TYPE_UPGRADE = 0x01, /**< Deleted for upgrading */ + DBOX_DESTROY_TYPE_UNINSTALL = 0x02, /**< Deleted by uninstalling */ + DBOX_DESTROY_TYPE_TERMINATE = 0x03, /**< Deleted for reboot device */ + DBOX_DESTROY_TYPE_FAULT = 0x04, /**< Deleted by system-fault */ + DBOX_DESTROY_TYPE_TEMPORARY = 0x05, /**< Temporarly deleted, will be created again */ + DBOX_DESTROY_TYPE_UNKNOWN = 0x06 /**< Undefined reason */ +} dynamicbox_destroy_type_e; /**< Delete type */ + +/** + * @brief + * Text signal & Content event uses this data structure. + * @since_tizen 2.3 + */ +typedef struct dynamicbox_event_info { + struct _pointer { + double x; /**< X value of current mouse(touch) position */ + double y; /**< Y value of current mouse(touch) position */ + int down; /**< Is it pressed(1) or not(0) */ + } pointer; + + struct _part { + double sx; /**< Pressed object's left top X */ + double sy; /**< Pressed object's left top Y */ + double ex; /**< Pressed object's right bottom X */ + double ey; /**< Pressed object's right bottom Y */ + } part; +} *dynamicbox_event_info_t; + +/** + * @brief Dynamicbox Buffer Handler + * @since_tizen 2.3 + */ +typedef struct dynamicbox_buffer *dynamicbox_buffer_h; + +/** + * @brief Dynamicbox Buffer Event information + * @since_tizen 2.3 + */ +typedef struct dynamicbox_buffer_event_data *dynamicbox_buffer_event_data_t; + +/** + * @brief Dynamicbox Buffer Handler + * @since_tizen 2.3 + */ +typedef struct dynamicbox_buffer *dynamicbox_buffer_h; + +/** + * @internal + * @brief This enumeration values should be sync'd with libdynamicbox interface. (only for inhouse dynamicbox) + * @since_tizen 2.3 + */ +typedef enum dynamicbox_buffer_event { + DBOX_BUFFER_EVENT_ENTER, /**< get the focus */ + DBOX_BUFFER_EVENT_LEAVE, /**< lost the focus */ + DBOX_BUFFER_EVENT_DOWN, /**< Touch down */ + DBOX_BUFFER_EVENT_MOVE, /**< Touch move */ + DBOX_BUFFER_EVENT_UP, /**< Touch up */ + + DBOX_BUFFER_EVENT_KEY_DOWN, /**< Key pressed */ + DBOX_BUFFER_EVENT_KEY_UP, /**< Key release */ + DBOX_BUFFER_EVENT_KEY_FOCUS_IN, /**< Focus in */ + DBOX_BUFFER_EVENT_KEY_FOCUS_OUT, /**< Focus out */ + + DBOX_BUFFER_EVENT_ACCESS_HIGHLIGHT, /**< Accessibility Highlight event */ + DBOX_BUFFER_EVENT_ACCESS_HIGHLIGHT_NEXT, /**< Accessibility Highlight Next event */ + DBOX_BUFFER_EVENT_ACCESS_HIGHLIGHT_PREV, /**< Accessibility Highlight Prev event */ + DBOX_BUFFER_EVENT_ACCESS_ACTIVATE, /**< Accessibility Activate event */ + DBOX_BUFFER_EVENT_ACCESS_ACTION_UP, /**< Accessibility Action Up event */ + DBOX_BUFFER_EVENT_ACCESS_ACTION_DOWN, /**< Accessibility Action Down event */ + DBOX_BUFFER_EVENT_ACCESS_SCROLL_UP, /**< Accessibility Scroll Mouse Up event */ + DBOX_BUFFER_EVENT_ACCESS_SCROLL_MOVE, /**< Accessibility Scroll Mouse Move event */ + DBOX_BUFFER_EVENT_ACCESS_SCROLL_DOWN, /**< Accessibility Scroll Mouse Down event */ + DBOX_BUFFER_EVENT_ACCESS_UNHIGHLIGHT, /**< Accessibility Unhighlight event */ + + DBOX_BUFFER_EVENT_ON_HOLD, /**< To prevent from generating mouse clicked event */ + DBOX_BUFFER_EVENT_OFF_HOLD, /**< Disable the mouse hold event */ + DBOX_BUFFER_EVENT_ON_SCROLL, /**< Enable the scroll flag */ + DBOX_BUFFER_EVENT_OFF_SCROLL, /**< Disable the scroll flag */ + + DBOX_BUFFER_EVENT_ACCESS_VALUE_CHANGE, /**< */ + DBOX_BUFFER_EVENT_ACCESS_MOUSE, /**< give mouse event to highlight object */ + DBOX_BUFFER_EVENT_ACCESS_BACK, /**< go back to a previous view ex: pop naviframe item */ + DBOX_BUFFER_EVENT_ACCESS_OVER, /**< mouse over an object */ + DBOX_BUFFER_EVENT_ACCESS_READ, /**< highlight an object */ + DBOX_BUFFER_EVENT_ACCESS_ENABLE, /**< enable highlight and read ability */ + DBOX_BUFFER_EVENT_ACCESS_DISABLE /**< disable highlight and read ability */ +} dynamicbox_buffer_event_e; + +/** + * @internal + * @brief Dynamic Box Buffer Event Data + * @since_tizen 2.3 + */ +typedef struct dynamicbox_buffer_event_data { + dynamicbox_buffer_event_e type; /**< Event type */ + double timestamp; /**< Timestamp */ + + union input_data { + struct mouse { + int x; /**< Touch X coordinate */ + int y; /**< Touch Y coordinate */ + } pointer; + + struct access { + int x; /**< Accessibility event X coordinate */ + int y; /**< Accessibility event Y coordinate */ + unsigned int mouse_type; /**< 0: down, 1: move, 2: up | 0: cur, 1: next, 2: prev, 3: off */ + unsigned int action_type; /**< reserved for protocol */ + unsigned int action_by; /**< reserved for protocol */ + int cycle; /**< reserved for protocol */ + } access; + + unsigned int keycode; /**< Key code value */ + } info; +} *dynamicbox_buffer_event_data_t; + +/** + * @internal + * @brief Package list handle. + * @since_tizen 2.3 + */ +typedef struct dynamicbox_pkglist_handle *dynamicbox_pkglist_h; + +/** + * @brief Gets the pixel size of given size type. + * @details + * Size types would be\n + * #DBOX_SIZE_TYPE_1x1\n + * #DBOX_SIZE_TYPE_2x1\n + * #DBOX_SIZE_TYPE_2x2\n + * #DBOX_SIZE_TYPE_4x1\n + * #DBOX_SIZE_TYPE_4x2\n + * #DBOX_SIZE_TYPE_4x3\n + * #DBOX_SIZE_TYPE_4x4\n + * #DBOX_SIZE_TYPE_4x5\n + * #DBOX_SIZE_TYPE_4x6\n + * #DBOX_SIZE_TYPE_0x0\n + * #DBOX_SIZE_TYPE_EASY_1x1\n + * #DBOX_SIZE_TYPE_EASY_3x1\n + * #DBOX_SIZE_TYPE_EASY_3x3. + * @since_tizen 2.3 + * @param[in] type Size type + * @param[out] width Pixel size width + * @param[out] height Pixel size height + * @feature http://developer.samsung.com/tizen/feature/samsung_extension + * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget + * @return int type + * @retval #DBOX_STATUS_ERROR_PERMISSION_DENIED Permission denied + * @retval #DBOX_STATUS_ERROR_NONE Successfully done + * @see dynamicbox_size_type() + * @see dynamicbox_service_size_type() + */ +extern int dynamicbox_service_get_size(dynamicbox_size_type_e type, int *width, int *height); + +/** + * @brief Gets the size type for given pixel size. + * @details + * Returnable size types are\n + * #DBOX_SIZE_TYPE_1x1\n + * #DBOX_SIZE_TYPE_2x1\n + * #DBOX_SIZE_TYPE_2x2\n + * #DBOX_SIZE_TYPE_4x1\n + * #DBOX_SIZE_TYPE_4x2\n + * #DBOX_SIZE_TYPE_4x3\n + * #DBOX_SIZE_TYPE_4x4\n + * #DBOX_SIZE_TYPE_4x5\n + * #DBOX_SIZE_TYPE_4x6\n + * #DBOX_SIZE_TYPE_0x0\n + * #DBOX_SIZE_TYPE_EASY_1x1\n + * #DBOX_SIZE_TYPE_EASY_3x1\n + * #DBOX_SIZE_TYPE_EASY_3x3\n + * or\n + * #DBOX_SIZE_TYPE_UNKNOWN for error. + * @since_tizen 2.3 + * @param[in] width Pixel size width + * @param[in] height Pixel size height + * @feature http://developer.samsung.com/tizen/feature/samsung_extension + * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget + * @return int type + * @retval #DBOX_SIZE_TYPE_[EASY_]WxH Size type of given pixel size + * @retval #DBOX_SIZE_TYPE_UNKNOWN If the given pixel size is not valid, dynamicbox_last_status() will returns reason of failure. + * @see dynamicbox_size_type() + * @see dynamicbox_service_get_size() + */ +extern dynamicbox_size_type_e dynamicbox_service_size_type(int width, int height); + +/** + * @internal + * @brief Supports the mouse event of dynamicbox content. + * @details This function will returns true/false, but even if this fails to access database to retrieve information, + * This will returns 0. in that case, you can check it using dynamicbox_last_status() function. + * If there is an error, it will returns proper error code. + * @since_tizen 2.3 + * @param[in] dboxid Dynamicbox AppId + * @privlevel public + * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.viewer + * @feature http://developer.samsung.com/tizen/feature/samsung_extension + * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget + * @return int type + * @retval 1 If the box requires mouse event, A viewer must has to feed the mouse event to the box instance + * @retval 0 If the box doesn't requires mouse event, In this case, you can check whether it is error or not using dynamicbox_last_status() function. + * @see dynamicbox_service_touch_effect() + * @see dynamicbox_service_need_frame() + * @see dynamicbox_last_status() + */ +extern int dynamicbox_service_mouse_event(const char *dboxid, int size_type); + +/** + * @internal + * @brief Requires touch effect. + * @details If this API returns true(1), the viewer should make touch effect when a user click the dynamicbox. + * This function returns 1 even if it fails to retrieve information from Database. + * So if you need validate the information whether it is correct or not, you can use dynamicbox_last_status() function. + * Even if this function returns 1, It is recommended to check last status of this function call. + * @since_tizen 2.3 + * @param[in] dboxid Dynamicbox AppId + * @param[in] size_type Size type + * @privlevel public + * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.viewer + * @feature http://developer.samsung.com/tizen/feature/samsung_extension + * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget + * @return int type + * @retval 1 If the box requires touch effect, A viewer should make the touch effect, but it is just recomendation. + * @retval 0 If the box doesn't requires touch effect, the box will make touch effect itself + * @see dynamicbox_service_mouse_event() + * @see dynamicbox_service_need_frame() + * @see dynamicbox_last_status() + */ +extern int dynamicbox_service_touch_effect(const char *dboxid, int size_type); + +/** + * @internal + * @brief Requires decoration frame. + * @details If this API returns true(1), the viewer should make decoration border on the dynamicbox content. + * If this function returns 0, you can validate it using dynamicbox_last_status() function. + * If something goes wrong, so this fails to retrieve information, you can check reason why it fails to get it + * using dynamicbox_last_status() function. + * @since_tizen 2.3 + * @param[in] dboxid Dynamicbox AppId + * @param[in] size_type Size type + * @privlevel public + * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.viewer + * @feature http://developer.samsung.com/tizen/feature/samsung_extension + * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget + * @return int type + * @retval 1 If the box requires frame for decorating its contents + * @retval 0 If the box doesn't requires frame + * @see dynamicbox_service_mouse_event() + * @see dynamicbox_service_touch_effect() + * @see dynamicbox_last_status() + */ +extern int dynamicbox_service_need_frame(const char *dboxid, int size_type); + +/** + * @brief Triggers the update event for given dynamicbox instance. + * @since_tizen 2.3 + * @param[in] dboxid Dynamicbox AppId + * @param[in] instance_id Set @c NULL if you don't know what the Id is. Then every instance of given pkgname will be triggered its update event + * @param[in] cluster Cluster name. Default @c NULL + * @param[in] category Category name, Default @c NULL + * @param[in] content New content information, Default @c NULL + * @param[in] force 1 if you want to update your dynamicbox even if the provider is paused or 0. 0 is default + * @privlevel public + * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.provider + * @feature http://developer.samsung.com/tizen/feature/samsung_extension + * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget + * @return int type + * @retval #DBOX_STATUS_ERROR_INVALID_PARAMETER Invalid argument + * @retval #DBOX_STATUS_ERROR_CANCEL Provider is paused, so this update request is canceld.(ignored), if you want to make update forcely, use force=1 + * @retval #DBOX_STATUS_ERROR_MEMORY Memory is not enough to make request + * @retval #DBOX_STATUS_ERROR_FAULT Failed to create a request packet + * @retval #DBOX_STATUS_ERROR_PERMISSION_DENIED Permission denied + * @retval #DBOX_STATUS_ERROR_NONE Successfully requested + * @see dynamicbox_service_trigger_update() + */ +extern int dynamicbox_service_trigger_update(const char *dboxid, const char *instance_id, const char *cluster, const char *category, const char *content, int force); + +/** + * @brief Changes the update period of given dynamicbox instance. + * @since_tizen 2.3 + * @param[in] dboxid Dynamicbox AppId + * @param[in] instance_id Dynamicbox instance id + * @param[in] period New update period in sec + * @privlevel public + * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.provider + * @feature http://developer.samsung.com/tizen/feature/samsung_extension + * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget + * @return int type + * @retval #DBOX_STATUS_ERROR_NONE Successfully changed(requested) + * @retval #DBOX_STATUS_ERROR_INVALID_PARAMETER Invalid argument + * @retval #DBOX_STATUS_ERROR_FAULT Failed to create a request packet + * @retval #DBOX_STATUS_ERROR_PERMISSION_DENIED Permission denied + * @retval #DBOX_STATUS_ERROR_MEMORY Not enough memory + */ +extern int dynamicbox_service_change_period(const char *dboxid, const char *instance_id, double period); + +/** + * @internal + * @brief Gets synchronous package list. + * @details + * callback (appid, dboxid, is_prime)\n + * pkgid == Package ID (pkgname)\n + * dboxid = Dynamicbox AppId\n + * is_prime = 1 if the dynamicbox is default one for associated application package\n + * If the callback returns negative value, the list crawling will be stopped. + * @since_tizen 2.3 + * @param[in] cb Callback function + * @param[in] data Callback data + * @privlevel public + * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.viewer + * @feature http://developer.samsung.com/tizen/feature/samsung_extension + * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget + * @return int type + * @retval #DBOX_STATUS_ERROR_IO_ERROR Failed to access DB + * @retval #DBOX_STATUS_ERROR_INVALID_PARAMETER Invalid argument + * @retval #DBOX_STATUS_ERROR_PERMISSION_DENIED Permission denied + * @retval count Count of dynamicbox packages + * @see dynamicbox_service_get_pkglist_by_pkgid() + */ +extern int dynamicbox_service_get_pkglist(int (*cb)(const char *pkgid, const char *dboxid, int is_prime, void *data), void *data); + +/** + * @internal + * @brief Gets synchronous uiapp list. + * @details + * Callback (appid, data)\n + * This function will retrieve all UI Apps in a package which has given dynamicbox appid(dboxid).\n + * If you need to get all ui-app list, using a dynamicbox appid, this function is able to help you. + * @since_tizen 2.3 + * @param[in] dboxid Dynamicbox App Id + * @param[in] cb Callback function + * @param[in] data Callback Data + * @privlevel public + * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.viewer + * @feature http://developer.samsung.com/tizen/feature/samsung_extension + * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget + * @return int type + * @retval #DBOX_STATUS_ERROR_NONE Status success + * @retval #DBOX_STATUS_ERROR_INVALID_PARAMETER Invalid argument + * @retval #DBOX_STATUS_ERROR_IO_ERROR Failed to access DB + * @retval #DBOX_STATUS_ERROR_MEMORY Memory error + * @retval #DBOX_STATUS_ERROR_PERMISSION_DENIED Permission denied + * @retval #DBOX_STATUS_ERROR_FAULT Unrecoverable error occurred + */ +extern int dynamicbox_service_get_applist(const char *dboxid, void (*cb)(const char *dboxid, const char *appid, void *data), void *data); + +/** + * @internal + * @brief Gets the MAIN application Id of given dynamicbox package Id. + * @since_tizen 2.3 + * @param[in] dboxid Dynamicbox Package Id + * @privlevel public + * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.viewer + * @feature http://developer.samsung.com/tizen/feature/samsung_extension + * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget + * @return char * type + * @retval @c NULL If it fails to get main application Id (UI-APPID), dynamicbox_last_status() will returns reason of failure. + * @retval appid Main application Id + * @see dynamicbox_last_status() + */ +extern char *dynamicbox_service_mainappid(const char *dboxid); + +/** + * @internal + * @brief Gets synchronous package list. + * @details + * callback (dboxid, is_prime)\n + * dboxid == Dynamicbox AppId\n + * is_prime = 1 if the dynamicbox is default one for selected package\n + * If the callback returns negative value, the list crawling will be stopped. + * @since_tizen 2.3 + * @param[in] pkgid Package Id (Not the UI App Id) + * @param[in] cb Callback function + * @param[in] data Callback data + * @privlevel public + * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.viewer + * @feature http://developer.samsung.com/tizen/feature/samsung_extension + * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget + * @return int type + * @retval int Count of dynamicbox packages + * @retval #DBOX_STATUS_ERROR_INVALID_PARAMETER Invalid argument + * @retval #DBOX_STATUS_ERROR_IO_ERROR Failed to access DB + * @retval #DBOX_STATUS_ERROR_PERMISSION_DENIED Permission denied + * @see dynamicbox_service_get_pkglist() + */ +extern int dynamicbox_service_get_pkglist_by_pkgid(const char *pkgid, int (*cb)(const char *dboxid, int is_prime, void *data), void *data); + +/** + * @internal + * @brief Gets synchronous package list. + * @details + * callback (dboxid)\n + * dboxid == Dynamicbox AppId\n + * If the callback returns negative value, the list crawling will be stopped + * @since_tizen 2.3 + * @param[in] category Name of category + * @param[in] cb Callback function + * @param[in] data Callback data + * @privlevel public + * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.viewer + * @feature http://developer.samsung.com/tizen/feature/samsung_extension + * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget + * @return int count + * @retval Count of dynamicbox packages + * @retval #DBOX_STATUS_ERROR_INVALID_PARAMETER Invalid argument + * @retval #DBOX_STATUS_ERROR_IO_ERROR Failed to access DB + * @retval #DBOX_STATUS_ERROR_PERMISSION_DENIED Permission denied + * @see dynamicbox_service_get_pkglist_by_pkgid() + */ +extern int dynamicbox_service_get_pkglist_by_category(const char *category, int (*cb)(const char *dboxid, void *data), void *data); + +/** + * @internal + * @brief Gets the id of a primary dynamicbox using given (dbox or package or UI app) Id. If a given id is a dynamicbox id, check its existence. and if it is package or ui-app id, then find the primary dynamicbox in its package. + * @since_tizen 2.3 + * @param[in] id Dynamic Box Id or Package Id or UI App Id + * @privlevel public + * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.viewer + * @feature http://developer.samsung.com/tizen/feature/samsung_extension + * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget + * @return char * type + * @retval @c NULL Failed to get primary dboxid, dynamicbox_last_status() will returns reason of failure. + * @retval dboxid Primary dynamicbox Id. which is allocated in the heap + * @pre Must be released returned string by manually. + * @see dynamicbox_service_package_id() + */ +extern char *dynamicbox_service_dbox_id(const char *id); + +/** + * @internal + * @brief Checks the primary flag of given dynamicbox Id. + * @since_tizen 2.3 + * @param[in] dboxid Dynamicbox Id + * @privlevel public + * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.viewer + * @feature http://developer.samsung.com/tizen/feature/samsung_extension + * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget + * @return int type + * @retval 0 If is not a primary, dynamicbox_last_status() will returns reason of failure if it fails. + * @retval 1 If it is a primary dynamicbox + */ +extern int dynamicbox_service_is_primary(const char *dboxid); + +/** + * @internal + * @brief Get the category using given dboxid. + * @since_tizen 2.3 + * @param[in] dboxid Dynamicbox AppId + * @privlevel public + * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.viewer + * @feature http://developer.samsung.com/tizen/feature/samsung_extension + * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget + * @return char * + * @retval @c NULL Failed to get primary dboxid, dynamicbox_last_status() will returns reason of failure if it fails. + * @retval category Category string which is allocated in the heap. + * @pre Must be released returned string by manually + * @post N/A + * @see dynamicbox_service_dbox_id() + */ +extern char *dynamicbox_service_category(const char *dboxid); + +/** + * @internal + * @brief Gets the name of a dynamicbox (provider name == dynamicbox appid), you have to release the return value after use it. + * @details + * Dynamicbox has provider process for each dynamicbox instances.\n + * To get the provider's package name, you can use this API.\n + * If the given dboxid is inhouse dynamicbox, the return string will be the same with given argument but it is allocated in the heap. + * @since_tizen 2.3 + * @param[in] dboxid Dynamicbox Id + * @feature http://developer.samsung.com/tizen/feature/samsung_extension + * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget + * @return char * type + * @retval @c NULL Failed to get provider name, dynamicbox_last_status() will returns reason of failure if it fails. + * @retval dboxid Dynamicbox AppId which is allocated on the heap + * @post Returned string must be free'd manually. + */ +extern char *dynamicbox_service_provider_name(const char *dboxid); + +/** + * @internal + * @brief Gets the appId of setup app which is specified by given dynamicbox Id's manifest. + * @details + * This setup app should be launched before adding the dynamicbox to get the content_info.\n + * This function should be called before add a dynamicbox.\n + * To determine the content information string. + * @since_tizen 2.3 + * @param[in] dboxid Dynamicbox Id + * @privlevel public + * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.viewer + * @feature http://developer.samsung.com/tizen/feature/samsung_extension + * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget + * @return char * type + * @retval @c NULL There is no setup application or error occurred, you can check it using dynamicbox_last_status() + * @retval appid AppId if exists or @c NULL + * @post Returned string must be free'd manually. + * @see dynamicbox_last_status() + */ +extern char *dynamicbox_service_setup_appid(const char *dboxid); + +/** + * @internal + * @brief Gets the Package Id (Not the UI App Id) of given dynamicbox, <manifest package="AAA"> tag. + * @since_tizen 2.3 + * @param[in] dboxid Dynamicbox AppId + * @privlevel public + * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.viewer + * @feature http://developer.samsung.com/tizen/feature/samsung_extension + * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget + * @return char * type + * @retval appid String which is allocated in the heap + * @retval @c NULL Invalid appid, dynamicbox_last_status() will returns reason of failure if it fails. + * @post Returned string must be free'd manually. + * @see dynamicbox_service_dbox_id() + */ +extern char *dynamicbox_service_package_id(const char *dboxid); + +/** + * @internal + * @brief Gives Internationalized name of dynamicbox package. + * @since_tizen 2.3 + * @param[in] dboxid Dynamicbox AppId + * @param[in] lang Locale(en-us, ko-kr, ...), if it is @c NULL, function will use the system locale automatically + * @privlevel public + * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.viewer + * @feature http://developer.samsung.com/tizen/feature/samsung_extension + * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget + * @return char * type + * @retval name If it fails to get name + * @retval @c NULL Allocated heap address, dynamicbox_last_status() will returns reason of failure if it fails. + * @post Returned string must be free'd by manually. + * @see dynamicbox_service_i18n_icon() + * @see dynamicbox_service_preview() + */ +extern char *dynamicbox_service_i18n_name(const char *dboxid, const char *lang); + +/** + * @internal + * @brief Gets the preview image path of given size type. + * @details This function will returns i18nized preview image path. + * @since_tizen 2.3 + * @param[in] dboxid Dynamicbox AppId + * @param[in] size_type Dynamicbox size type + * @privlevel public + * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.viewer + * @feature http://developer.samsung.com/tizen/feature/samsung_extension + * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget + * @return char * type + * @retval path Preview image path + * @retval @c NULL There is no preview image file, dynamicbox_last_status() will returns reason of failure if it fails. + * @post Returned string must be free'd manually. + * @see dynamicbox_service_i18n_icon() + * @see dynamicbox_service_i18n_name() + */ +extern char *dynamicbox_service_preview(const char *dboxid, int size_type); + +/** + * @internal + * @brief Gets the default content string of the given dynamicbox. + * @details + * If the user defines the default content string in the manifest file (.xml),\n + * this API will return it. + * @since_tizen 2.3 + * @param[in] dboxid Dynamicbox AppId + * @privlevel public + * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.viewer + * @feature http://developer.samsung.com/tizen/feature/samsung_extension + * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget + * @return char * type + * @retval content Content string + * @retval @c NULL There is no specified content string, or dynamicbox_last_status() will returns reason of failure if it fails. + * @pre Manifest has the default content string. <content>Default content string<content> tag. + * @post Returned string must be free'd manually. + */ +extern char *dynamicbox_service_content(const char *dboxid); + +/** + * @internal + * @brief Gives Internationalized icon path of given dynamicbox package. + * @details The user should free the returned string with free(). + * @since_tizen 2.3 + * @param[in] dboxid Dynamicbox AppId (It must has to be a dynamicbox package ID. not the UI-APP and the PACKAGE) + * @param[in] lang Locale(en-us, ko-kr, ...), if it is @c NULL, function will use the system locale automatically + * @privlevel public + * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.viewer + * @feature http://developer.samsung.com/tizen/feature/samsung_extension + * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget + * @return char * type + * @retval name Allocated heap address + * @retval @c NULL Fails to get path of an icon, dynamicbox_last_status() will returns reason of failure if it fails. + * @post Returned string must be free'd manually. + * @see dynamicbox_service_i18n_name() + * @see dynamicbox_service_preview() + */ +extern char *dynamicbox_service_i18n_icon(const char *pkgid, const char *lang); + +/** + * @internal + * @brief Gets the "nodisplay" value. + * @since_tizen 2.3 + * @param[in] dboxid Dynamicbox AppId + * @privlevel public + * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.viewer + * @feature http://developer.samsung.com/tizen/feature/samsung_extension + * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget + * @return int type + * @retval 1 The box should not be listed by the dynamicbox list app + * @retval 0 Box should be listed, dynamicbox_last_status() will returns reason of failure if it fails. + * @pre Dynamicbox tag includes "nodisplay" attribute. + */ +extern int dynamicbox_service_nodisplay(const char *dboxid); + +/** + * @internal + * @brief Gets the "ABI" of given package. + * @since_tizen 2.3 + * @param[in] dboxid Dynamicbox AppId + * @privlevel public + * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.viewer + * @feature http://developer.samsung.com/tizen/feature/samsung_extension + * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget + * @return char * type + * @retval abi String which is allocated in the heap + * @retval @c NULL Failed to get ABI of given dynamicbox, dynamicbox_last_status() will returns reason of failure if it fails. + * @post Returned string must be free'd manually. + */ +extern char *dynamicbox_service_abi(const char *dboxid); + +/** + * @internal + * @brief Checks the status of the dynamicbox. + * @details Currently this API is not implemented. It just returns 1 all the time. + * @since_tizen 2.3 + * @remarks This API is not implemented. It will always return 1. + * @param[in] dboxid Dynamicbox AppId + * @privlevel public + * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.viewer + * @feature http://developer.samsung.com/tizen/feature/samsung_extension + * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget + * @return int type + * @retval 1 Enabled + * @retval 0 Disabled + */ +extern int dynamicbox_service_is_enabled(const char *dboxid); + +/** + * @internal + * @brief Gets the script file of dynamicbox. + * @since_tizen 2.3 + * @param[in] dboxid Dynamicbox AppId + * @privlevel public + * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.viewer + * @feature http://developer.samsung.com/tizen/feature/samsung_extension + * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget + * @return char * type + * @retval string Script file path + * @retval @c NULL Not specified script file, dynamicbox_last_status() will returns reason of failure if it fails. + * @pre Dynamicbox should be developed as script type. + * @post Return'd string must be free'd manually. + * @see dynamicbox_service_dbox_script_group() + */ +extern char *dynamicbox_service_dbox_script_path(const char *dboxid); + +/** + * @internal + * @brief Gets the script group of dynamicbox. + * @since_tizen 2.3 + * @param[in] dboxid Dynamicbox AppId + * @privlevel public + * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.viewer + * @feature http://developer.samsung.com/tizen/feature/samsung_extension + * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget + * @return char * type + * @retval Group Name of dynamicbox + * @retval @c NULL If there is no group defined, or dynamicbox_last_status() will returns reason of failure if it fails. + * @pre Dynamicbox should be developed as script type. + * @post Return'd string must be free'd manually. + * @see dynamicbox_service_dbox_script_path() + */ +extern char *dynamicbox_service_dbox_script_group(const char *dboxid); + +/** + * @internal + * @brief Gets the script file path of given dynamicbox package. + * @since_tizen 2.3 + * @param[in] dboxid Dynamicbox AppId + * @privlevel public + * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.viewer + * @feature http://developer.samsung.com/tizen/feature/samsung_extension + * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget + * @return char * type + * @retval string Script file path + * @retval @c NULL No specified script file for Glance Bar layout, or dynamicbox_last_status() will returns reason of failure if it fails. + * @post Returned string must be free'd manually. + * @see dynamicbox_service_gbar_script_group() + */ +extern char *dynamicbox_service_gbar_script_path(const char *dboxid); + +/** + * @internal + * @brief Gets the group name for script file to load it. + * @since_tizen 2.3 + * @param[in] dboxid Dynamicbox AppId + * @privlevel public + * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.viewer + * @feature http://developer.samsung.com/tizen/feature/samsung_extension + * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget + * @return char * type + * @retval string Script group name + * @retval @c NULL No script path, or dynamicbox_last_status() will returns reason of failure if it fails. + * @post Returned string must be free'd manually. + * @see dynamicbox_service_gbar_script_path() + */ +extern char *dynamicbox_service_gbar_script_group(const char *dboxid); + +/** + * @internal + * @brief Gets the supported size list. + * @since_tizen 2.3 + * @param[in] dboxid Dynamicbox AppId + * @param[in] cnt Count of array w and h + * @param[in] w Width array + * @param[in] h Height array + * @param[out] cnt Count of array w and h + * @param[out] w Width array + * @param[out] h Height array + * @privlevel public + * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.viewer + * @feature http://developer.samsung.com/tizen/feature/samsung_extension + * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget + * @return int type + * @retval #DBOX_STATUS_ERROR_NONE If succeed to get supported size list + * @retval #DBOX_STATUS_ERROR_IO_ERROR Failed to access DB + * @retval #DBOX_STATUS_ERROR_INVALID_PARAMETER Invalid argument + * @retval #DBOX_STATUS_ERROR_PERMISSION_DENIED Permission denied + * @see dynamicbox_service_get_supported_size_types() + */ +extern int dynamicbox_service_get_supported_sizes(const char *dboxid, int *cnt, int *w, int *h); + +/** + * @internal + * @brief Gets the supported size list of given pkgid. + * @since_tizen 2.3 + * @param[in] dboxid Dynamicbox AppId + * @param[in] cnt Size of types array + * @param[out] cnt Result count of types array + * @param[out] types Array of types + * @privlevel public + * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.viewer + * @feature http://developer.samsung.com/tizen/feature/samsung_extension + * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget + * @return int type + * @retval #DBOX_STATUS_ERROR_INVALID_PARAMETER Invalid argument + * @retval #DBOX_STATUS_ERROR_IO_ERROR Failed to access DB + * @retval #DBOX_STATUS_ERROR_NONE Successfully done + * @retval #DBOX_STATUS_ERROR_PERMISSION_DENIED Permission denied + * @see dynamicbox_service_get_supported_sizes() + */ +extern int dynamicbox_service_get_supported_size_types(const char *dboxid, int *cnt, int *types); + +/** + * @internal + * @brief Gets the category list of given cluster. + * @since_tizen 2.3 + * @param[in] cluster Cluster name + * @param[in] cb Callback function + * @param[in] data Callback data + * @privlevel public + * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.viewer + * @feature http://developer.samsung.com/tizen/feature/samsung_extension + * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget + * @return int type + * @retval #DBOX_STATUS_ERROR_NONE Successfully done + * @retval #DBOX_STATUS_ERROR_IO_ERROR Failed to access DB + * @retval #DBOX_STATUS_ERROR_INVALID_PARAMETER Invalid argument + * @retval #DBOX_STATUS_ERROR_PERMISSION_DENIED Permission denied + * @see dynamicbox_service_enumerate_cluster_list() + */ +extern int dynamicbox_service_enumerate_category_list(const char *cluster, int (*cb)(const char *cluster, const char *category, void *data), void *data); + +/** + * @internal + * @brief Gets the cluster list. + * @since_tizen 2.3 + * @param[in] cb Callback function for retrieving the cluster list + * @param[in] data Callback data + * @privlevel public + * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.viewer + * @feature http://developer.samsung.com/tizen/feature/samsung_extension + * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget + * @return int type + * @retval #DBOX_STATUS_ERROR_INVALID_PARAMETER Invalid argument + * @retval #DBOX_STATUS_ERROR_IO_ERROR Failed to access DB + * @retval #DBOX_STATUS_ERROR_PERMISSION_DENIED Permission denied + * @retval count Count of category items + * @see dynamicbox_service_enumerate_category_list() + */ +extern int dynamicbox_service_enumerate_cluster_list(int (*cb)(const char *cluster, void *data), void *data); + +/** + * @internal + * @brief Initializes the Dynamicbox service API. + * @details Open the DB file.\n + * You don't need to call this if you are using dynamicbox service API shortly.\n + * But if you are using dynamicbox service API while whole life of your S/W, + * using this, initate the dynamicbox service is more benefical to you.\n + * This API will prepare the DB operation, if you don't initiate the dynamicbox service, + * every API which are related with DB operation will open DB and close it before return from it. + * @since_tizen 2.3 + * @privlevel public + * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.viewer + * @feature http://developer.samsung.com/tizen/feature/samsung_extension + * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget + * @return int type + * @retval #DBOX_STATUS_ERROR_NONE Succeed to initialize + * @retval #DBOX_STATUS_ERROR_IO_ERROR Failed to access a DB + * @retval #DBOX_STATUS_ERROR_PERMISSION_DENIED Permission denied + * @see dynamicbox_service_fini() + */ +extern int dynamicbox_service_init(void); + +/** + * @internal + * @brief Finalizes the dynamicbox service API. + * @since_tizen 2.3 + * @privlevel public + * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.viewer + * @feature http://developer.samsung.com/tizen/feature/samsung_extension + * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget + * @return int type + * @retval #DBOX_STATUS_ERROR_NONE Succeed to finalize + * @retval #DBOX_STATUS_ERROR_IO_ERROR Failed to close the DB (access failed to DB) + * @retval #DBOX_STATUS_ERROR_PERMISSION_DENIED Permission denied + * @pre Dynamicbox_service_init. + * @see dynamicbox_service_init() + */ +extern int dynamicbox_service_fini(void); + +/** + * @internal + * @brief Creates a handle for getting the package list. + * @details + * If you want get the record one by one from DB, use this.\n + * This function will create a iterator.\n + * Then you can get the records one by one, but there is no backward iterator.\n + * You can only get a forward iterator.\n + * After calling this function the iterator will be moved to the next record automatically. + * @since_tizen 2.3 + * @remarks + * If you call this function again using created pkglist handle, it will be reset. + * So you can get records from the first one again. + * @param[in] dboxid Dynamicbox AppId + * @param[in] handle @c NULL if you call this first, or it will be reset + * @privlevel public + * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.viewer + * @feature http://developer.samsung.com/tizen/feature/samsung_extension + * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget + * @return handle + * @retval @c NULL If it fails, dynamicbox_last_status() will returns reason of failure if it fails. + * @retval handle If it successfully create the package list iterator + * @see dynamicbox_service_pkglist_destroy() + */ +extern dynamicbox_pkglist_h dynamicbox_service_pkglist_create(const char *dboxid, dynamicbox_pkglist_h handle); + +/** + * @internal + * @brief Gets the dboxid & package name & is_prime flag. + * @since_tizen 2.3 + * @param[in] handle Handle which is created by dynamicbox_service_pkglist_create() function + * @param[out] dboxid Dynamicbox Id + * @param[out] pkgname Package Id which includes dynamicboxes + * @param[out] is_prime If the returned dboxid is primary, this will be 1 or 0 + * @privlevel public + * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.viewer + * @feature http://developer.samsung.com/tizen/feature/samsung_extension + * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget + * @return int type + * @retval #DBOX_STATUS_ERROR_NONE Successfully get the record + * @retval #DBOX_STATUS_ERROR_INVALID_PARAMETER Invalid argument + * @retval #DBOX_STATUS_ERROR_NOT_EXIST Reach to the end of result set. you can rewind the iterator call dynamicbox_service_pkglist_create() again with current handle + * @retval #DBOX_STATUS_ERROR_MEMORY Not enough memory + * @post You must release the dboxid, pkgname manually. + * @see dynamicbox_service_pkglist_create() + * @see dynamicbox_service_pkglist_destroy() + */ +extern int dynamicbox_service_get_pkglist_item(dynamicbox_pkglist_h handle, char **dboxid, char **pkgname, int *is_prime); + +/** + * @internal + * @brief Destroys the iterator of pkglist. + * @since_tizen 2.3 + * @param[in] handle Package list handle + * @privlevel public + * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.viewer + * @feature http://developer.samsung.com/tizen/feature/samsung_extension + * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget + * @return int type + * @retval #DBOX_STATUS_ERROR_INVALID_PARAMETER Invalid handle + * @retval #DBOX_STATUS_ERROR_NONE Successfully destroyed + * @pre Handle must be created by dynamicbox_service_pkglist_create(). + * @post You have not to use the handle again after destroy it. + * @see dynamicbox_service_pkglist_create() + */ +extern int dynamicbox_service_pkglist_destroy(dynamicbox_pkglist_h handle); + +/** + * @internal + * @brief Getting the activated instance count. + * @since_tizen 2.3 + * @param[in] dboxid Dynamicbox Id, if you want to get whole instnaces list, use NULL. + * @param[in] cluster Cluster name if you don't know what this is, use NULL. + * @param[in] category Sub-cluster(category) name if you don't know what this is, use NULL. + * @privlevel public + * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.viewer + * @feature http://developer.samsung.com/tizen/feature/samsung_extension + * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget + * @return count of instances + * @retval #DBOX_STATUS_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #DBOX_STATUS_ERROR_FAULT Unrecorvarable error occurred + * @retval count Positive value including ZERO, Count of activated instances on viewers + */ +extern int dynamicbox_service_get_instance_count(const char *dboxid, const char *cluster, const char *category); + +/** + * @internal + * @brief Gets the path of the plug-in module. + * @since_tizen 2.3 + * @param[in] dboxid Dynamicbox AppId + * @privlevel public + * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.viewer + * @feature http://developer.samsung.com/tizen/feature/samsung_extension + * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget + * @return char * type + * @retval path String which is allocated on the heap + * @retval @c NULL No libexec attribute, or dynamicbox_last_status() will returns reason of failure if it fails. + * @post Returned string must be free'd manually. + */ +extern char *dynamicbox_service_libexec(const char *dboxid); + +/** + * @internal + * @brief Find the lbid using its libexec + * @details only if the dynamicbox should use the "libexec" attribute in its "<dynamicbox>" tag + * @since_tizen 2.3 + * @remarks Only usable for inhouse dynamicboxes + * @param[in] libexec so filename + * @privlevel public + * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.viewer + * @feature http://developer.samsung.com/tizen/feature/samsung_extension + * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget + * @return char * + * @retval @c NULL if it fails to get pkgname, dynamicbox_last_status() will returns reason of failure. + * @retval address heap address of pkgname + * @post return'd string should be released by "free()" + */ +extern char *dynamicbox_service_dbox_id_by_libexec(const char *libexec); + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif + +/* End of a file */ |