add tv profile in 4.0 12/113112/9
authorJeesun Kim <iamjs.kim@samsung.com>
Mon, 6 Feb 2017 01:59:27 +0000 (10:59 +0900)
committerjeesun kim <iamjs.kim@samsung.com>
Wed, 15 Feb 2017 06:58:46 +0000 (22:58 -0800)
Change-Id: I1dc1b642423d3469ad2fc10941c6979ae4a8b074

19 files changed:
client/CMakeLists.txt
include/calendar_db.h
include/calendar_errors.h
include/calendar_filter.h
include/calendar_list.h
include/calendar_query.h
include/calendar_record.h
include/calendar_reminder.h
include/calendar_service.h
include/calendar_types.h
include/calendar_vcalendar.h
packaging/calendar-service.spec
packaging/dummy_account.h [new file with mode: 0644]
packaging/dummy_contacts.h [new file with mode: 0644]
server/CMakeLists.txt
server/cal_server_account.c
server/cal_server_contacts.c
server/cal_server_profile.c [new file with mode: 0644]
server/cal_server_profile.h [new file with mode: 0644]

index 3567dd1..131aeb7 100644 (file)
@@ -17,7 +17,6 @@ pkg_check_modules(client_pkgs REQUIRED
        sqlite3
        alarm-service
        icu-i18n
-       contacts-service2
        libtzplatform-config
        dlog
        capi-base-common
index 57521f6..c9d984f 100644 (file)
@@ -37,7 +37,7 @@ extern "C" {
 
 /**
  * @brief Called when a designated view changes.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @param[in] view_uri The view URI
  * @param[in] user_data The user data passed from the callback registration function
  * @see calendar_db_add_changed_cb()
@@ -47,7 +47,7 @@ typedef void (*calendar_db_changed_cb)(const char* view_uri, void* user_data);
 
 /**
  * @brief Inserts a record into the calendar database.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @privlevel public
  * @privilege %http://tizen.org/privilege/calendar.write
  * @param[in] record The record handle
@@ -75,7 +75,7 @@ int calendar_db_insert_record(calendar_record_h record, int* record_id);
  * @brief Gets a record from the calendar database.
  * @details This function creates a new record handle from the calendar database by the given @a record_id. \n
  *          @a record will be created and filled with record information.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @privlevel public
  * @privilege %http://tizen.org/privilege/calendar.read
  * @remarks You must release @a record using calendar_record_destroy().
@@ -103,7 +103,7 @@ int calendar_db_get_record(const char* view_uri, int record_id, calendar_record_
 
 /**
  * @brief Updates a record in the calendar database.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @privlevel public
  * @privilege %http://tizen.org/privilege/calendar.write
  * @param[in] record The record handle
@@ -129,7 +129,7 @@ int calendar_db_update_record(calendar_record_h record);
 
 /**
  * @brief Deletes a record from the calendar database with related child records.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @privlevel public
  * @privilege %http://tizen.org/privilege/calendar.write
  * @param[in] view_uri The view URI of a record
@@ -154,7 +154,7 @@ int calendar_db_delete_record(const char* view_uri, int record_id);
 
 /**
  * @brief Retrieves all records as a list.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @privlevel public
  * @privilege %http://tizen.org/privilege/calendar.read
  * @remarks You must release @a record_list using calendar_list_destroy().
@@ -181,7 +181,7 @@ int calendar_db_get_all_records(const char* view_uri, int offset, int limit, cal
 
 /**
  * @brief Retrieves records using a query handle.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @privlevel public
  * @privilege %http://tizen.org/privilege/calendar.read
  * @remarks You must release @a record_list using calendar_list_destroy().
@@ -208,7 +208,7 @@ int calendar_db_get_records_with_query(calendar_query_h query, int offset, int l
 
 /**
  * @brief Gets the record count of a specific view.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @privlevel public
  * @privilege %http://tizen.org/privilege/calendar.read
  * @param[in] view_uri The view URI to get records from
@@ -231,7 +231,7 @@ int calendar_db_get_count(const char* view_uri, int *count);
 
 /**
  * @brief Gets the record count with a query handle.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @privlevel public
  * @privilege %http://tizen.org/privilege/calendar.read
  * @param[in] query The query handle used for filtering the results
@@ -254,7 +254,7 @@ int calendar_db_get_count_with_query(calendar_query_h query, int *count);
 
 /**
  * @brief Inserts multiple records into the calendar database as a batch operation.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @privlevel public
  * @privilege %http://tizen.org/privilege/calendar.write
  * @param[in] record_list The record list handle
@@ -281,7 +281,7 @@ int calendar_db_insert_records(calendar_list_h record_list, int** record_id_arra
 
 /**
  * @brief Updates multiple records into the calendar database as a batch operation.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @privlevel public
  * @privilege %http://tizen.org/privilege/calendar.write
  * @param[in] record_list The record list handle
@@ -306,7 +306,7 @@ int calendar_db_update_records(calendar_list_h record_list);
 
 /**
  * @brief Deletes multiple records with related child records from the calendar database as a batch operation.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @privlevel public
  * @privilege %http://tizen.org/privilege/calendar.write
  * @param[in] view_uri The view URI of the records to delete
@@ -333,7 +333,7 @@ int calendar_db_delete_records(const char* view_uri, int record_id_array[], int
 
 /**
  * @brief Gets the current calendar database version.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @privlevel public
  * @privilege %http://tizen.org/privilege/calendar.read
  * @param[out] calendar_db_version The calendar database version
@@ -354,7 +354,7 @@ int calendar_db_get_current_version(int* calendar_db_version);
 
 /**
  * @brief Registers a callback function to be invoked when a record changes.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @privlevel public
  * @privilege %http://tizen.org/privilege/calendar.read
  * @remarks If successive change notification produced on the view_uri are identical,
@@ -384,7 +384,7 @@ int calendar_db_add_changed_cb(const char* view_uri, calendar_db_changed_cb call
 
 /**
  * @brief Unregisters a callback function.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @privlevel public
  * @privilege %http://tizen.org/privilege/calendar.read
  * @param[in] view_uri The view URI of the record to subscribe for change notifications
@@ -407,7 +407,7 @@ int calendar_db_remove_changed_cb(const char* view_uri, calendar_db_changed_cb c
 /**
  * @brief Retrieves records with the given calendar database version.
  * @details This function finds all the changed records since the given @a calendar_db_version.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @privlevel public
  * @privilege %http://tizen.org/privilege/calendar.read
  * @remarks You must release @a change_record_list using calendar_list_destroy().
@@ -434,7 +434,7 @@ int calendar_db_get_changes_by_version(const char* view_uri, int calendar_book_i
 
 /**
  * @brief Inserts a vcalendar stream into the calendar database.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @privlevel public
  * @privilege %http://tizen.org/privilege/calendar.write
  * @param[in] vcalendar_stream The vcalendar stream
@@ -460,7 +460,7 @@ int calendar_db_insert_vcalendars(const char* vcalendar_stream, int **record_id_
 
 /**
  * @brief Replaces a vcalendar stream in the calendar database.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @privlevel public
  * @privilege %http://tizen.org/privilege/calendar.write
  * @param[in] vcalendar_stream The vcalendar stream
@@ -486,7 +486,7 @@ int calendar_db_replace_vcalendars(const char* vcalendar_stream, int *record_id_
 
 /**
  * @brief Replaces a record in the calendar database.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @privlevel public
  * @privilege %http://tizen.org/privilege/calendar.write
  * @param[in] record The record handle
@@ -512,7 +512,7 @@ int calendar_db_replace_record(calendar_record_h record, int record_id);
 
 /**
  * @brief Replaces multiple records in the calendar database as a batch operation.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @privlevel public
  * @privilege %http://tizen.org/privilege/calendar.write
  * @param[in] record_list The record list handle
@@ -539,7 +539,7 @@ int calendar_db_replace_records(calendar_list_h record_list, int *record_id_arra
 
 /**
  * @brief Gets the last successful change version of the database on the current connection.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @privlevel public
  * @privilege %http://tizen.org/privilege/calendar.read
  * @param[out] last_change_version The calendar database version on the current connection
@@ -559,7 +559,7 @@ int calendar_db_get_last_change_version(int* last_change_version);
  * @brief Retrieves changed exception records since the given calendar database version.
  *        Exceptions are the modified or deleted instances in a recurring event.
  * @details This function finds all the changed records since the given @a calendar_db_version.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @privlevel public
  * @privilege %http://tizen.org/privilege/calendar.read
  * @remarks You must release @a change_record_list using calendar_list_destroy().
@@ -584,7 +584,7 @@ int calendar_db_get_changes_exception_by_version(const char* view_uri, int origi
 
 /**
  * @brief Cleans the data after sync.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @privlevel public
  * @privilege %http://tizen.org/privilege/calendar.write
  * @param[in] calendar_book_id The calendar book ID
index f050dd8..717fba8 100644 (file)
@@ -37,7 +37,7 @@ extern "C" {
 
 /**
  * @brief Enumeration for calendar errors.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  */
 typedef enum {
        CALENDAR_ERROR_NONE = TIZEN_ERROR_NONE, /**< Successful */
index 58b02bc..7f0a21a 100644 (file)
@@ -37,7 +37,7 @@ extern "C" {
 
 /**
  * @brief Creates a filter handle.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @remarks You must release @a filter using calendar_filter_destroy().
  * @param[in] view_uri The view URI of a filter
  * @param[out] filter The filter handle
@@ -54,7 +54,7 @@ int calendar_filter_create(const char* view_uri, calendar_filter_h* filter);
 
 /**
  * @brief Destroys a filter handle.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @param[in] filter The filter handle
  * @return @c 0 on success,
  *         otherwise a negative error value
@@ -67,7 +67,7 @@ int   calendar_filter_destroy(calendar_filter_h filter);
 
 /**
  * @brief Adds a condition for the string type property.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @param[in] filter The filter handle
  * @param[in] property_id The property ID to add a condition
  * @param[in] match The match flag
@@ -83,7 +83,7 @@ int   calendar_filter_add_str(calendar_filter_h filter, unsigned int property_id,
 
 /**
  * @brief Adds a condition for the integer type property.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @param[in] filter The filter handle
  * @param[in] property_id The property ID to add a condition
  * @param[in] match The match flag
@@ -99,7 +99,7 @@ int   calendar_filter_add_int(calendar_filter_h filter, unsigned int property_id,
 
 /**
  * @brief Adds a condition for the double type property.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @param[in] filter The filter handle
  * @param[in] property_id The property ID to add a condition
  * @param[in] match The match flag
@@ -115,7 +115,7 @@ int calendar_filter_add_double(calendar_filter_h filter, unsigned int property_i
 
 /**
  * @brief Adds a condition for the long long int type property.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @param[in] filter The filter handle
  * @param[in] property_id The property ID to add a condition
  * @param[in] match The match flag
@@ -131,7 +131,7 @@ int calendar_filter_add_lli(calendar_filter_h filter, unsigned int property_id,
 
 /**
  * @brief Adds a condition for the calendar_time_s type property.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @param[in] filter The filter handle
  * @param[in] property_id The property ID to add a condition
  * @param[in] match The match flag
@@ -147,7 +147,7 @@ int calendar_filter_add_caltime(calendar_filter_h filter, unsigned int property_
 
 /**
  * @brief Adds a child filter to a parent filter.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @param[in] parent_filter The parent filter handle
  * @param[in] child_filter The child filter handle
  * @return @c 0 on success,
@@ -161,7 +161,7 @@ int calendar_filter_add_filter(calendar_filter_h parent_filter, calendar_filter_
 
 /**
  * @brief Adds an operator between conditions.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @param[in] filter The filter handle
  * @param[in] operator_type The operator type
  * @return @c 0 on success,
index 8f734f2..fa41944 100644 (file)
@@ -33,7 +33,7 @@ extern "C" {
 
 /**
  * @brief Creates a calendar list handle.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @remarks You must release @a calendar_list using calendar_list_destroy().
  * @param[out] out_list The calendar list handle
  * @return @c 0 on success,
@@ -48,7 +48,7 @@ int calendar_list_create(calendar_list_h* out_list);
 
 /**
  * @brief Destroys a calendar list handle and releases all its resources.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @param[in] list The calendar list handle
  * @param[in] delete_record If @c true, child records are destroyed automatically,
  *                          otherwise @c false
@@ -63,7 +63,7 @@ int calendar_list_destroy(calendar_list_h list, bool delete_record);
 
 /**
  * @brief Retrieves the number of calendar entities in a calendar list.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @param[in] list The calendar list handle
  * @param[out] count The count of the calendar entity
  * @return @c 0 on success,
@@ -77,7 +77,7 @@ int calendar_list_get_count(calendar_list_h list, int *count);
 
 /**
  * @brief Adds a record to the calendar list.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @param[in] list The calendar list handle
  * @param[in] record The record handle
  * @return @c 0 on success,
@@ -93,7 +93,7 @@ int calendar_list_add(calendar_list_h list, calendar_record_h record);
  * @brief Removes a record from the calendar list.
  * @details If the record is the current record, then the current record is changed to the next record.\n
  *          If the record is the last record then the current record will be @c NULL.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @param[in] list The calendar list handle
  * @param[in] record The record handle
  * @return @c 0 on success,
@@ -109,7 +109,7 @@ int calendar_list_remove(calendar_list_h list, calendar_record_h record);
 /**
  * @brief Retrieves a record from the calendar list.
  * @details The default current record is the first record.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @remarks You MUST NOT destroy the @a record handle.
  *          It is destroyed automatically when the @a list is destroyed.
  * @param[in] list The calendar list handle
@@ -125,7 +125,7 @@ int calendar_list_get_current_record_p(calendar_list_h list, calendar_record_h*
 
 /**
  * @brief Moves a calendar list to the previous position.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @param[in] list The calendar list handle
  * @return @c 0 on success,
  *         otherwise a negative error value
@@ -139,7 +139,7 @@ int calendar_list_prev(calendar_list_h list);
 
 /**
  * @brief Moves a calendar list to the next position.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @param[in] list The calendar list handle
  * @return @c 0 on success,
  *         otherwise a negative error value
@@ -153,7 +153,7 @@ int calendar_list_next(calendar_list_h list);
 
 /**
  * @brief Moves a calendar list to the first position.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @param[in] list The calendar list handle
  * @return @c 0 on success,
  *         otherwise a negative error value
@@ -166,7 +166,7 @@ int calendar_list_first(calendar_list_h list);
 
 /**
  * @brief Moves a calendar list to the last position.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @param[in] list The calendar list handle
  * @return @c 0 on success,
  *         otherwise a negative error value
index 3b2bb6f..a204808 100644 (file)
@@ -37,7 +37,7 @@ extern "C" {
 
 /**
  * @brief Creates a query handle.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @remarks You must release @a query using calendar_query_destroy().
  * @param[in] view_uri The view URI of a query
  * @param[out] query The filter handle
@@ -54,7 +54,7 @@ int calendar_query_create(const char* view_uri, calendar_query_h* query);
 
 /**
  * @brief Destroys a query handle.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @param[in] query The query handle
  * @return @c 0 on success,
  *         otherwise a negative error value
@@ -68,7 +68,7 @@ int calendar_query_destroy(calendar_query_h query);
 /**
  * @brief Adds property IDs for projection.
  * @details Property IDs can be of one of the properties of view_uri which is used in calendar_query_create().
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @param[in] query The query handle
  * @param[in] property_id_array The property ID array
  * @param[in] count The number of property IDs
@@ -82,7 +82,7 @@ int calendar_query_set_projection(calendar_query_h query, unsigned int property_
 
 /**
  * @brief Sets the "distinct" option for projection.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @param[in] query The query handle
  * @param[in] set If @c true it is set,
  *                otherwise if @c false it is unset
@@ -96,7 +96,7 @@ int calendar_query_set_distinct(calendar_query_h query, bool set);
 
 /**
  * @brief Sets the filter for a query.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @param[in] query The query handle
  * @param[in] filter The filter handle
  * @return @c 0 on success,
@@ -111,7 +111,7 @@ int calendar_query_set_filter(calendar_query_h query, calendar_filter_h filter);
 
 /**
  * @brief Sets the sort mode for a query.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @param[in] query The query handle
  * @param[in] property_id The property ID to sort
  * @param[in] is_ascending If @c true it sorts in the ascending order,
index c03c00d..27cf8f9 100644 (file)
@@ -37,7 +37,7 @@ extern "C" {
 
 /**
  * @brief Creates a record handle.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @remarks You must release @a record using calendar_record_destroy().
  * @param[in] view_uri The view URI
  * @param[out] out_record The record handle
@@ -55,7 +55,7 @@ int calendar_record_create(const char* view_uri, calendar_record_h* out_record);
 
 /**
  * @brief Destroys a record handle and releases all its resources.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @param[in] record The record handle
  * @param[in] delete_child If @c true, child records are destroyed automatically,
  *                         otherwise @c false
@@ -71,7 +71,7 @@ int calendar_record_destroy(calendar_record_h record, bool delete_child);
 
 /**
  * @brief Makes a clone of a record handle.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @remarks You must release @a cloned_record using calendar_record_destroy().
  * @param[in] record The record handle
  * @param[out] out_record The cloned record handle
@@ -87,7 +87,7 @@ int calendar_record_clone(calendar_record_h record, calendar_record_h* out_recor
 
 /**
  * @brief Gets a URI string from a record.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @param[in] record The record handle
  * @param[out] uri The URI of the record
  * @return @c 0 on success,
@@ -100,7 +100,7 @@ int calendar_record_get_uri_p(calendar_record_h record, char** uri);
 
 /**
  * @brief Gets a string from a record.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @remarks You must release @a value using free().
  * @param[in] record The record handle
  * @param[in] property_id The property ID
@@ -118,7 +118,7 @@ int calendar_record_get_str(calendar_record_h record, unsigned int property_id,
 
 /**
  * @brief Gets a string pointer from a record.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @remarks You MUST NOT release @a value.
  * @param[in] record The record handle
  * @param[in] property_id The property ID
@@ -136,7 +136,7 @@ int calendar_record_get_str_p(calendar_record_h record, unsigned int property_id
 
 /**
  * @brief Gets an integer value from a record.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @param[in] record The record handle
  * @param[in] property_id The property ID
  * @param[out] out_value The result value
@@ -152,7 +152,7 @@ int calendar_record_get_int(calendar_record_h record, unsigned int property_id,
 
 /**
  * @brief Gets a double value from a record.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @param[in] record The record handle
  * @param[in] property_id The property ID
  * @param[out] out_value The result value
@@ -168,7 +168,7 @@ int calendar_record_get_double(calendar_record_h record, unsigned int property_i
 
 /**
  * @brief Gets a long long integer value from a record.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @param[in] record The record handle
  * @param[in] property_id The property ID
  * @param[out] out_value The result value
@@ -184,7 +184,7 @@ int calendar_record_get_lli(calendar_record_h record, unsigned int property_id,
 
 /**
  * @brief Gets a calendar_caltime_s value from a record.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @param[in] record The record handle
  * @param[in] property_id The property ID
  * @param[out] out_value The result value
@@ -200,7 +200,7 @@ int calendar_record_get_caltime(calendar_record_h record, unsigned int property_
 
 /**
  * @brief Sets a string to a record.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @param[in] record The record handle
  * @param[in] property_id The property ID
  * @param[in] value The value to be set
@@ -217,7 +217,7 @@ int calendar_record_set_str(calendar_record_h record, unsigned int property_id,
 
 /**
  * @brief Sets an integer value to a record.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @param[in] record The record handle
  * @param[in] property_id The property ID
  * @param[in] value The value to be set
@@ -233,7 +233,7 @@ int calendar_record_set_int(calendar_record_h record, unsigned int property_id,
 
 /**
  * @brief Sets a double value to a record.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @param[in] record The record handle
  * @param[in] property_id The property ID
  * @param[in] value The value to be set
@@ -249,7 +249,7 @@ int calendar_record_set_double(calendar_record_h record, unsigned int property_i
 
 /**
  * @brief Sets a long long integer value to a record.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @param[in] record The record handle
  * @param[in] property_id The property ID
  * @param[in] value The value to be set
@@ -265,7 +265,7 @@ int calendar_record_set_lli(calendar_record_h record, unsigned int property_id,
 
 /**
  * @brief Sets a calendar_time_s value to a record.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @param[in] record The record handle
  * @param[in] property_id The property ID
  * @param[in] value The value to be set
@@ -281,7 +281,7 @@ int calendar_record_set_caltime(calendar_record_h record, unsigned int property_
 
 /**
  * @brief Adds a child record to the parent record.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @param[in] record The parent record handle
  * @param[in] property_id The property ID
  * @param[in] child_record The handle of the child record to be added to the parent record
@@ -297,7 +297,7 @@ int calendar_record_add_child_record(calendar_record_h record, unsigned int prop
 
 /**
  * @brief Removes a child record from the parent record.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @param[in] record The parent record handle
  * @param[in] property_id The property ID
  * @param[in] child_record The handle of the child record to be removed from the parent record
@@ -313,7 +313,7 @@ int calendar_record_remove_child_record(calendar_record_h record, unsigned int p
 
 /**
  * @brief Gets the number of child records in a record.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @param[in] record The parent record handle
  * @param[in] property_id The property ID
  * @param[out] count The child record count
@@ -330,7 +330,7 @@ int calendar_record_get_child_record_count(calendar_record_h record, unsigned in
 
 /**
  * @brief Gets a child record handle pointer from the parent record.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @remarks You MUST NOT release @a child_record. \n
  *          It is released when the parent record handle is destroyed.
  * @param[in] record The record handle
@@ -351,7 +351,7 @@ int calendar_record_get_child_record_at_p(calendar_record_h record, unsigned int
 
 /**
  * @brief Makes a clone of a given record's child record list.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @remarks You must release @a cloned_list using calendar_list_destroy().
  * @param[in] record The record handle
  * @param[in] property_id The property ID
index 4902773..6689f62 100644 (file)
@@ -37,7 +37,7 @@ extern "C" {
 
 /**
  * @brief Called when an alarm is alerted.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @param[in] param Value string like id=value&time=value&tick=value&unit=value&type=value
  * @param[in] user_data The user data passed from the callback registration function
  * @see calendar_reminder_add_cb()
@@ -47,7 +47,7 @@ typedef void (*calendar_reminder_cb)(const char *param, void* user_data);
 
 /**
  * @brief Adds a callback to get a notification when an alarm gives an alert.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @privlevel public
  * @privilege %http://tizen.org/privilege/calendar.read
  * @param[in] callback The callback to be added
@@ -65,7 +65,7 @@ int calendar_reminder_add_cb(calendar_reminder_cb callback, void *user_data);
 
 /**
  * @brief Removes a callback to get a notification when an alarm gives an alert.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @param[in] callback The callback to be removed
  * @param[in] user_data The user data
  * @return @c 0 on success,
index 9fcfdde..85a654a 100644 (file)
@@ -40,7 +40,7 @@ extern "C" {
 
 /**
  * @brief Connects to the calendar service.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @remarks Opening the connection is necessary to access the calendar database and perform operations such as fetching, inserting, or updating records.\n
  *          The execution of calendar_connect() and calendar_disconnect() could slow down your application, so you are recommended not to call them frequently.
  * @return @c 0 on success,
@@ -60,7 +60,7 @@ int calendar_connect(void);
 
 /**
  * @brief Disconnects from the calendar service.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @remarks If there is no open connection, this function returns #CALENDAR_ERROR_DB_FAILED.
  * @return @c 0 on success,
  *         otherwise a negative error value
@@ -75,7 +75,7 @@ int calendar_disconnect(void);
 
 /**
  * @brief Connects to the calendar service on a thread.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @remarks Opening a connection is necessary to access the calendar database and perform operations such as fetching, inserting, or updating records.\n
  *          On a thread environment with calendar_connect(), request in one thread could fail, while another request connection is working in the other thread.
  *          To prevent request failure, calendar_connect_on_thread() is recommended.
@@ -91,7 +91,7 @@ int calendar_connect_on_thread(void);
 
 /**
  * @brief Disconnects from the calendar service on a thread.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @remarks If there is no open connection, this function returns #CALENDAR_ERROR_DB_FAILED.
  * @return @c 0 on success,
  *         otherwise a negative error value
@@ -106,7 +106,7 @@ int calendar_disconnect_on_thread(void);
 
 /**
  * @brief Connects to the calendar service.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @remarks Opening a connection is necessary to access the calendar database and perform operations such as fetching, inserting, or updating records.\n
  *          Before the calendar-service daemon is ready, if you call calendar_connect(), it could fail.
  *          It is recommended to call this API with #CALENDAR_CONNECT_FLAG_RETRY flags in such a situation.
index c249165..3cbb7ba 100644 (file)
@@ -72,63 +72,63 @@ _CALENDAR_HANDLE(calendar_h)
 
 /**
  * @brief Definition for a calendar connect flag.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  */
 #define CALENDAR_CONNECT_FLAG_NONE         0x00000000
 
 
 /**
  * @brief Definition for a calendar connect flag.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  */
 #define CALENDAR_CONNECT_FLAG_RETRY        0x00000001
 
 
 /**
  * @brief Definition for a default event calendar book database ID.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  */
 #define DEFAULT_EVENT_CALENDAR_BOOK_ID           1
 
 
 /**
  * @brief Definition for a default to-do calendar book database ID.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  */
 #define DEFAULT_TODO_CALENDAR_BOOK_ID            2
 
 
 /**
  * @brief Definition for a default birthday calendar book database ID.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  */
 #define DEFAULT_BIRTHDAY_CALENDAR_BOOK_ID        3
 
 
 /**
  * @brief Definition for no due date of a to-do.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  */
 #define CALENDAR_TODO_NO_DUE_DATE   INT64_MAX
 
 
 /**
  * @brief Definition for no start date of a to-do.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  */
 #define CALENDAR_TODO_NO_START_DATE (-INT64_MAX)
 
 
 /**
  * @brief Definition for no until of a record.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  */
 #define CALENDAR_RECORD_NO_UNTIL    INT64_MAX
 
 
 /**
  * @brief Definition for no coordinate(latitude/longitude) of a record.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  */
 #define CALENDAR_RECORD_NO_COORDINATE 1000.0
 
@@ -146,14 +146,14 @@ _CALENDAR_HANDLE(calendar_h)
 
 /**
  * @brief Definition for all calendar books.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  */
 #define CALENDAR_BOOK_FILTER_ALL                    -1
 
 
 /**
  * @brief Enumeration for the filter match type of a string.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  */
 typedef enum {
        CALENDAR_MATCH_EXACTLY, /**< Full string, case-sensitive */
@@ -168,7 +168,7 @@ typedef enum {
 
 /**
  * @brief Enumeration for the filter match type of an integer.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  */
 typedef enum {
        CALENDAR_MATCH_EQUAL, /**< '=' */
@@ -184,7 +184,7 @@ typedef enum {
 
 /**
  * @brief Enumeration for a filter operator.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  */
 typedef enum {
        CALENDAR_FILTER_OPERATOR_AND, /**< AND */
@@ -207,7 +207,7 @@ typedef enum {
 /**
  * @brief Enumeration for the calendar book type.
  * @details "OR"ing is supported.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  */
 typedef enum {
        CALENDAR_BOOK_TYPE_NONE = 0, /**< Default calendar book type */
@@ -218,7 +218,7 @@ typedef enum {
 
 /**
  * @brief Enumeration for the calendar sensitivity type.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  */
 typedef enum {
        CALENDAR_SENSITIVITY_PUBLIC = 0, /**< Public Sensitivity */
@@ -229,7 +229,7 @@ typedef enum {
 
 /**
  * @brief Enumeration for the attendee status.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  */
 typedef enum {
        CALENDAR_ATTENDEE_STATUS_PENDING = 0, /**< Pending status */
@@ -245,7 +245,7 @@ typedef enum {
 
 /**
  * @brief Enumeration for the attendee role.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  */
 typedef enum {
        CALENDAR_ATTENDEE_ROLE_REQ_PARTICIPANT = 0,     /**< Participation is required */
@@ -258,7 +258,7 @@ typedef enum {
 
 /**
  * @brief Enumeration for the attendee cutype.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  */
 typedef enum {
        CALENDAR_ATTENDEE_CUTYPE_INDIVIDUAL = 0, /**< Individual cutype */
@@ -272,7 +272,7 @@ typedef enum {
 
 /**
  * @brief Enumeration for the alarm time unit type of an event, such as minutes, hours, days, and so on.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  */
 typedef enum {
        CALENDAR_ALARM_NONE = -1, /**< No reminder set */
@@ -286,7 +286,7 @@ typedef enum {
 
 /**
  * @brief Enumeration for the alarm action.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  */
 typedef enum {
        CALENDAR_ALARM_ACTION_AUDIO = 0, /**< Audio action */
@@ -298,7 +298,7 @@ typedef enum {
 
 /**
  * @brief Enumeration for the frequency of an event's recurrence.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  */
 typedef enum {
        CALENDAR_RECURRENCE_NONE, /**< No recurrence event */
@@ -311,7 +311,7 @@ typedef enum {
 
 /**
  * @brief Enumeration for the event status.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  */
 typedef enum {
        CALENDAR_EVENT_STATUS_NONE = 0x01, /**< No status */
@@ -323,7 +323,7 @@ typedef enum {
 
 /**
  * @brief Enumeration for the busy status of an event.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  */
 typedef enum {
        CALENDAR_EVENT_BUSY_STATUS_FREE = 0, /**< The free status */
@@ -335,7 +335,7 @@ typedef enum {
 
 /**
  * @brief Enumeration for the calendar event item's priority.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  */
 typedef enum {
        CALENDAR_EVENT_PRIORITY_NONE = 0x01, /**< No priority */
@@ -347,7 +347,7 @@ typedef enum {
 
 /**
  * @brief Enumeration for the calendar to-do item's priority.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  */
 typedef enum {
        CALENDAR_TODO_PRIORITY_NONE = 0x01, /**< No priority */
@@ -359,7 +359,7 @@ typedef enum {
 
 /**
  * @brief Enumeration for the status of a to-do.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  */
 typedef enum {
        CALENDAR_TODO_STATUS_NONE = 0x0100,     /**< No status */
@@ -372,7 +372,7 @@ typedef enum {
 
 /**
  * @brief Enumeration for the time type.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  */
 typedef enum {
        CALENDAR_TIME_UTIME = 0, /**< Unix time */
@@ -382,7 +382,7 @@ typedef enum {
 
 /**
  * @brief Enumeration for the range type.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  */
 typedef enum {
        CALENDAR_RANGE_UNTIL, /**< Range until */
@@ -393,7 +393,7 @@ typedef enum {
 
 /**
  * @brief Enumeration for the system type.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  */
 typedef enum {
        CALENDAR_SYSTEM_NONE, /**< Locale's default calendar */
@@ -404,7 +404,7 @@ typedef enum {
 
 /**
  * @brief Enumeration for the meeting status.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  */
 typedef enum {
        CALENDAR_MEETING_STATUS_NOTMEETING = 0, /**< No meeting */
@@ -417,7 +417,7 @@ typedef enum {
 /**
  * @brief Enumeration for weekdays.
  * @details Same value as UCalendarDaysOfWeek in ICU.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  */
 typedef enum {
        CALENDAR_SUNDAY = 1, /**< Sunday */
@@ -432,7 +432,7 @@ typedef enum {
 
 /**
  * @brief Enumeration for the modified status of a record.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  */
 typedef enum {
        CALENDAR_RECORD_MODIFIED_STATUS_INSERTED = 0, /**< The record is inserted */
@@ -443,7 +443,7 @@ typedef enum {
 
 /**
  * @brief The structure of time.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  */
 typedef struct {
        calendar_time_type_e type; /**< type */
@@ -464,7 +464,7 @@ typedef struct {
 
 /**
  * @brief Enumeration for the type of a record.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  */
 typedef enum {
        CALENDAR_RECORD_TYPE_NONE = 0, /**< No record type */
@@ -476,7 +476,7 @@ typedef enum {
 
 /**
  * @brief Enumeration for the book mode.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  */
 typedef enum {
        CALENDAR_BOOK_MODE_NONE = 0, /**< All modules can read and write records of this calendar_book */
@@ -486,7 +486,7 @@ typedef enum {
 
 /**
  * @brief Enumeration for the sync event type.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  */
 typedef enum {
        CALENDAR_BOOK_SYNC_EVENT_FOR_ME = 0, /**< This book would not be synced to others except me */
index 0e6916c..df3809a 100644 (file)
@@ -37,7 +37,7 @@ extern "C" {
 
 /**
  * @brief Retrieves a vcalendar stream from a calendar list.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @param[in] calendar_list The calendar list handle
  * @param[out] vcalendar_stream The vcalendar stream
  * @return @c 0 on success,
@@ -52,7 +52,7 @@ int calendar_vcalendar_make_from_records(calendar_list_h calendar_list, char **v
 
 /**
  * @brief Retrieves all calendars from a vcalendar stream.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @param[in] vcalendar_stream The vcalendar stream
  * @param[out] calendar_list The calendar list handle
  * @return @c 0 on success,
@@ -69,7 +69,7 @@ int calendar_vcalendar_parse_to_calendar(const char* vcalendar_stream, calendar_
 /**
  * @brief Called to get a record handle of
  *        \ref CAPI_SOCIAL_CALENDAR_SVC_VIEW_MODULE_calendar_event or \ref CAPI_SOCIAL_CALENDAR_SVC_VIEW_MODULE_calendar_todo.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @param[in] record The record handle (\ref CAPI_SOCIAL_CALENDAR_SVC_VIEW_MODULE_calendar_event or \ref CAPI_SOCIAL_CALENDAR_SVC_VIEW_MODULE_calendar_todo)
  * @param[in] user_data The user data passed from the foreach function
  * @return @c true to continue with the next iteration of the loop,
@@ -84,7 +84,7 @@ typedef bool (*calendar_vcalendar_parse_cb)(calendar_record_h record, void *user
 /**
  * @brief Retrieves all events or to-dos
  *        (\ref CAPI_SOCIAL_CALENDAR_SVC_VIEW_MODULE_calendar_event or \ref CAPI_SOCIAL_CALENDAR_SVC_VIEW_MODULE_calendar_todo) from a vCalendar file.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @elseif TV 4.0 @endif
  * @param[in] vcalendar_file_path The file path of the vCalendar stream file
  * @param[in] callback The callback function to be invoked
  * @param[in] user_data The user data to be passed to the callback function
index 99469fa..393cedd 100644 (file)
@@ -17,16 +17,30 @@ BuildRequires: pkgconfig(glib-2.0)
 BuildRequires: pkgconfig(dlog)
 BuildRequires: pkgconfig(vconf)
 BuildRequires: pkgconfig(icu-i18n)
-BuildRequires: pkgconfig(accounts-svc)
-BuildRequires: pkgconfig(contacts-service2)
 BuildRequires: pkgconfig(alarm-service)
 BuildRequires: pkgconfig(libtzplatform-config)
 BuildRequires: pkgconfig(capi-base-common)
 BuildRequires: pkgconfig(capi-appfw-application)
 BuildRequires: pkgconfig(libsmack)
+BuildRequires: pkgconfig(capi-system-info)
 Requires(post): /sbin/ldconfig
 Requires(postun): /sbin/ldconfig
 
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# Dummy contacts for TV product optimization.
+# Note that even if it includes contacts-service2, the behavior is not chanaged
+# because the code determines profile at runtime.
+# if tv
+%if "%{?profile}" == "tv"
+Source3:       dummy_account.h
+Source4:       dummy_contacts.h
+%else
+# TV profile does not have contacts-service2.
+# Do not build for unified environment if it is TV.
+BuildRequires: pkgconfig(accounts-svc)
+BuildRequires: pkgconfig(contacts-service2)
+%endif
+
 %define _dbus_interface org.tizen.CalendarService.dbus
 %define upgrade_script_path /usr/share/upgrade/scripts
 
@@ -50,13 +64,26 @@ cp %SOURCE1001 .
 
 
 %build
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# TV profile does not have contacts-service2.
+# Do not build for unified environment if it is TV.
+# if tv
+%if "%{?profile}" == "tv"
+cp %SOURCE3 server/account.h
+cp %SOURCE4 server/contacts.h
+%endif
+
 export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE"
 export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
 export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE"
 
 MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
 %cmake . -DMAJORVER=${MAJORVER} -DFULLVER=%{version} -DBIN_INSTALL_DIR:PATH=%{_bindir} \
-               -DDBUS_INTERFACE=%{_dbus_interface}
+               -DDBUS_INTERFACE=%{_dbus_interface} \
+%if "%{?profile}" == "tv"
+               -DTIZEN_WITHOUT_CONTACTS="1"
+%endif
 
 
 make %{?jobs:-j%jobs}
diff --git a/packaging/dummy_account.h b/packaging/dummy_account.h
new file mode 100644 (file)
index 0000000..b09ca28
--- /dev/null
@@ -0,0 +1,37 @@
+/*
+ * Calendar Service
+ *
+ * Copyright (c) 2012 - 2017 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 __DUMMY_ACCOUNT_FOR_TV_OPTIMIZATION__
+#define __DUMMY_ACCOUNT_FOR_TV_OPTIMIZATION__
+
+typedef int* account_subscribe_h;
+
+static inline void account_dummy_void()
+{ }
+static inline int account_dummy_int(int x)
+{ return x; }
+
+#define account_subscribe_create(a) account_dummy_int(0)
+#define account_subscribe_notification(a, b, c) account_dummy_int(0)
+#define account_unsubscribe_notification(a) account_dummy_int(0)
+
+#define ACCOUNT_ERROR_NONE (0)
+#define ACCOUNT_NOTI_NAME_DELETE ""
+
+#endif /* __DUMMY_ACCOUNT_FOR_TV_OPTIMIZATION__ */
diff --git a/packaging/dummy_contacts.h b/packaging/dummy_contacts.h
new file mode 100644 (file)
index 0000000..f1fdb83
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Calendar Service
+ *
+ * Copyright (c) 2012 - 2017 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 __DUMMY_CONTACTS_FOR_TV_OPTIMIZATION__
+#define __DUMMY_CONTACTS_FOR_TV_OPTIMIZATION__
+
+typedef int* contacts_record_h;
+typedef int* contacts_list_h;
+
+static inline void contacts_dummy_void()
+{ }
+static inline int contacts_dummy_int(int x)
+{ return x; }
+
+
+#define contacts_connect() contacts_dummy_int(-1)
+static inline int contacts_disconnect()
+{ return -1; }
+
+#define contacts_list_destroy(a, b) contacts_dummy_int(0)
+#define contacts_list_get_count(a, b) contacts_dummy_int(0)
+#define contacts_list_get_current_record_p(a, b) contacts_dummy_int(0)
+#define contacts_list_next(a) contacts_dummy_int(0)
+#define contacts_list_first(a) contacts_dummy_int(0)
+
+#define contacts_record_get_int(a, b, c) contacts_dummy_int(0)
+#define contacts_record_get_child_record_at_p(a, b, c, d) contacts_dummy_int(-1)
+#define contacts_record_get_str_p(x, y, z) contacts_dummy_int(0)
+#define contacts_record_destroy(a, b) contacts_dummy_int(0)
+
+#define contacts_db_get_record(x, y, z) contacts_dummy_int(0)
+#define contacts_db_get_changes_by_version(a, b, c, d, e) contacts_dummy_int(0)
+#define contacts_db_add_changed_cb(a, b, c) contacts_dummy_int(0)
+#define contacts_db_remove_changed_cb(a, b, c) contacts_dummy_int(0)
+
+#define CONTACTS_ERROR_NONE    (0)
+#define CONTACTS_EVENT_CALENDAR_TYPE_CHINESE (0)
+#define CONTACTS_EVENT_TYPE_BIRTH (0)
+#define CONTACTS_EVENT_TYPE_ANNIVERSARY (1)
+#define CONTACTS_EVENT_TYPE_OTHER (2)
+#define CONTACTS_EVENT_TYPE_CUSTOM (3)
+
+#define CONTACTS_CHANGE_INSERTED (0)
+#define CONTACTS_CHANGE_DELETED (1)
+#define CONTACTS_CHANGE_UPDATED (2)
+
+
+#endif /* __DUMMY_CONTACTS_FOR_TV_OPTIMIZATION__ */
index 031565f..a283b7b 100644 (file)
@@ -14,6 +14,7 @@ SET(DAEMON_SRCS ${DAEMON_SRCS} ${CMAKE_SOURCE_DIR}/common/dbus/cal_dbus.c)
 SET_SOURCE_FILES_PROPERTIES(${CMAKE_SOURCE_DIR}/common/dbus/cal_dbus.c
        PROPERTIES GENERATED TRUE)
 
+IF(TIZEN_WITHOUT_CONTACTS)
 pkg_check_modules(daemon_pkgs REQUIRED
        glib-2.0
        db-util
@@ -21,15 +22,34 @@ pkg_check_modules(daemon_pkgs REQUIRED
        vconf
        alarm-service
        icu-i18n
-       contacts-service2
        libtzplatform-config
        dlog
        capi-base-common
+       capi-appfw-application
+       libsmack
+       gio-2.0
+       gio-unix-2.0
+       capi-system-info)
+ELSE(TIZEN_WITHOUT_CONTACTS)
+pkg_check_modules(daemon_pkgs REQUIRED
+       glib-2.0
+       db-util
+       sqlite3
+       vconf
+       alarm-service
+       icu-i18n
        accounts-svc
+       contacts-service2
+       libtzplatform-config
+       dlog
+       capi-base-common
        capi-appfw-application
        libsmack
        gio-2.0
-       gio-unix-2.0)
+       gio-unix-2.0
+       capi-system-info)
+ENDIF(TIZEN_WITHOUT_CONTACTS)
+
 INCLUDE_DIRECTORIES(${daemon_pkgs_INCLUDE_DIRS})
 LINK_DIRECTORIES(${daemon_pkgs_LIBRARY_DIRS})
 
index e012a37..8820474 100644 (file)
@@ -19,6 +19,7 @@
 
 #include <pthread.h>
 #include <account.h>
+#include <stdbool.h>
 
 #include "calendar.h"
 #include "cal_typedef.h"
index a09da17..1fa060a 100644 (file)
@@ -32,6 +32,7 @@
 #include "cal_server_ondemand.h"
 #include "cal_access_control.h"
 #include "cal_server_contacts.h"
+#include "cal_server_profile.h"
 
 #define CAL_SERVER_CONTACTS_THREAD_NAME "cal_server_contacts"
 #define BULK_MAX_COUNT 100
@@ -751,6 +752,9 @@ void cal_server_contacts_send_signal(void)
 
 void cal_server_contacts_start(void)
 {
+       if (!TIZEN_PROFILE_TV)
+               return;
+
        CAL_FN_CALL();
 
        if (NULL == _cal_server_contacts_thread) {
@@ -772,6 +776,9 @@ static void cal_server_contacts_deinit(void)
 
 void cal_server_contacts_end(void)
 {
+       if (!TIZEN_PROFILE_TV)
+               return;
+
        CAL_FN_CALL();
 
        server_killed = true;
diff --git a/server/cal_server_profile.c b/server/cal_server_profile.c
new file mode 100644 (file)
index 0000000..99d3568
--- /dev/null
@@ -0,0 +1,22 @@
+/*
+ * Calendar Service
+ *
+ * Copyright (c) 2012 - 2017 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.
+ *
+ */
+
+#include "cal_server_profile.h"
+
+tizen_profile_t profile = _PROFILE_UNKNOWN;
diff --git a/server/cal_server_profile.h b/server/cal_server_profile.h
new file mode 100644 (file)
index 0000000..104060c
--- /dev/null
@@ -0,0 +1,96 @@
+/*
+ * Calendar Service
+ *
+ * Copyright (c) 2012 - 2017 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 __CAL_SERVER_PROFLIE_H__
+#define __CAL_SERVER_PROFLIE_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+#include <stdlib.h>
+#include <system_info.h>
+
+typedef enum {
+       _PROFILE_UNKNOWN = 0,
+       _PROFILE_MOBILE = 0x1,
+       _PROFILE_WEARABLE = 0x2,
+       _PROFILE_TV = 0x4,
+       _PROFILE_IVI = 0x8,
+       _PROFILE_COMMON = 0x10,
+} tizen_profile_t;
+
+/* For optimization, make this extern and define in a shared C file */
+extern tizen_profile_t profile;
+
+/* Accessing system info */
+int system_info_get_platform_string(const char *key, char **value);
+
+static inline tizen_profile_t get_tizen_profile()
+{
+       char *profileName = NULL;
+
+       if (__builtin_expect(profile != _PROFILE_UNKNOWN, 1))
+               return profile;
+
+       system_info_get_platform_string("http://tizen.org/feature/profile", &profileName);
+
+       /* To pass the checking of g_ir */
+       if (!profileName)
+               return _PROFILE_UNKNOWN;
+
+       switch (*profileName) {
+       case 'm':
+       case 'M':
+               profile = _PROFILE_MOBILE;
+               break;
+       case 'w':
+       case 'W':
+               profile = _PROFILE_WEARABLE;
+               break;
+       case 't':
+       case 'T':
+               profile = _PROFILE_TV;
+               break;
+       case 'i':
+       case 'I':
+               profile = _PROFILE_IVI;
+               break;
+       default: // common or unknown ==> ALL ARE COMMON.
+               profile = _PROFILE_COMMON;
+       }
+       free(profileName);
+
+       return profile;
+}
+#define TIZEN_PROFILE_WEARABLE (get_tizen_profile() == _PROFILE_WEARABLE)
+#define TIZEN_PROFILE_IVI (get_tizen_profile() == _PROFILE_IVI)
+#define TIZEN_PROFILE_TV (get_tizen_profile() == _PROFILE_TV)
+#define TIZEN_PROFILE_MOBILE (get_tizen_profile() == _PROFILE_MOBILE)
+
+#define TIZEN_FEATURE_NETWORK_TETHERING_ENABLE (get_tizen_profile() & (_PROFILE_MOBILE))
+#define TIZEN_FEATURE_TELEPHONY_ENABLED (get_tizen_profile() & (_PROFILE_MOBILE))
+#define TIZEN_FEATURE_FLIGHTMODE_ENABLED (get_tizen_profile() & (_PROFILE_MOBILE | _PROFILE_WEARABLE))
+#define TIZEN_FEATURE_BT_USB_DONGLE (get_tizen_profile() & (_PROFILE_TV))
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /*  __CAL_SERVER_PROFLIE_H__ */