Add prototype for capi 53/202653/11
authorJunghoon Park <jh9216.park@samsung.com>
Tue, 2 Apr 2019 07:46:02 +0000 (16:46 +0900)
committerJunghoon Park <jh9216.park@samsung.com>
Wed, 3 Apr 2019 01:07:57 +0000 (10:07 +0900)
Change-Id: I9fbba2a19442847aa04f5eb26a70c03b6b35f457
Signed-off-by: Junghoon Park <jh9216.park@samsung.com>
22 files changed:
notification-ex/CMakeLists.txt
notification-ex/api/notification_ex_app_control_action.h [new file with mode: 0644]
notification-ex/api/notification_ex_button.h [new file with mode: 0644]
notification-ex/api/notification_ex_chat_message.h [new file with mode: 0644]
notification-ex/api/notification_ex_checkbox.h [new file with mode: 0644]
notification-ex/api/notification_ex_entry.h [new file with mode: 0644]
notification-ex/api/notification_ex_error.h [new file with mode: 0644]
notification-ex/api/notification_ex_event_info.h [new file with mode: 0644]
notification-ex/api/notification_ex_group.h [new file with mode: 0644]
notification-ex/api/notification_ex_image.h [new file with mode: 0644]
notification-ex/api/notification_ex_input_selector.h [new file with mode: 0644]
notification-ex/api/notification_ex_item.h [new file with mode: 0644]
notification-ex/api/notification_ex_manager.h [new file with mode: 0644]
notification-ex/api/notification_ex_progress.h [new file with mode: 0644]
notification-ex/api/notification_ex_reporter.h [new file with mode: 0644]
notification-ex/api/notification_ex_text.h [new file with mode: 0644]
notification-ex/api/notification_ex_time.h [new file with mode: 0644]
notification-ex/api/notification_ex_visibility_action.h [new file with mode: 0644]
notification-ex/notification-ex.pc.in
notification-ex/stub.cc [new file with mode: 0644]
packaging/notification.spec
unittest/CMakeLists.txt

index ea587cc..7e53f43 100644 (file)
@@ -30,6 +30,7 @@ SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
 SET(CMAKE_CXX_FLAGS_RELEASE "-O2")
 
 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../)
+INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/api)
 
 AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR} SOURCES)
 ADD_LIBRARY (${PROJECT_NAME} SHARED ${SOURCES})
@@ -45,3 +46,5 @@ INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${LIB_INSTALL_DIR})
 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
 INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/ DESTINATION include/${PROJECT_NAME}
        FILES_MATCHING PATTERN "*.h")
+INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/api DESTINATION include/${PROJECT_NAME}
+       FILES_MATCHING PATTERN "*.h")
diff --git a/notification-ex/api/notification_ex_app_control_action.h b/notification-ex/api/notification_ex_app_control_action.h
new file mode 100644 (file)
index 0000000..fb5bd0a
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2019 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 CAPI_NOTIFICATION_EX_APP_CONTROL_ACTION_H_
+#define CAPI_NOTIFICATION_EX_APP_CONTROL_ACTION_H_
+
+#include <app_control.h>
+#include <notification_ex_item.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+int noti_ex_action_app_control_create(noti_ex_action_h *handle, app_control_h app_control, const char *extra);
+int noti_ex_action_app_control_set(noti_ex_action_h handle, app_control_h app_control);
+int noti_ex_action_app_control_get(noti_ex_action_h handle, app_control_h *app_control);
+
+#ifdef __cplusplus
+}
+#endif
+#endif  // CAPI_NOTIFICATION_EX_APP_CONTROL_ACTION_H_
diff --git a/notification-ex/api/notification_ex_button.h b/notification-ex/api/notification_ex_button.h
new file mode 100644 (file)
index 0000000..c3a196a
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2019 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 CAPI_NOTIFICATION_EX_BUTTON_H_
+#define CAPI_NOTIFICATION_EX_BUTTON_H_
+
+#include <notification_ex_item.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+int noti_ex_item_button_create(noti_ex_item_h *handle, const char *id, const char *title);
+int noti_ex_item_button_get_title(noti_ex_item_h handle, char **title);
+
+#ifdef __cplusplus
+}
+#endif
+#endif  // CAPI_NOTIFICATION_EX_BUTTON_H_
diff --git a/notification-ex/api/notification_ex_chat_message.h b/notification-ex/api/notification_ex_chat_message.h
new file mode 100644 (file)
index 0000000..7ef6acb
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2019 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 CAPI_NOTIFICATION_EX_CHAT_MESSAGE_H_
+#define CAPI_NOTIFICATION_EX_CHAT_MESSAGE_H_
+
+#include <notification_ex_item.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum _noti_ex_item_chat_message_type {
+       NOTI_EX_ITEM_CHAT_MESSAGE_TYPE_USER,
+       NOTI_EX_ITEM_CHAT_MESSAGE_TYPE_SENDER,
+} noti_ex_item_chat_message_type_e;
+
+int noti_ex_item_chat_message_create(noti_ex_item_h *handle, const char *id, noti_ex_item_h name,
+               noti_ex_item_h text, noti_ex_item_h image, noti_ex_item_h time, noti_ex_item_chat_message_type_e message_type);
+int noti_ex_item_chat_message_get_name(const noti_ex_item_h *text);
+int noti_ex_item_chat_message_get_text(const noti_ex_item_h *text);
+int noti_ex_item_chat_message_get_image(const noti_ex_item_h *image);
+int noti_ex_item_chat_message_get_time(const noti_ex_item_h *time);
+int noti_ex_item_chat_message_get_message_type(noti_ex_item_chat_message_type_e *message_type);
+
+#ifdef __cplusplus
+}
+#endif
+#endif  // CAPI_NOTIFICATION_EX_CHAT_MESSAGE_H_
diff --git a/notification-ex/api/notification_ex_checkbox.h b/notification-ex/api/notification_ex_checkbox.h
new file mode 100644 (file)
index 0000000..e7a767e
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2019 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 CAPI_NOTIFICATION_EX_CHECKBOX_H_
+#define CAPI_NOTIFICATION_EX_CHECKBOX_H_
+
+#include <notification_ex_item.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+int noti_ex_item_checkbox_create(noti_ex_item_h *handle, const char *id, const char *title, bool checked);
+int noti_ex_item_checkbox_get_title(noti_ex_item_h handle, char **title);
+int noti_ex_item_checkbox_is_checked(noti_ex_item_h handle, bool *checked);
+
+#ifdef __cplusplus
+}
+#endif
+#endif  // CAPI_NOTIFICATION_EX_CHECKBOX_H_
diff --git a/notification-ex/api/notification_ex_entry.h b/notification-ex/api/notification_ex_entry.h
new file mode 100644 (file)
index 0000000..aab27de
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2019 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 CAPI_NOTIFICATION_EX_ENTRY_H_
+#define CAPI_NOTIFICATION_EX_ENTRY_H_
+
+#include <notification_ex_item.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+int noti_ex_item_entry_create(noti_ex_item_h *handle, const char *id);
+int noti_ex_item_entry_get_text(noti_ex_item_h handle, char **text);
+int noti_ex_item_entry_set_text(noti_ex_item_h handle, const char *text);
+
+#ifdef __cplusplus
+}
+#endif
+#endif  // CAPI_NOTIFICATION_EX_ENTRY_H_
diff --git a/notification-ex/api/notification_ex_error.h b/notification-ex/api/notification_ex_error.h
new file mode 100644 (file)
index 0000000..19d2418
--- /dev/null
@@ -0,0 +1,62 @@
+/*
+ * Copyright (c) 2019 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 __NOTIFICATION_EX_ERROR_H__
+#define __NOTIFICATION_EX_ERROR_H__
+
+
+#include <tizen.h>
+
+
+/**
+ * @file notification_ex_error.h
+ */
+
+
+/**
+ * @addtogroup NOTIFICATION_EX_MODULE
+ * @{
+ */
+
+
+/**
+ * @brief Enumeration for notification errors.
+ * @since_tizen 5.5
+ */
+typedef enum _noti_ex_error {
+       NOTI_EX_ERROR_NONE = TIZEN_ERROR_NONE, /**< Success */
+       NOTI_EX_ERROR_INVALID_PARAMETER = TIZEN_ERROR_INVALID_PARAMETER, /**< Invalid parameter */
+       NOTI_EX_ERROR_OUT_OF_MEMORY = TIZEN_ERROR_OUT_OF_MEMORY, /**< Out of memory */
+       NOTI_EX_ERROR_IO_ERROR = TIZEN_ERROR_IO_ERROR, /**< I/O error */
+       NOTI_EX_ERROR_PERMISSION_DENIED = TIZEN_ERROR_PERMISSION_DENIED, /**< Permission denied */
+       NOTI_EX_ERROR_INVALID_OPERATION = TIZEN_ERROR_INVALID_OPERATION, /**< Function not implemented (@b Since: @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif) */
+       NOTI_EX_ERROR_FROM_DB = TIZEN_ERROR_NOTIFICATION | 0x01, /**< Error from DB query */
+       NOTI_EX_ERROR_ALREADY_EXIST_ID = TIZEN_ERROR_NOTIFICATION | 0x02, /**< Already exist private ID */
+       NOTI_EX_ERROR_FROM_DBUS = TIZEN_ERROR_NOTIFICATION | 0x03, /**< Error from DBus */
+       NOTI_EX_ERROR_NOT_EXIST_ID = TIZEN_ERROR_NOTIFICATION | 0x04, /**< Not exist private ID */
+       NOTI_EX_ERROR_SERVICE_NOT_READY = TIZEN_ERROR_NOTIFICATION | 0x05, /**< No response from notification service */
+       NOTI_EX_ERROR_MAX_EXCEEDED = TIZEN_ERROR_NOTIFICATION | 0x06, /**< Max notification count exceeded (@b Since: 3.0) */
+} noti_ex_error_e;
+
+
+/**
+ * @}
+ */
+
+
+#endif /* __NOTIFICATION_EX_ERROR_H__ */
+
diff --git a/notification-ex/api/notification_ex_event_info.h b/notification-ex/api/notification_ex_event_info.h
new file mode 100644 (file)
index 0000000..0477614
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 2019 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 CAPI_NOTIFICATION_EX_EVENT_INFO_H_
+#define CAPI_NOTIFICATION_EX_EVENT_INFO_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum _noti_ex_event_info_type {
+       Post,
+       Update,
+       Delete,
+       Get,
+       Error,
+} noti_ex_event_info_type_e;
+
+typedef void* noti_ex_event_info_h;
+
+int noti_ex_event_info_create(noti_ex_event_info_h *handle,
+               noti_ex_event_info_type_e type, const char *owner,
+               const char *channel, const char *item_id);
+int noti_ex_event_info_destroy(noti_ex_event_info_h handle);
+int noti_ex_event_info_get_event_type(noti_ex_event_info_h handle, noti_ex_event_info_type_e *event_type);
+int noti_ex_event_info_get_owner(noti_ex_event_info_h handle, char **owner);
+int noti_ex_event_info_get_channel(noti_ex_event_info_h handle, char **channel);
+int noti_ex_event_info_get_item_id(noti_ex_event_info_h handle, char **item_id);
+int noti_ex_event_info_get_request_id(noti_ex_event_info_h handle, int *req_id);
+
+#ifdef __cplusplus
+}
+#endif
+#endif  // CAPI_NOTIFICATION_EX_EVENT_INFO_H_
diff --git a/notification-ex/api/notification_ex_group.h b/notification-ex/api/notification_ex_group.h
new file mode 100644 (file)
index 0000000..e7baea3
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2019 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 CAPI_NOTIFICATION_EX_GROUP_H_
+#define CAPI_NOTIFICATION_EX_GROUP_H_
+
+#include <notification_ex_item.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+int noti_ex_item_group_create(noti_ex_item_h *handle, const char *id);
+int noti_ex_item_group_set_direction(noti_ex_item_h handle, bool vertical);
+int noti_ex_item_group_is_vertical(noti_ex_item_h handle, bool *vertical);
+int noti_ex_item_group_get_app_label(noti_ex_item_h handle, char **label);
+int noti_ex_item_group_add_child(noti_ex_item_h handle, noti_ex_item_h child);
+int noti_ex_item_group_remove_child(noti_ex_item_h handle, const char *item_id);
+
+typedef int (*noti_ex_item_group_foreach_cb)(noti_ex_item_h handle, void *data);
+int noti_ex_item_group_foreach(noti_ex_item_group_foreach_cb callback, void *data);
+
+#ifdef __cplusplus
+}
+#endif
+#endif  // CAPI_NOTIFICATION_EX_GROUP_H_
diff --git a/notification-ex/api/notification_ex_image.h b/notification-ex/api/notification_ex_image.h
new file mode 100644 (file)
index 0000000..1aae9e1
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2019 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 CAPI_NOTIFICATION_EX_IMAGE_H_
+#define CAPI_NOTIFICATION_EX_IMAGE_H_
+
+#include <notification_ex_item.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+int noti_ex_item_image_create(noti_ex_item_h *handle, const char *id, const char *image_path);
+int noti_ex_item_image_get_image_path(noti_ex_item_h handle, char **image_path);
+
+#ifdef __cplusplus
+}
+#endif
+#endif  // CAPI_NOTIFICATION_EX_IMAGE_H_
diff --git a/notification-ex/api/notification_ex_input_selector.h b/notification-ex/api/notification_ex_input_selector.h
new file mode 100644 (file)
index 0000000..aab7fc8
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2019 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 CAPI_NOTIFICATION_EX_INPUT_SELECTOR_H_
+#define CAPI_NOTIFICATION_EX_INPUT_SELECTOR_H_
+
+#include <notification_ex_item.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+int noti_ex_item_input_selector_create(noti_ex_item_h *handle, const char *id);
+int noti_ex_item_input_selector_get_contents(noti_ex_item_h handle, char ***list, int *count);
+int noti_ex_item_input_selector_set_contents(const char **contents, int count);
+
+#ifdef __cplusplus
+}
+#endif
+#endif  // CAPI_NOTIFICATION_EX_INPUT_SELECTOR_H_
diff --git a/notification-ex/api/notification_ex_item.h b/notification-ex/api/notification_ex_item.h
new file mode 100644 (file)
index 0000000..e3db2bb
--- /dev/null
@@ -0,0 +1,143 @@
+/*
+ * Copyright (c) 2019 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 CAPI_NOTIFICATION_EX_ITEM_H_
+#define CAPI_NOTIFICATION_EX_ITEM_H_
+
+#include <bundle.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum _noti_ex_item_type {
+       NOTI_EX_ITEM_TYPE_NULL_OBJECT,
+       NOTI_EX_ITEM_TYPE_TEXT,
+       NOTI_EX_ITEM_TYPE_IMAGE,
+       NOTI_EX_ITEM_TYPE_ICON,
+       NOTI_EX_ITEM_TYPE_BUTTON,
+       NOTI_EX_ITEM_TYPE_CHAT_MESSAGE,
+       NOTI_EX_ITEM_TYPE_CHECKBOX,
+       NOTI_EX_ITEM_TYPE_ICON_TEXT,
+       NOTI_EX_ITEM_TYPE_INPUT_SELECTOR,
+       NOTI_EX_ITEM_TYPE_GROUP,
+       NOTI_EX_ITEM_TYPE_ENTRY,
+       NOTI_EX_ITEM_TYPE_PROGRESS,
+       NOTI_EX_ITEM_TYPE_TIME,
+       NOTI_EX_ITEM_TYPE_CUSTOM = 100
+} noti_ex_item_type_e;
+
+typedef enum _noti_ex_item_policy {
+       NOTI_EX_ITEM_POLICY_NONE = 0,
+       NOTI_EX_ITEM_POLICY_ON_BOOT_CLEAR = 1 << 0,
+       NOTI_EX_ITEM_POLICY_SIM_MODE = 1 << 1,
+} noti_ex_item_policy_e;
+
+typedef void* noti_ex_color_h;
+
+int noti_ex_color_create(noti_ex_color_h *handle, unsigned char a, unsigned char r, unsigned char g, unsigned char b);
+int noti_ex_color_destroy(noti_ex_color_h handle);
+int noti_ex_color_get_alpha(noti_ex_color_h handle, unsigned char *val);
+int noti_ex_color_get_red(noti_ex_color_h handle, unsigned char *val);
+int noti_ex_color_get_green(noti_ex_color_h handle, unsigned char *val);
+int noti_ex_color_get_blue(noti_ex_color_h handle, unsigned char *val);
+
+typedef void* noti_ex_padding_h;
+int noti_ex_padding_create(noti_ex_padding_h *handle, int left, int top, int right, int bottom);
+int noti_ex_padding_destroy(noti_ex_padding_h handle);
+int noti_ex_padding_get_left(noti_ex_padding_h handle, int *val);
+int noti_ex_padding_get_top(noti_ex_padding_h handle, int *val);
+int noti_ex_padding_get_right(noti_ex_padding_h handle, int *val);
+int noti_ex_padding_get_bottom(noti_ex_padding_h handle, int *val);
+
+typedef void* noti_ex_geometry_h;
+int noti_ex_geometry_create(noti_ex_geometry_h *handle, int x, int y, int w, int h);
+int noti_ex_geometry_destroy(noti_ex_geometry_h handle);
+int noti_ex_geometry_get_x(noti_ex_geometry_h handle, int *val);
+int noti_ex_geometry_get_y(noti_ex_geometry_h handle, int *val);
+int noti_ex_geometry_get_width(noti_ex_geometry_h handle, int *val);
+int noti_ex_geometry_get_height(noti_ex_geometry_h handle, int *val);
+
+typedef void* noti_ex_style_h;
+int noti_ex_style_create(noti_ex_style_h *handle, noti_ex_color_h color, noti_ex_padding_h padding, noti_ex_geometry_h geometry);
+int noti_ex_style_destroy(noti_ex_style_h handle);
+
+int noti_ex_style_get_padding(noti_ex_style_h handle, const noti_ex_padding_h *padding);
+int noti_ex_style_get_color(noti_ex_style_h handle, const noti_ex_color_h *color);
+int noti_ex_style_get_geometry(noti_ex_style_h handle, const noti_ex_geometry_h *geometry);
+
+typedef void* noti_ex_led_info_h;
+int noti_ex_led_info_create(noti_ex_led_info_h *handle, noti_ex_color_h color);
+int noti_ex_led_info_destroy(noti_ex_led_info_h handle);
+int noti_ex_led_info_set_on_period(noti_ex_led_info_h handle, int ms);
+int noti_ex_led_info_get_on_period(noti_ex_led_info_h handle, int *ms);
+int noti_ex_led_info_set_off_period(noti_ex_led_info_h handle, int ms);
+int noti_ex_led_info_get_off_period(noti_ex_led_info_h handle, int *ms);
+int noti_ex_led_info_get_color(noti_ex_led_info_h handle, noti_ex_color_h *color);
+
+typedef void* noti_ex_action_h;
+typedef void* noti_ex_item_h;
+typedef void* noti_ex_item_info_h;
+
+int noti_ex_action_destroy(noti_ex_action_h handle);
+int noti_ex_action_get_type(noti_ex_action_h handle, int *type);
+int noti_ex_action_is_local(noti_ex_action_h handle, bool *local);
+int noti_ex_action_execute(noti_ex_action_h handle, noti_ex_item_h item);
+int noti_ex_action_get_extra(noti_ex_action_h handle, char **extra);
+
+int noti_ex_item_info_get_hide_time(noti_ex_item_info_h handle, int *hide_time);
+int noti_ex_item_info_set_hide_time(noti_ex_item_info_h handle, int hide_time);
+int noti_ex_item_info_get_delete_time(noti_ex_item_info_h handle, int *delete_time);
+int noti_ex_item_info_set_delete_time(noti_ex_item_info_h handle, int delete_time);
+int noti_ex_item_info_get_time(noti_ex_item_info_h handle, time_t *time);
+
+int noti_ex_item_destroy(noti_ex_item_h handle);
+int noti_ex_item_find_by_id(noti_ex_item_h handle, const char *id, const noti_ex_item_h *item);
+int noti_ex_item_get_type(noti_ex_item_h handle, int *type);
+int noti_ex_item_get_shared_path(noti_ex_item_h handle, char ***path, int *count);
+int noti_ex_item_get_id(noti_ex_item_h handle, char **id);
+int noti_ex_item_set_id(noti_ex_item_h handle, const char *id);
+int noti_ex_item_get_action(noti_ex_item_h handle, noti_ex_action_h *action);
+int noti_ex_item_set_action(noti_ex_item_h handle, noti_ex_action_h action);
+int noti_ex_item_get_style(noti_ex_item_h handle, noti_ex_style_h *style);
+int noti_ex_item_set_style(noti_ex_item_h handle, noti_ex_style_h style);
+int noti_ex_item_set_visible(noti_ex_item_h handle, bool visible);
+int noti_ex_item_get_visible(noti_ex_item_h handle, bool *visible);
+int noti_ex_item_set_enable(noti_ex_item_h handle, bool enable);
+int noti_ex_item_get_enable(noti_ex_item_h handle, bool *enable);
+int noti_ex_item_add_receiver(noti_ex_item_h handle, const char *receiver_group);
+int noti_ex_item_remove_receiver(noti_ex_item_h handle, const char *receiver_group);
+int noti_ex_item_get_receiver_list(noti_ex_item_h handle, char ***list, int *count);
+int noti_ex_item_set_policy(noti_ex_item_h handle, int policy);
+int noti_ex_item_get_policy(noti_ex_item_h handle, int *policy);
+int noti_ex_item_get_channel(noti_ex_item_h handle, char **channel);
+int noti_ex_item_set_channel(noti_ex_item_h handle, const char *channel);
+int noti_ex_item_set_led_info(noti_ex_item_h handle, noti_ex_led_info_h led);
+int noti_ex_item_get_led_info(noti_ex_item_h handle, noti_ex_led_info_h *led);
+int noti_ex_item_set_sound_path(noti_ex_item_h handle, const char *path);
+int noti_ex_item_set_vibration_path(noti_ex_item_h handle, const char *path);
+int noti_ex_item_get_sound_path(noti_ex_item_h handle, char **path);
+int noti_ex_item_get_vibration_path(noti_ex_item_h handle, char **path);
+int noti_ex_item_get_info(noti_ex_item_h handle, noti_ex_item_info_h *info);
+int noti_ex_item_get_sender_app_id(noti_ex_item_h handle, char **id);
+int noti_ex_item_set_sender_app_id(noti_ex_item_h handle, const char *id);
+int noti_ex_item_get_tag(noti_ex_item_h handle, char **tag);
+int noti_ex_item_set_tag(noti_ex_item_h handle, const char *tag);
+
+#ifdef __cplusplus
+}
+#endif
+#endif  // CAPI_NOTIFICATION_EX_ITEM_H_
diff --git a/notification-ex/api/notification_ex_manager.h b/notification-ex/api/notification_ex_manager.h
new file mode 100644 (file)
index 0000000..a79d70e
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ * Copyright (c) 2019 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 CAPI_NOTIFICATION_EX_MANAGER_H_
+#define CAPI_NOTIFICATION_EX_MANAGER_H_
+
+#include <notification_ex_error.h>
+#include <notification_ex_item.h>
+#include <notification_ex_event_info.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef void (*noti_ex_manager_events_add_cb)(noti_ex_event_info_h info, noti_ex_item_h *added_item, int cnt, void *data);
+typedef void (*noti_ex_manager_events_update_cb)(noti_ex_event_info_h info, noti_ex_item_h updated_item, void *data);
+typedef void (*noti_ex_manager_events_delete_cb)(noti_ex_event_info_h info, noti_ex_item_h deleted_item, void *data);
+typedef void (*noti_ex_manager_events_error_cb)(noti_ex_error_e error, int req_id, void *data);
+typedef void (*noti_ex_manager_events_request_cb)(noti_ex_event_info_h info, noti_ex_item_h *items, int *cnt, void *data);
+
+typedef struct {
+       noti_ex_manager_events_add_cb added;
+       noti_ex_manager_events_update_cb updated;
+       noti_ex_manager_events_delete_cb deleted;
+       noti_ex_manager_events_error_cb error;
+       noti_ex_manager_events_request_cb requested;
+} noti_ex_manager_events_s;
+
+typedef void* noti_ex_manager_h;
+
+int noti_ex_manager_create(noti_ex_manager_h *handle, const char *receiver_group, noti_ex_manager_events_s ev, void *data);
+int noti_ex_manager_deatroy(noti_ex_manager_h handle);
+int noti_ex_manager_get(noti_ex_manager_h handle, noti_ex_item_h *items, int *cnt);
+int noti_ex_manager_update(noti_ex_manager_h handle, noti_ex_item_h noti);
+int noti_ex_manager_delete(noti_ex_manager_h handle, noti_ex_item_h noti);
+int noti_ex_manager_delete_all(noti_ex_manager_h handle);
+int noti_ex_manager_hide(noti_ex_manager_h handle, noti_ex_item_h noti);
+int noti_ex_manager_find_by_root_id(noti_ex_manager_h handle, const char *id, noti_ex_item_h *item);
+int noti_ex_manager_send_event(noti_ex_manager_h handle, noti_ex_event_info_h info, noti_ex_item_h noti);
+int noti_ex_manager_send_error(noti_ex_manager_h handle, noti_ex_event_info_h info, noti_ex_error_e error);
+int noti_ex_manager_get_count(noti_ex_manager_h handle, int *cnt);
+
+#ifdef __cplusplus
+}
+#endif
+#endif  // CAPI_NOTIFICATION_EX_MANAGER_H_
diff --git a/notification-ex/api/notification_ex_progress.h b/notification-ex/api/notification_ex_progress.h
new file mode 100644 (file)
index 0000000..527db3c
--- /dev/null
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2019 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 CAPI_NOTIFICATION_EX_PROGRESS_H_
+#define CAPI_NOTIFICATION_EX_PROGRESS_H_
+
+#include <notification_ex_item.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+int noti_ex_item_progress_create(noti_ex_item_h *handle, const char *id, float min, float current, float max);
+int noti_ex_item_progress_get_current(noti_ex_item_h handle, float *current);
+int noti_ex_item_progress_set_current(noti_ex_item_h handle, float current);
+int noti_ex_item_progress_get_min(noti_ex_item_h handle, float *min);
+int noti_ex_item_progress_get_max(noti_ex_item_h handle, float *max);
+
+#ifdef __cplusplus
+}
+#endif
+#endif  // CAPI_NOTIFICATION_EX_PROGRESS_H_
diff --git a/notification-ex/api/notification_ex_reporter.h b/notification-ex/api/notification_ex_reporter.h
new file mode 100644 (file)
index 0000000..a72e1e3
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2019 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 CAPI_NOTIFICATION_EX_REPORTER_H_
+#define CAPI_NOTIFICATION_EX_REPORTER_H_
+
+#include <notification_ex_error.h>
+#include <notification_ex_item.h>
+#include <notification_ex_event_info.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef void (*noti_ex_reporter_events_error_cb)(noti_ex_error_e err, int requestId, void *data);
+typedef void (*noti_ex_reporter_events_event_cb)(noti_ex_event_info_h info, const noti_ex_item_h* items, int cnt, void *data);
+
+typedef void* noti_ex_reporter_h;
+int noti_ex_reporter_create(noti_ex_reporter_h *handle,
+               noti_ex_reporter_events_error_cb err, noti_ex_reporter_events_event_cb ev, void *data);
+int noti_ex_reporter_destroy(noti_ex_reporter_h handle);
+
+int noti_ex_reporter_send_event(noti_ex_reporter_h handle, noti_ex_event_info_h info, noti_ex_item_h noti);
+int noti_ex_reporter_send_error(noti_ex_reporter_h handle, noti_ex_event_info_h info, noti_ex_error_e error);
+int noti_ex_reporter_post(noti_ex_reporter_h handle, noti_ex_item_h noti);
+int noti_ex_reporter_post_list(noti_ex_reporter_h handle, noti_ex_item_h *notiList, int cnt);
+int noti_ex_reporter_update(noti_ex_reporter_h handle, noti_ex_item_h noti);
+int noti_ex_reporter_delete(noti_ex_reporter_h handle, noti_ex_item_h noti);
+int noti_ex_reporter_delete_all(noti_ex_reporter_h handle);
+int noti_ex_reporter_find_by_root_id(noti_ex_reporter_h handle, const char *id, const noti_ex_item_h *item);
+
+#ifdef __cplusplus
+}
+#endif
+#endif  // CAPI_NOTIFICATION_EX_REPORTER_H_
diff --git a/notification-ex/api/notification_ex_text.h b/notification-ex/api/notification_ex_text.h
new file mode 100644 (file)
index 0000000..cc7ce9c
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2019 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 CAPI_NOTIFICATION_EX_TEXT_H_
+#define CAPI_NOTIFICATION_EX_TEXT_H_
+
+#include <notification_ex_item.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+int noti_ex_item_text_create(noti_ex_item_h *handle, const char *id, const char *text, const char *hyper_link);
+int noti_ex_item_text_set_contents(noti_ex_item_h handle, const char *contents);
+int noti_ex_item_text_get_contents(noti_ex_item_h handle, char **contents);
+int noti_ex_item_text_get_hyper_link(noti_ex_item_h handle, char **hyper_link);
+
+#ifdef __cplusplus
+}
+#endif
+#endif  // CAPI_NOTIFICATION_EX_TEXT_H_
diff --git a/notification-ex/api/notification_ex_time.h b/notification-ex/api/notification_ex_time.h
new file mode 100644 (file)
index 0000000..16a1aaf
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2019 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 CAPI_NOTIFICATION_EX_TIME_H_
+#define CAPI_NOTIFICATION_EX_TIME_H_
+
+#include <notification_ex_item.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+int noti_ex_item_time_create(noti_ex_item_h *handle, const char *id, time_t time);
+int noti_ex_item_time_get_time(noti_ex_item_h handle, time_t *time);
+
+#ifdef __cplusplus
+}
+#endif
+#endif  // CAPI_NOTIFICATION_EX_TIME_H_
diff --git a/notification-ex/api/notification_ex_visibility_action.h b/notification-ex/api/notification_ex_visibility_action.h
new file mode 100644 (file)
index 0000000..2170faf
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2019 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 CAPI_NOTIFICATION_EX_VISIBILITY_ACTION_H_
+#define CAPI_NOTIFICATION_EX_VISIBILITY_ACTION_H_
+
+#include <stdbool.h>
+#include <notification_ex_item.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+int noti_ex_action_visibility_create(noti_ex_action_h *handle, const char *extra);
+int noti_ex_action_visibility_set(noti_ex_action_h handle, const char *id, bool visible);
+
+#ifdef __cplusplus
+}
+#endif
+#endif  // CAPI_NOTIFICATION_EX_VISIBILITY_ACTION_H_
index e51c660..e44580f 100644 (file)
@@ -7,5 +7,5 @@ Name: notification-ex
 Description: Support development of the notification
 Version: @VERSION@
 Libs: -L${libdir} -lnotification-ex
-Cflags: -I${includedir}
+Cflags: -I${includedir} -I${includedir}/api
 cppflags: -I${includedir}
diff --git a/notification-ex/stub.cc b/notification-ex/stub.cc
new file mode 100644 (file)
index 0000000..d779e4d
--- /dev/null
@@ -0,0 +1,110 @@
+/*
+ * Copyright (c) 2019 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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.
+ */
+
+#include <dlog.h>
+#include <glib.h>
+#include <unistd.h>
+
+#include <list>
+
+#include "api/notification_ex_app_control_action.h"
+#include "api/notification_ex_button.h"
+#include "api/notification_ex_chat_message.h"
+#include "api/notification_ex_checkbox.h"
+#include "api/notification_ex_entry.h"
+#include "api/notification_ex_event_info.h"
+#include "api/notification_ex_group.h"
+#include "api/notification_ex_image.h"
+#include "api/notification_ex_input_selector.h"
+#include "api/notification_ex_item.h"
+#include "api/notification_ex_manager.h"
+#include "api/notification_ex_progress.h"
+#include "api/notification_ex_reporter.h"
+#include "api/notification_ex_text.h"
+#include "api/notification_ex_time.h"
+#include "api/notification_ex_visibility_action.h"
+#include "notification-ex/reporter.h"
+
+#ifdef LOG_TAG
+#undef LOG_TAG
+#endif
+#define LOG_TAG "NOTIFICATION_EX"
+
+#ifdef EXPORT_API
+#undef EXPORT_API
+#endif
+#define EXPORT_API __attribute__((visibility("default")))
+
+using namespace std;
+using namespace notification::item;
+
+extern "C" EXPORT_API int noti_ex_action_app_control_create(
+    noti_ex_action_h *handle, app_control_h app_control,
+    const char *extra) {
+  return 0;
+}
+
+extern "C" EXPORT_API int noti_ex_action_app_control_set(
+    noti_ex_action_h handle, app_control_h app_control) {
+  return 0;
+}
+
+extern "C" EXPORT_API int noti_ex_action_app_control_get(
+    noti_ex_action_h handle, app_control_h *app_control) {
+  return 0;
+}
+
+extern "C" EXPORT_API int noti_ex_item_button_create(noti_ex_item_h *handle,
+    const char *id, const char *title) {
+  return 0;
+}
+
+extern "C" EXPORT_API int noti_ex_item_button_get_title(noti_ex_item_h handle,
+    char **title) {
+  return 0;
+}
+
+extern "C" EXPORT_API int noti_ex_item_chat_message_create(
+    noti_ex_item_h *handle, const char *id, noti_ex_item_h name,
+    noti_ex_item_h text, noti_ex_item_h image, noti_ex_item_h time,
+    noti_ex_item_chat_message_type_e message_type) {
+  return 0;
+}
+
+extern "C" EXPORT_API int noti_ex_item_chat_message_get_name(
+    const noti_ex_item_h *text) {
+  return 0;
+}
+
+extern "C" EXPORT_API int noti_ex_item_chat_message_get_text(
+    const noti_ex_item_h *text) {
+  return 0;
+}
+
+extern "C" EXPORT_API int noti_ex_item_chat_message_get_image(
+    const noti_ex_item_h *image) {
+  return 0;
+}
+
+extern "C" EXPORT_API int noti_ex_item_chat_message_get_time(
+    const noti_ex_item_h *time) {
+  return 0;
+}
+
+extern "C" EXPORT_API int noti_ex_item_chat_message_get_message_type(
+    noti_ex_item_chat_message_type_e *message_type) {
+  return 0;
+}
index 9455aa2..cc0f80b 100644 (file)
@@ -143,7 +143,7 @@ Header & package configuration files to support development of the notification.
 %license LICENSE
 
 %files -n %{name}-ex-devel
-%{_includedir}/notification-ex/*.h
+%{_includedir}/notification-ex/*
 %{_libdir}/pkgconfig/notification-ex.pc
 %attr(0644,root,root) %{_libdir}/libnotification-ex.so
 
index 5af53a6..bb59627 100644 (file)
@@ -20,6 +20,7 @@ SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
 SET(CMAKE_CXX_FLAGS_RELEASE "-O2")
 
 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../notification-ex)
+INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../notification-ex/api)
 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../unittest/mock)
 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../)