Add favorite list on action menu
[profile/tv/apps/native/air_livetv.git] / src / tv.c
index d5ba1fd..418d579 100644 (file)
--- a/src/tv.c
+++ b/src/tv.c
@@ -492,6 +492,41 @@ Eina_List *tv_channel_get_list()
        return channel_list;
 }
 
+/**
+ * Gets a favorite channel list.
+ *
+ * @return Favorite channel list, or NULL if fails
+ */
+Eina_List *tv_channel_get_favorite_list()
+{
+       GList *tvs_list = NULL;
+       Eina_List *channel_list = NULL;
+       TvServiceChannel *tvs_data = NULL;
+       const struct tv_channel_info *channel_info;
+       int r, i;
+
+       r = tv_service_get_channel_list(
+                       TV_SERVICE_CHANNEL_MODE_FAVORITE,
+                       TV_SERVICE_ANTENNA_TYPE_ALL, &tvs_list);
+       if (r != TVS_ERROR_OK) {
+               _ERR("failed to get channel list");
+               return NULL;
+       }
+
+       for (i = 0; i < g_list_length(tvs_list); i++) {
+               tvs_data = (TvServiceChannel *) g_list_nth_data(tvs_list, i);
+               if (tvs_data) {
+                       channel_info = _tv_channel_get_info(tvs_data);
+                       if (channel_info)
+                               channel_list = eina_list_append(channel_list,
+                                               channel_info);
+                       free(tvs_data);
+               }
+       }
+
+       return channel_list;
+}
+
 TvServiceFilterNode *_tv_channel_get_filter(
                TvServiceChannelDataAttr attribute, int type, void *data)
 {