Fix bug when destination path is directory
[platform/core/api/media-content.git] / src / media_pvr.c
index a916b44..ec3b6ab 100755 (executable)
@@ -14,9 +14,7 @@
  * limitations under the License.
  */
 
-#ifdef _USE_TV_PROFILE
-#include <media_content.h>
-#include <media_content_internal.h>
+#ifdef _USE_TVPD_MODE
 #include <media_info_private.h>
 #include <media_util_private.h>
 #include <media_pvr.h>
@@ -214,6 +212,7 @@ int media_pvr_clone(media_pvr_h *dst, media_pvr_h src)
                _dst->minor = _src->minor;
                _dst->channel_type = _src->channel_type;
                _dst->program_num = _src->program_num;
+               _dst->service_profile = _src->service_profile;
                _dst->timer_record = _src->timer_record;
                _dst->series_record = _src->series_record;
                _dst->hd = _src->hd;
@@ -265,16 +264,13 @@ int media_pvr_get_pvr_from_db(const char *media_id, media_pvr_h *pvr)
 
        select_query = sqlite3_mprintf(SELECT_PVR_FROM_PVR, media_id);
 
-       ret = _content_query_prepare(&stmt, select_query, NULL, NULL);
+       ret = _content_get_result(select_query, &stmt);
        sqlite3_free(select_query);
        media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
 
        media_pvr_s *_pvr = NULL;
 
-       while (sqlite3_step(stmt) == SQLITE_ROW) {
-               if (_pvr)
-                       media_pvr_destroy((media_pvr_h)_pvr);
-
+       if (sqlite3_step(stmt) == SQLITE_ROW) {
                _pvr = (media_pvr_s*)calloc(1, sizeof(media_pvr_s));
 
                if (_pvr == NULL) {
@@ -286,6 +282,9 @@ int media_pvr_get_pvr_from_db(const char *media_id, media_pvr_h *pvr)
                _media_pvr_item_get_detail(stmt, (media_pvr_h)_pvr);
 
                *pvr = (media_info_h)_pvr;
+       } else {
+               media_content_error("Nonexistent media_id[%s]", media_id);
+               ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
        }
 
        SQLITE3_FINALIZE(stmt);
@@ -680,6 +679,22 @@ int media_pvr_get_program_num(media_pvr_h pvr, int *program_num)
        return ret;
 }
 
+int media_pvr_get_service_profile(media_pvr_h pvr, unsigned int *service_profile)
+{
+       int ret = MEDIA_CONTENT_ERROR_NONE;
+       media_pvr_s *_pvr = (media_pvr_s*)pvr;
+
+       if (_pvr && service_profile) {
+               *service_profile = _pvr->service_profile;
+               ret = MEDIA_CONTENT_ERROR_NONE;
+       } else {
+               media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
+               ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
+       }
+
+       return ret;
+}
+
 int media_pvr_get_duration(media_pvr_h pvr, int *duration)
 {
        int ret = MEDIA_CONTENT_ERROR_NONE;
@@ -1290,7 +1305,7 @@ int media_pvr_set_is_local_record(const char *pvr_path, bool is_local_record)
        } else {
 
                /*get the storage uuid*/
-               ret = media_svc_get_storage_id(_content_get_db_handle(), pvr_path, storage_id);
+               ret = media_svc_get_storage_id(_content_get_db_handle(), pvr_path, storage_id, tzplatform_getuid(TZ_USER_NAME));
                if (ret == MS_MEDIA_ERR_NONE) {
                        media_content_error("storage uuid [%s]", storage_id);
                        update_query = sqlite3_mprintf(UPDATE_PVR_LOCAL_RECORD_PVR, is_local_record, pvr_path, storage_id);