2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 #include <media_info_private.h>
19 #include <media_util_private.h>
20 #include <media_pvr.h>
23 int media_pvr_get_media_count_from_db(filter_h filter, int *media_count)
25 content_retip_if_fail(media_count);
27 return _media_db_get_group_item_count(NULL, filter, MEDIA_GROUP_PVR, media_count);
30 int media_pvr_foreach_media_from_db(filter_h filter, media_pvr_cb callback, void *user_data)
32 content_retip_if_fail(callback);
34 return _media_db_get_pvr(filter, callback, user_data);
37 int media_pvr_destroy(media_pvr_h pvr)
39 int ret = MEDIA_CONTENT_ERROR_NONE;
40 media_pvr_s *_pvr = (media_pvr_s*)pvr;
42 content_retip_if_fail(pvr);
44 g_free(_pvr->media_id);
45 g_free(_pvr->storage_id);
46 g_free(_pvr->channel_name);
47 g_free(_pvr->channel_num);
48 g_free(_pvr->program_title);
49 g_free(_pvr->program_crid);
50 g_free(_pvr->guidance);
51 g_free(_pvr->synopsis);
53 g_free(_pvr->language);
55 g_free(_pvr->modified_month);
56 g_free(_pvr->private_data);
59 return MEDIA_CONTENT_ERROR_NONE;
62 int media_pvr_clone(media_pvr_h *dst, media_pvr_h src)
64 media_pvr_s *_src = (media_pvr_s*)src;
66 content_retip_if_fail(dst);
67 content_retip_if_fail(src);
69 media_pvr_s *_dst = g_new0(media_pvr_s, 1);
71 _dst->media_id = g_strdup(_src->media_id);
72 _dst->channel_name = g_strdup(_src->channel_name);
73 _dst->channel_num = g_strdup(_src->channel_num);
74 _dst->program_title = g_strdup(_src->program_title);
75 _dst->program_crid = g_strdup(_src->program_crid);
76 _dst->guidance = g_strdup(_src->guidance);
77 _dst->synopsis = g_strdup(_src->synopsis);
78 _dst->genre = g_strdup(_src->genre);
79 _dst->language = g_strdup(_src->language);
80 _dst->path = g_strdup(_src->path);
81 _dst->storage_id = g_strdup(_src->storage_id);
82 _dst->modified_month = g_strdup(_src->modified_month);
83 _dst->private_data = g_strdup(_src->private_data);
84 _dst->duration = _src->duration;
85 _dst->timezone = _src->timezone;
86 _dst->ptc = _src->ptc;
87 _dst->major = _src->major;
88 _dst->minor = _src->minor;
89 _dst->channel_type = _src->channel_type;
90 _dst->program_num = _src->program_num;
91 _dst->service_profile = _src->service_profile;
92 _dst->timer_record = _src->timer_record;
93 _dst->series_record = _src->series_record;
95 _dst->subtitle = _src->subtitle;
96 _dst->ttx = _src->ttx;
98 _dst->hard_of_hearing_radio = _src->hard_of_hearing_radio;
99 _dst->data_service = _src->data_service;
100 _dst->content_lock = _src->content_lock;
101 _dst->embargo_time = _src->embargo_time;
102 _dst->expiry_time = _src->expiry_time;
103 _dst->size = _src->size;
104 _dst->parental_rating = _src->parental_rating;
105 _dst->start_time = _src->start_time;
106 _dst->program_start_time = _src->program_start_time;
107 _dst->program_end_time = _src->program_end_time;
108 _dst->program_date = _src->program_date;
109 _dst->content_watch = _src->content_watch;
110 _dst->has_audio_only = _src->has_audio_only;
111 _dst->is_local_record = _src->is_local_record;
112 _dst->resolution = _src->resolution;
113 _dst->aspectratio = _src->aspectratio;
114 _dst->sports_type = _src->sports_type;
115 _dst->guidance_length = _src->guidance_length;
116 _dst->tvmode = _src->tvmode;
117 _dst->play_count = _src->play_count;
119 *dst = (media_pvr_h)_dst;
121 return MEDIA_CONTENT_ERROR_NONE;
124 int media_pvr_get_pvr_from_db(const char *media_id, media_pvr_h *pvr)
126 int ret = MEDIA_CONTENT_ERROR_NONE;
127 char *select_query = NULL;
128 sqlite3_stmt *stmt = NULL;
130 content_retip_if_fail(STRING_VALID(media_id));
131 content_retip_if_fail(pvr);
133 select_query = sqlite3_mprintf(SELECT_PVR_FROM_PVR, media_id);
135 ret = _content_get_result(select_query, &stmt);
136 sqlite3_free(select_query);
137 content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
139 media_pvr_s *_pvr = NULL;
141 if (sqlite3_step(stmt) == SQLITE_ROW) {
142 _pvr = g_new0(media_pvr_s, 1);
144 _media_pvr_item_get_detail(stmt, (media_pvr_h)_pvr);
146 *pvr = (media_info_h)_pvr;
148 content_error("Nonexistent media_id[%s]", media_id);
149 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
152 SQLITE3_FINALIZE(stmt);
157 int media_pvr_get_media_id(media_pvr_h pvr, char **media_id)
159 media_pvr_s *_pvr = (media_pvr_s*)pvr;
161 content_retip_if_fail(pvr);
162 content_retip_if_fail(media_id);
164 *media_id = g_strdup(_pvr->media_id);
166 return MEDIA_CONTENT_ERROR_NONE;
169 int media_pvr_get_channel_name(media_pvr_h pvr, char **channel_name)
171 media_pvr_s *_pvr = (media_pvr_s*)pvr;
173 content_retip_if_fail(pvr);
174 content_retip_if_fail(channel_name);
176 *channel_name = g_strdup(_pvr->channel_name);
178 return MEDIA_CONTENT_ERROR_NONE;
181 int media_pvr_get_channel_num(media_pvr_h pvr, char **channel_num)
183 media_pvr_s *_pvr = (media_pvr_s*)pvr;
185 content_retip_if_fail(pvr);
186 content_retip_if_fail(channel_num);
188 *channel_num = g_strdup(_pvr->channel_num);
190 return MEDIA_CONTENT_ERROR_NONE;
193 int media_pvr_get_program_title(media_pvr_h pvr, char **program_title)
195 media_pvr_s *_pvr = (media_pvr_s*)pvr;
197 content_retip_if_fail(pvr);
198 content_retip_if_fail(program_title);
200 *program_title = g_strdup(_pvr->program_title);
202 return MEDIA_CONTENT_ERROR_NONE;
205 int media_pvr_get_program_crid(media_pvr_h pvr, char **program_crid)
207 media_pvr_s *_pvr = (media_pvr_s*)pvr;
209 content_retip_if_fail(pvr);
210 content_retip_if_fail(program_crid);
212 *program_crid = g_strdup(_pvr->program_crid);
214 return MEDIA_CONTENT_ERROR_NONE;
217 int media_pvr_get_guidance(media_pvr_h pvr, char **guidance)
219 media_pvr_s *_pvr = (media_pvr_s*)pvr;
221 content_retip_if_fail(pvr);
222 content_retip_if_fail(guidance);
224 *guidance = g_strdup(_pvr->guidance);
226 return MEDIA_CONTENT_ERROR_NONE;
229 int media_pvr_get_synopsis(media_pvr_h pvr, char **synopsis)
231 media_pvr_s *_pvr = (media_pvr_s*)pvr;
233 content_retip_if_fail(pvr);
234 content_retip_if_fail(synopsis);
236 *synopsis = g_strdup(_pvr->synopsis);
238 return MEDIA_CONTENT_ERROR_NONE;
241 int media_pvr_get_genre(media_pvr_h pvr, char **genre)
243 media_pvr_s *_pvr = (media_pvr_s*)pvr;
245 content_retip_if_fail(pvr);
246 content_retip_if_fail(genre);
248 *genre = g_strdup(_pvr->genre);
250 return MEDIA_CONTENT_ERROR_NONE;
253 int media_pvr_get_language(media_pvr_h pvr, char **language)
255 media_pvr_s *_pvr = (media_pvr_s*)pvr;
257 content_retip_if_fail(pvr);
258 content_retip_if_fail(language);
260 *language = g_strdup(_pvr->language);
262 return MEDIA_CONTENT_ERROR_NONE;
265 int media_pvr_get_path(media_pvr_h pvr, char **path)
267 media_pvr_s *_pvr = (media_pvr_s*)pvr;
269 content_retip_if_fail(pvr);
270 content_retip_if_fail(path);
272 *path = g_strdup(_pvr->path);
274 return MEDIA_CONTENT_ERROR_NONE;
277 int media_pvr_get_storage_id(media_pvr_h pvr, char **storage_id)
279 media_pvr_s *_pvr = (media_pvr_s*)pvr;
281 content_retip_if_fail(pvr);
282 content_retip_if_fail(storage_id);
284 *storage_id = g_strdup(_pvr->storage_id);
286 return MEDIA_CONTENT_ERROR_NONE;
289 int media_pvr_get_size(media_pvr_h pvr, unsigned long long *size)
291 media_pvr_s *_pvr = (media_pvr_s*)pvr;
293 content_retip_if_fail(pvr);
294 content_retip_if_fail(size);
298 return MEDIA_CONTENT_ERROR_NONE;
301 int media_pvr_get_timezone(media_pvr_h pvr, int *timezone)
303 media_pvr_s *_pvr = (media_pvr_s*)pvr;
305 content_retip_if_fail(pvr);
306 content_retip_if_fail(timezone);
308 *timezone = _pvr->timezone;
310 return MEDIA_CONTENT_ERROR_NONE;
313 int media_pvr_get_ptc(media_pvr_h pvr, int *ptc)
315 media_pvr_s *_pvr = (media_pvr_s*)pvr;
317 content_retip_if_fail(pvr);
318 content_retip_if_fail(ptc);
322 return MEDIA_CONTENT_ERROR_NONE;
325 int media_pvr_get_major(media_pvr_h pvr, int *major)
327 media_pvr_s *_pvr = (media_pvr_s*)pvr;
329 content_retip_if_fail(pvr);
330 content_retip_if_fail(major);
332 *major = _pvr->major;
334 return MEDIA_CONTENT_ERROR_NONE;
337 int media_pvr_get_minor(media_pvr_h pvr, int *minor)
339 media_pvr_s *_pvr = (media_pvr_s*)pvr;
341 content_retip_if_fail(pvr);
342 content_retip_if_fail(minor);
344 *minor = _pvr->minor;
346 return MEDIA_CONTENT_ERROR_NONE;
349 int media_pvr_get_channel_type(media_pvr_h pvr, int *channel_type)
351 media_pvr_s *_pvr = (media_pvr_s*)pvr;
353 content_retip_if_fail(pvr);
354 content_retip_if_fail(channel_type);
356 *channel_type = _pvr->channel_type;
358 return MEDIA_CONTENT_ERROR_NONE;
361 int media_pvr_get_program_num(media_pvr_h pvr, int *program_num)
363 media_pvr_s *_pvr = (media_pvr_s*)pvr;
365 content_retip_if_fail(pvr);
366 content_retip_if_fail(program_num);
368 *program_num = _pvr->program_num;
370 return MEDIA_CONTENT_ERROR_NONE;
373 int media_pvr_get_service_profile(media_pvr_h pvr, unsigned int *service_profile)
375 media_pvr_s *_pvr = (media_pvr_s*)pvr;
377 content_retip_if_fail(pvr);
378 content_retip_if_fail(service_profile);
380 *service_profile = _pvr->service_profile;
382 return MEDIA_CONTENT_ERROR_NONE;
385 int media_pvr_get_duration(media_pvr_h pvr, int *duration)
387 media_pvr_s *_pvr = (media_pvr_s*)pvr;
389 content_retip_if_fail(pvr);
390 content_retip_if_fail(duration);
392 *duration = _pvr->duration;
394 return MEDIA_CONTENT_ERROR_NONE;
397 int media_pvr_get_embargo_time(media_pvr_h pvr, int *embargo_time)
399 media_pvr_s *_pvr = (media_pvr_s*)pvr;
401 content_retip_if_fail(pvr);
402 content_retip_if_fail(embargo_time);
404 *embargo_time = _pvr->embargo_time;
406 return MEDIA_CONTENT_ERROR_NONE;
409 int media_pvr_get_expiry_time(media_pvr_h pvr, int *expiry_time)
411 media_pvr_s *_pvr = (media_pvr_s*)pvr;
413 content_retip_if_fail(pvr);
414 content_retip_if_fail(expiry_time);
416 *expiry_time = _pvr->expiry_time;
418 return MEDIA_CONTENT_ERROR_NONE;
421 int media_pvr_get_parental_rating(media_pvr_h pvr, int *parental_rating)
423 media_pvr_s *_pvr = (media_pvr_s*)pvr;
425 content_retip_if_fail(pvr);
426 content_retip_if_fail(parental_rating);
428 *parental_rating = _pvr->parental_rating;
430 return MEDIA_CONTENT_ERROR_NONE;
433 int media_pvr_get_start_time(media_pvr_h pvr, int *start_time)
435 media_pvr_s *_pvr = (media_pvr_s*)pvr;
437 content_retip_if_fail(pvr);
438 content_retip_if_fail(start_time);
440 *start_time = _pvr->start_time;
442 return MEDIA_CONTENT_ERROR_NONE;
445 int media_pvr_get_program_start_time(media_pvr_h pvr, int *program_start_time)
447 media_pvr_s *_pvr = (media_pvr_s*)pvr;
449 content_retip_if_fail(pvr);
450 content_retip_if_fail(program_start_time);
452 *program_start_time = _pvr->program_start_time;
454 return MEDIA_CONTENT_ERROR_NONE;
457 int media_pvr_get_program_end_time(media_pvr_h pvr, int *end_time)
459 media_pvr_s *_pvr = (media_pvr_s*)pvr;
461 content_retip_if_fail(pvr);
462 content_retip_if_fail(end_time);
464 *end_time = _pvr->program_end_time;
466 return MEDIA_CONTENT_ERROR_NONE;
469 int media_pvr_get_program_date(media_pvr_h pvr, int *program_date)
471 media_pvr_s *_pvr = (media_pvr_s*)pvr;
473 content_retip_if_fail(pvr);
474 content_retip_if_fail(program_date);
476 *program_date = _pvr->program_date;
478 return MEDIA_CONTENT_ERROR_NONE;
481 int media_pvr_get_timer_record(media_pvr_h pvr, bool* timer_record)
483 media_pvr_s *_pvr = (media_pvr_s*)pvr;
485 content_retip_if_fail(pvr);
486 content_retip_if_fail(timer_record);
488 *timer_record = _pvr->timer_record;
490 return MEDIA_CONTENT_ERROR_NONE;
493 int media_pvr_get_series_record(media_pvr_h pvr, bool* series_record)
495 media_pvr_s *_pvr = (media_pvr_s*)pvr;
497 content_retip_if_fail(pvr);
498 content_retip_if_fail(series_record);
500 *series_record = _pvr->series_record;
502 return MEDIA_CONTENT_ERROR_NONE;
505 int media_pvr_get_hd(media_pvr_h pvr, int* hd)
507 media_pvr_s *_pvr = (media_pvr_s*)pvr;
509 content_retip_if_fail(pvr);
510 content_retip_if_fail(hd);
514 return MEDIA_CONTENT_ERROR_NONE;
517 int media_pvr_get_subtitle(media_pvr_h pvr, bool* subtitle)
519 media_pvr_s *_pvr = (media_pvr_s*)pvr;
521 content_retip_if_fail(pvr);
522 content_retip_if_fail(subtitle);
524 *subtitle = _pvr->subtitle;
526 return MEDIA_CONTENT_ERROR_NONE;
529 int media_pvr_get_ttx(media_pvr_h pvr, bool* ttx)
531 media_pvr_s *_pvr = (media_pvr_s*)pvr;
533 content_retip_if_fail(pvr);
534 content_retip_if_fail(ttx);
538 return MEDIA_CONTENT_ERROR_NONE;
541 int media_pvr_get_ad(media_pvr_h pvr, bool* ad)
543 media_pvr_s *_pvr = (media_pvr_s*)pvr;
545 content_retip_if_fail(pvr);
546 content_retip_if_fail(ad);
550 return MEDIA_CONTENT_ERROR_NONE;
553 int media_pvr_get_hard_of_hearing_radio(media_pvr_h pvr, bool* hard_of_hearing_radio)
555 media_pvr_s *_pvr = (media_pvr_s*)pvr;
557 content_retip_if_fail(pvr);
558 content_retip_if_fail(hard_of_hearing_radio);
560 *hard_of_hearing_radio = _pvr->hard_of_hearing_radio;
562 return MEDIA_CONTENT_ERROR_NONE;
565 int media_pvr_get_data_service(media_pvr_h pvr, bool* data_service)
567 media_pvr_s *_pvr = (media_pvr_s*)pvr;
569 content_retip_if_fail(pvr);
570 content_retip_if_fail(data_service);
572 *data_service = _pvr->data_service;
574 return MEDIA_CONTENT_ERROR_NONE;
577 int media_pvr_get_content_lock(media_pvr_h pvr, bool* content_lock)
579 media_pvr_s *_pvr = (media_pvr_s*)pvr;
581 content_retip_if_fail(pvr);
582 content_retip_if_fail(content_lock);
584 *content_lock = _pvr->content_lock;
586 return MEDIA_CONTENT_ERROR_NONE;
589 int media_pvr_get_content_watch(media_pvr_h pvr, bool* content_watch)
591 media_pvr_s *_pvr = (media_pvr_s*)pvr;
593 content_retip_if_fail(pvr);
594 content_retip_if_fail(content_watch);
596 *content_watch = _pvr->content_watch;
598 return MEDIA_CONTENT_ERROR_NONE;
601 int media_pvr_get_has_audio_only(media_pvr_h pvr, bool* has_audio_only)
603 media_pvr_s *_pvr = (media_pvr_s*)pvr;
605 content_retip_if_fail(pvr);
606 content_retip_if_fail(has_audio_only);
608 *has_audio_only = _pvr->has_audio_only;
610 return MEDIA_CONTENT_ERROR_NONE;
613 int media_pvr_get_is_local_record(media_pvr_h pvr, bool* is_local_record)
615 media_pvr_s *_pvr = (media_pvr_s*)pvr;
617 content_retip_if_fail(pvr);
618 content_retip_if_fail(is_local_record);
620 *is_local_record = _pvr->is_local_record;
622 return MEDIA_CONTENT_ERROR_NONE;
625 int media_pvr_get_resolution(media_pvr_h pvr, media_pvr_resolution_e* resolution)
627 media_pvr_s *_pvr = (media_pvr_s*)pvr;
629 content_retip_if_fail(pvr);
630 content_retip_if_fail(resolution);
632 *resolution = _pvr->resolution;
634 return MEDIA_CONTENT_ERROR_NONE;
637 int media_pvr_get_aspectratio(media_pvr_h pvr, media_pvr_aspectratio_e* aspectratio)
639 media_pvr_s *_pvr = (media_pvr_s*)pvr;
641 content_retip_if_fail(pvr);
642 content_retip_if_fail(aspectratio);
644 *aspectratio = _pvr->aspectratio;
646 return MEDIA_CONTENT_ERROR_NONE;
649 int media_pvr_get_modified_month(media_pvr_h pvr, char **modified_month)
651 media_pvr_s *_pvr = (media_pvr_s*)pvr;
653 content_retip_if_fail(pvr);
654 content_retip_if_fail(modified_month);
656 *modified_month = g_strdup(_pvr->modified_month);
658 return MEDIA_CONTENT_ERROR_NONE;
661 int media_pvr_get_sports_type(media_pvr_h pvr, int* sports_type)
663 media_pvr_s *_pvr = (media_pvr_s*)pvr;
665 content_retip_if_fail(pvr);
666 content_retip_if_fail(sports_type);
668 *sports_type = _pvr->sports_type;
670 return MEDIA_CONTENT_ERROR_NONE;
673 int media_pvr_get_guidance_length(media_pvr_h pvr, int* guidance_length)
675 media_pvr_s *_pvr = (media_pvr_s*)pvr;
677 content_retip_if_fail(pvr);
678 content_retip_if_fail(guidance_length);
680 *guidance_length = _pvr->guidance_length;
682 return MEDIA_CONTENT_ERROR_NONE;
685 int media_pvr_get_tvmode(media_pvr_h pvr, int* tvmode)
687 media_pvr_s *_pvr = (media_pvr_s*)pvr;
689 content_retip_if_fail(pvr);
690 content_retip_if_fail(tvmode);
692 *tvmode = _pvr->tvmode;
694 return MEDIA_CONTENT_ERROR_NONE;
697 int media_pvr_get_play_count(media_pvr_h pvr, int* play_count)
699 media_pvr_s *_pvr = (media_pvr_s*)pvr;
701 content_retip_if_fail(pvr);
702 content_retip_if_fail(play_count);
704 *play_count = _pvr->play_count;
706 return MEDIA_CONTENT_ERROR_NONE;
709 int media_pvr_get_private_data(media_pvr_h pvr, char **private_data)
711 int ret = MEDIA_CONTENT_ERROR_NONE;
712 media_pvr_s *_pvr = (media_pvr_s*)pvr;
714 content_retip_if_fail(pvr);
715 content_retip_if_fail(private_data);
717 *private_data = g_strdup(_pvr->private_data);
719 return MEDIA_CONTENT_ERROR_NONE;
722 int media_pvr_get_highlight(media_pvr_h pvr, bool *highlight)
724 media_pvr_s *_pvr = (media_pvr_s*)pvr;
726 content_retip_if_fail(pvr);
727 content_retip_if_fail(highlight);
729 *highlight = _pvr->highlight;
731 return MEDIA_CONTENT_ERROR_NONE;
734 int media_pvr_set_play_count(media_pvr_h pvr, int play_count)
736 media_pvr_s *_pvr = (media_pvr_s*)pvr;
738 content_retip_if_fail(pvr);
740 _pvr->play_count = play_count;
742 return MEDIA_CONTENT_ERROR_NONE;
745 int media_pvr_set_program_title(media_pvr_h pvr, const char *program_title)
747 media_pvr_s *_pvr = (media_pvr_s*)pvr;
749 content_retip_if_fail(pvr);
750 content_retip_if_fail(STRING_VALID(program_title));
752 g_free(_pvr->program_title);
753 _pvr->program_title = g_strdup(program_title);
755 return MEDIA_CONTENT_ERROR_NONE;
758 int media_pvr_set_content_lock(media_pvr_h pvr, bool content_lock)
760 media_pvr_s *_pvr = (media_pvr_s*)pvr;
762 content_retip_if_fail(pvr);
764 _pvr->content_lock = content_lock;
766 return MEDIA_CONTENT_ERROR_NONE;
769 int media_pvr_set_content_watch(media_pvr_h pvr, bool content_watch)
771 media_pvr_s *_pvr = (media_pvr_s*)pvr;
773 content_retip_if_fail(pvr);
775 _pvr->content_watch = content_watch;
777 return MEDIA_CONTENT_ERROR_NONE;
780 int media_pvr_set_highlight(media_pvr_h pvr, bool highlight)
782 media_pvr_s *_pvr = (media_pvr_s*)pvr;
784 content_retip_if_fail(pvr);
786 _pvr->highlight = highlight;
788 return MEDIA_CONTENT_ERROR_NONE;
791 int media_pvr_update_to_db(media_pvr_h pvr)
793 int ret = MEDIA_CONTENT_ERROR_NONE;
794 media_pvr_s *_pvr = (media_pvr_s*)pvr;
795 char *update_query = NULL;
797 content_retip_if_fail(pvr);
798 content_retip_if_fail(STRING_VALID(_pvr->media_id));
799 content_retip_if_fail(STRING_VALID(_pvr->path));
801 update_query = sqlite3_mprintf(UPDATE_PVR_META_FROM_PVR, _pvr->program_title, _pvr->content_lock, _pvr->content_watch, _pvr->play_count, _pvr->highlight, _pvr->media_id);
803 ret = _content_query_sql(update_query);
804 sqlite3_free(update_query);
806 if (ret == MEDIA_CONTENT_ERROR_NONE)
807 media_svc_update_pvr_info(_content_get_db_handle(), _pvr->path, _pvr->program_title, _pvr->content_lock);
813 int media_pvr_group_foreach_media_from_db(const char *group_name, media_group_e group, filter_h filter, media_pvr_cb callback, void *user_data)
815 content_retip_if_fail(callback);
816 content_retvm_if((group < MEDIA_PVR_GROUP_DURATION) || (group >= MEDIA_GROUP_MAX), MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid group");
818 return _media_db_get_pvr_group_item(group_name, filter, group, callback, user_data);
821 int media_pvr_set_is_local_record(const char *pvr_path, bool is_local_record)
823 int ret = MEDIA_CONTENT_ERROR_NONE;
824 char *update_query = NULL;
825 char storage_id[MEDIA_CONTENT_UUID_SIZE+1] = {0,};
827 content_retip_if_fail(pvr_path);
829 /*get the storage uuid*/
830 ret = media_svc_get_storage_id(_content_get_db_handle(), pvr_path, storage_id, tzplatform_getuid(TZ_USER_NAME));
831 content_retvm_if(ret != MS_MEDIA_ERR_NONE, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid pvr path[%s] error[%d]", pvr_path, ret);
833 content_error("storage uuid [%s]", storage_id);
834 update_query = sqlite3_mprintf(UPDATE_PVR_LOCAL_RECORD_PVR, is_local_record, pvr_path, storage_id);
836 ret = _content_query_sql(update_query);
837 sqlite3_free(update_query);