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 media_pvr_s *_pvr = (media_pvr_s*)pvr;
41 content_retip_if_fail(pvr);
43 g_free(_pvr->media_id);
44 g_free(_pvr->storage_id);
45 g_free(_pvr->channel_name);
46 g_free(_pvr->channel_num);
47 g_free(_pvr->program_title);
48 g_free(_pvr->program_crid);
49 g_free(_pvr->guidance);
50 g_free(_pvr->synopsis);
52 g_free(_pvr->language);
54 g_free(_pvr->modified_month);
55 g_free(_pvr->private_data);
58 return MEDIA_CONTENT_ERROR_NONE;
61 int media_pvr_clone(media_pvr_h *dst, media_pvr_h src)
63 media_pvr_s *_src = (media_pvr_s*)src;
65 content_retip_if_fail(dst);
66 content_retip_if_fail(src);
68 media_pvr_s *_dst = g_new0(media_pvr_s, 1);
70 _dst->media_id = g_strdup(_src->media_id);
71 _dst->channel_name = g_strdup(_src->channel_name);
72 _dst->channel_num = g_strdup(_src->channel_num);
73 _dst->program_title = g_strdup(_src->program_title);
74 _dst->program_crid = g_strdup(_src->program_crid);
75 _dst->guidance = g_strdup(_src->guidance);
76 _dst->synopsis = g_strdup(_src->synopsis);
77 _dst->genre = g_strdup(_src->genre);
78 _dst->language = g_strdup(_src->language);
79 _dst->path = g_strdup(_src->path);
80 _dst->storage_id = g_strdup(_src->storage_id);
81 _dst->modified_month = g_strdup(_src->modified_month);
82 _dst->private_data = g_strdup(_src->private_data);
83 _dst->duration = _src->duration;
84 _dst->timezone = _src->timezone;
85 _dst->ptc = _src->ptc;
86 _dst->major = _src->major;
87 _dst->minor = _src->minor;
88 _dst->channel_type = _src->channel_type;
89 _dst->program_num = _src->program_num;
90 _dst->service_profile = _src->service_profile;
91 _dst->timer_record = _src->timer_record;
92 _dst->series_record = _src->series_record;
94 _dst->subtitle = _src->subtitle;
95 _dst->ttx = _src->ttx;
97 _dst->hard_of_hearing_radio = _src->hard_of_hearing_radio;
98 _dst->data_service = _src->data_service;
99 _dst->content_lock = _src->content_lock;
100 _dst->embargo_time = _src->embargo_time;
101 _dst->expiry_time = _src->expiry_time;
102 _dst->size = _src->size;
103 _dst->parental_rating = _src->parental_rating;
104 _dst->start_time = _src->start_time;
105 _dst->program_start_time = _src->program_start_time;
106 _dst->program_end_time = _src->program_end_time;
107 _dst->program_date = _src->program_date;
108 _dst->content_watch = _src->content_watch;
109 _dst->has_audio_only = _src->has_audio_only;
110 _dst->is_local_record = _src->is_local_record;
111 _dst->resolution = _src->resolution;
112 _dst->aspectratio = _src->aspectratio;
113 _dst->sports_type = _src->sports_type;
114 _dst->guidance_length = _src->guidance_length;
115 _dst->tvmode = _src->tvmode;
116 _dst->play_count = _src->play_count;
118 *dst = (media_pvr_h)_dst;
120 return MEDIA_CONTENT_ERROR_NONE;
123 int media_pvr_get_pvr_from_db(const char *media_id, media_pvr_h *pvr)
125 int ret = MEDIA_CONTENT_ERROR_NONE;
126 char *select_query = NULL;
127 sqlite3_stmt *stmt = NULL;
129 content_retip_if_fail(STRING_VALID(media_id));
130 content_retip_if_fail(pvr);
132 select_query = sqlite3_mprintf(SELECT_PVR_FROM_PVR, media_id);
134 ret = _content_get_result(select_query, &stmt);
135 sqlite3_free(select_query);
136 content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
138 media_pvr_s *_pvr = NULL;
140 if (sqlite3_step(stmt) == SQLITE_ROW) {
141 _pvr = g_new0(media_pvr_s, 1);
143 _media_pvr_item_get_detail(stmt, (media_pvr_h)_pvr);
145 *pvr = (media_info_h)_pvr;
147 content_error("Nonexistent media_id[%s]", media_id);
148 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
151 SQLITE3_FINALIZE(stmt);
156 int media_pvr_get_media_id(media_pvr_h pvr, char **media_id)
158 media_pvr_s *_pvr = (media_pvr_s*)pvr;
160 content_retip_if_fail(pvr);
161 content_retip_if_fail(media_id);
163 *media_id = g_strdup(_pvr->media_id);
165 return MEDIA_CONTENT_ERROR_NONE;
168 int media_pvr_get_channel_name(media_pvr_h pvr, char **channel_name)
170 media_pvr_s *_pvr = (media_pvr_s*)pvr;
172 content_retip_if_fail(pvr);
173 content_retip_if_fail(channel_name);
175 *channel_name = g_strdup(_pvr->channel_name);
177 return MEDIA_CONTENT_ERROR_NONE;
180 int media_pvr_get_channel_num(media_pvr_h pvr, char **channel_num)
182 media_pvr_s *_pvr = (media_pvr_s*)pvr;
184 content_retip_if_fail(pvr);
185 content_retip_if_fail(channel_num);
187 *channel_num = g_strdup(_pvr->channel_num);
189 return MEDIA_CONTENT_ERROR_NONE;
192 int media_pvr_get_program_title(media_pvr_h pvr, char **program_title)
194 media_pvr_s *_pvr = (media_pvr_s*)pvr;
196 content_retip_if_fail(pvr);
197 content_retip_if_fail(program_title);
199 *program_title = g_strdup(_pvr->program_title);
201 return MEDIA_CONTENT_ERROR_NONE;
204 int media_pvr_get_program_crid(media_pvr_h pvr, char **program_crid)
206 media_pvr_s *_pvr = (media_pvr_s*)pvr;
208 content_retip_if_fail(pvr);
209 content_retip_if_fail(program_crid);
211 *program_crid = g_strdup(_pvr->program_crid);
213 return MEDIA_CONTENT_ERROR_NONE;
216 int media_pvr_get_guidance(media_pvr_h pvr, char **guidance)
218 media_pvr_s *_pvr = (media_pvr_s*)pvr;
220 content_retip_if_fail(pvr);
221 content_retip_if_fail(guidance);
223 *guidance = g_strdup(_pvr->guidance);
225 return MEDIA_CONTENT_ERROR_NONE;
228 int media_pvr_get_synopsis(media_pvr_h pvr, char **synopsis)
230 media_pvr_s *_pvr = (media_pvr_s*)pvr;
232 content_retip_if_fail(pvr);
233 content_retip_if_fail(synopsis);
235 *synopsis = g_strdup(_pvr->synopsis);
237 return MEDIA_CONTENT_ERROR_NONE;
240 int media_pvr_get_genre(media_pvr_h pvr, char **genre)
242 media_pvr_s *_pvr = (media_pvr_s*)pvr;
244 content_retip_if_fail(pvr);
245 content_retip_if_fail(genre);
247 *genre = g_strdup(_pvr->genre);
249 return MEDIA_CONTENT_ERROR_NONE;
252 int media_pvr_get_language(media_pvr_h pvr, char **language)
254 media_pvr_s *_pvr = (media_pvr_s*)pvr;
256 content_retip_if_fail(pvr);
257 content_retip_if_fail(language);
259 *language = g_strdup(_pvr->language);
261 return MEDIA_CONTENT_ERROR_NONE;
264 int media_pvr_get_path(media_pvr_h pvr, char **path)
266 media_pvr_s *_pvr = (media_pvr_s*)pvr;
268 content_retip_if_fail(pvr);
269 content_retip_if_fail(path);
271 *path = g_strdup(_pvr->path);
273 return MEDIA_CONTENT_ERROR_NONE;
276 int media_pvr_get_storage_id(media_pvr_h pvr, char **storage_id)
278 media_pvr_s *_pvr = (media_pvr_s*)pvr;
280 content_retip_if_fail(pvr);
281 content_retip_if_fail(storage_id);
283 *storage_id = g_strdup(_pvr->storage_id);
285 return MEDIA_CONTENT_ERROR_NONE;
288 int media_pvr_get_size(media_pvr_h pvr, unsigned long long *size)
290 media_pvr_s *_pvr = (media_pvr_s*)pvr;
292 content_retip_if_fail(pvr);
293 content_retip_if_fail(size);
297 return MEDIA_CONTENT_ERROR_NONE;
300 int media_pvr_get_timezone(media_pvr_h pvr, int *timezone)
302 media_pvr_s *_pvr = (media_pvr_s*)pvr;
304 content_retip_if_fail(pvr);
305 content_retip_if_fail(timezone);
307 *timezone = _pvr->timezone;
309 return MEDIA_CONTENT_ERROR_NONE;
312 int media_pvr_get_ptc(media_pvr_h pvr, int *ptc)
314 media_pvr_s *_pvr = (media_pvr_s*)pvr;
316 content_retip_if_fail(pvr);
317 content_retip_if_fail(ptc);
321 return MEDIA_CONTENT_ERROR_NONE;
324 int media_pvr_get_major(media_pvr_h pvr, int *major)
326 media_pvr_s *_pvr = (media_pvr_s*)pvr;
328 content_retip_if_fail(pvr);
329 content_retip_if_fail(major);
331 *major = _pvr->major;
333 return MEDIA_CONTENT_ERROR_NONE;
336 int media_pvr_get_minor(media_pvr_h pvr, int *minor)
338 media_pvr_s *_pvr = (media_pvr_s*)pvr;
340 content_retip_if_fail(pvr);
341 content_retip_if_fail(minor);
343 *minor = _pvr->minor;
345 return MEDIA_CONTENT_ERROR_NONE;
348 int media_pvr_get_channel_type(media_pvr_h pvr, int *channel_type)
350 media_pvr_s *_pvr = (media_pvr_s*)pvr;
352 content_retip_if_fail(pvr);
353 content_retip_if_fail(channel_type);
355 *channel_type = _pvr->channel_type;
357 return MEDIA_CONTENT_ERROR_NONE;
360 int media_pvr_get_program_num(media_pvr_h pvr, int *program_num)
362 media_pvr_s *_pvr = (media_pvr_s*)pvr;
364 content_retip_if_fail(pvr);
365 content_retip_if_fail(program_num);
367 *program_num = _pvr->program_num;
369 return MEDIA_CONTENT_ERROR_NONE;
372 int media_pvr_get_service_profile(media_pvr_h pvr, unsigned int *service_profile)
374 media_pvr_s *_pvr = (media_pvr_s*)pvr;
376 content_retip_if_fail(pvr);
377 content_retip_if_fail(service_profile);
379 *service_profile = _pvr->service_profile;
381 return MEDIA_CONTENT_ERROR_NONE;
384 int media_pvr_get_duration(media_pvr_h pvr, int *duration)
386 media_pvr_s *_pvr = (media_pvr_s*)pvr;
388 content_retip_if_fail(pvr);
389 content_retip_if_fail(duration);
391 *duration = _pvr->duration;
393 return MEDIA_CONTENT_ERROR_NONE;
396 int media_pvr_get_embargo_time(media_pvr_h pvr, int *embargo_time)
398 media_pvr_s *_pvr = (media_pvr_s*)pvr;
400 content_retip_if_fail(pvr);
401 content_retip_if_fail(embargo_time);
403 *embargo_time = _pvr->embargo_time;
405 return MEDIA_CONTENT_ERROR_NONE;
408 int media_pvr_get_expiry_time(media_pvr_h pvr, int *expiry_time)
410 media_pvr_s *_pvr = (media_pvr_s*)pvr;
412 content_retip_if_fail(pvr);
413 content_retip_if_fail(expiry_time);
415 *expiry_time = _pvr->expiry_time;
417 return MEDIA_CONTENT_ERROR_NONE;
420 int media_pvr_get_parental_rating(media_pvr_h pvr, int *parental_rating)
422 media_pvr_s *_pvr = (media_pvr_s*)pvr;
424 content_retip_if_fail(pvr);
425 content_retip_if_fail(parental_rating);
427 *parental_rating = _pvr->parental_rating;
429 return MEDIA_CONTENT_ERROR_NONE;
432 int media_pvr_get_start_time(media_pvr_h pvr, int *start_time)
434 media_pvr_s *_pvr = (media_pvr_s*)pvr;
436 content_retip_if_fail(pvr);
437 content_retip_if_fail(start_time);
439 *start_time = _pvr->start_time;
441 return MEDIA_CONTENT_ERROR_NONE;
444 int media_pvr_get_program_start_time(media_pvr_h pvr, int *program_start_time)
446 media_pvr_s *_pvr = (media_pvr_s*)pvr;
448 content_retip_if_fail(pvr);
449 content_retip_if_fail(program_start_time);
451 *program_start_time = _pvr->program_start_time;
453 return MEDIA_CONTENT_ERROR_NONE;
456 int media_pvr_get_program_end_time(media_pvr_h pvr, int *end_time)
458 media_pvr_s *_pvr = (media_pvr_s*)pvr;
460 content_retip_if_fail(pvr);
461 content_retip_if_fail(end_time);
463 *end_time = _pvr->program_end_time;
465 return MEDIA_CONTENT_ERROR_NONE;
468 int media_pvr_get_program_date(media_pvr_h pvr, int *program_date)
470 media_pvr_s *_pvr = (media_pvr_s*)pvr;
472 content_retip_if_fail(pvr);
473 content_retip_if_fail(program_date);
475 *program_date = _pvr->program_date;
477 return MEDIA_CONTENT_ERROR_NONE;
480 int media_pvr_get_timer_record(media_pvr_h pvr, bool* timer_record)
482 media_pvr_s *_pvr = (media_pvr_s*)pvr;
484 content_retip_if_fail(pvr);
485 content_retip_if_fail(timer_record);
487 *timer_record = _pvr->timer_record;
489 return MEDIA_CONTENT_ERROR_NONE;
492 int media_pvr_get_series_record(media_pvr_h pvr, bool* series_record)
494 media_pvr_s *_pvr = (media_pvr_s*)pvr;
496 content_retip_if_fail(pvr);
497 content_retip_if_fail(series_record);
499 *series_record = _pvr->series_record;
501 return MEDIA_CONTENT_ERROR_NONE;
504 int media_pvr_get_hd(media_pvr_h pvr, int* hd)
506 media_pvr_s *_pvr = (media_pvr_s*)pvr;
508 content_retip_if_fail(pvr);
509 content_retip_if_fail(hd);
513 return MEDIA_CONTENT_ERROR_NONE;
516 int media_pvr_get_subtitle(media_pvr_h pvr, bool* subtitle)
518 media_pvr_s *_pvr = (media_pvr_s*)pvr;
520 content_retip_if_fail(pvr);
521 content_retip_if_fail(subtitle);
523 *subtitle = _pvr->subtitle;
525 return MEDIA_CONTENT_ERROR_NONE;
528 int media_pvr_get_ttx(media_pvr_h pvr, bool* ttx)
530 media_pvr_s *_pvr = (media_pvr_s*)pvr;
532 content_retip_if_fail(pvr);
533 content_retip_if_fail(ttx);
537 return MEDIA_CONTENT_ERROR_NONE;
540 int media_pvr_get_ad(media_pvr_h pvr, bool* ad)
542 media_pvr_s *_pvr = (media_pvr_s*)pvr;
544 content_retip_if_fail(pvr);
545 content_retip_if_fail(ad);
549 return MEDIA_CONTENT_ERROR_NONE;
552 int media_pvr_get_hard_of_hearing_radio(media_pvr_h pvr, bool* hard_of_hearing_radio)
554 media_pvr_s *_pvr = (media_pvr_s*)pvr;
556 content_retip_if_fail(pvr);
557 content_retip_if_fail(hard_of_hearing_radio);
559 *hard_of_hearing_radio = _pvr->hard_of_hearing_radio;
561 return MEDIA_CONTENT_ERROR_NONE;
564 int media_pvr_get_data_service(media_pvr_h pvr, bool* data_service)
566 media_pvr_s *_pvr = (media_pvr_s*)pvr;
568 content_retip_if_fail(pvr);
569 content_retip_if_fail(data_service);
571 *data_service = _pvr->data_service;
573 return MEDIA_CONTENT_ERROR_NONE;
576 int media_pvr_get_content_lock(media_pvr_h pvr, bool* content_lock)
578 media_pvr_s *_pvr = (media_pvr_s*)pvr;
580 content_retip_if_fail(pvr);
581 content_retip_if_fail(content_lock);
583 *content_lock = _pvr->content_lock;
585 return MEDIA_CONTENT_ERROR_NONE;
588 int media_pvr_get_content_watch(media_pvr_h pvr, bool* content_watch)
590 media_pvr_s *_pvr = (media_pvr_s*)pvr;
592 content_retip_if_fail(pvr);
593 content_retip_if_fail(content_watch);
595 *content_watch = _pvr->content_watch;
597 return MEDIA_CONTENT_ERROR_NONE;
600 int media_pvr_get_has_audio_only(media_pvr_h pvr, bool* has_audio_only)
602 media_pvr_s *_pvr = (media_pvr_s*)pvr;
604 content_retip_if_fail(pvr);
605 content_retip_if_fail(has_audio_only);
607 *has_audio_only = _pvr->has_audio_only;
609 return MEDIA_CONTENT_ERROR_NONE;
612 int media_pvr_get_is_local_record(media_pvr_h pvr, bool* is_local_record)
614 media_pvr_s *_pvr = (media_pvr_s*)pvr;
616 content_retip_if_fail(pvr);
617 content_retip_if_fail(is_local_record);
619 *is_local_record = _pvr->is_local_record;
621 return MEDIA_CONTENT_ERROR_NONE;
624 int media_pvr_get_resolution(media_pvr_h pvr, media_pvr_resolution_e* resolution)
626 media_pvr_s *_pvr = (media_pvr_s*)pvr;
628 content_retip_if_fail(pvr);
629 content_retip_if_fail(resolution);
631 *resolution = _pvr->resolution;
633 return MEDIA_CONTENT_ERROR_NONE;
636 int media_pvr_get_aspectratio(media_pvr_h pvr, media_pvr_aspectratio_e* aspectratio)
638 media_pvr_s *_pvr = (media_pvr_s*)pvr;
640 content_retip_if_fail(pvr);
641 content_retip_if_fail(aspectratio);
643 *aspectratio = _pvr->aspectratio;
645 return MEDIA_CONTENT_ERROR_NONE;
648 int media_pvr_get_modified_month(media_pvr_h pvr, char **modified_month)
650 media_pvr_s *_pvr = (media_pvr_s*)pvr;
652 content_retip_if_fail(pvr);
653 content_retip_if_fail(modified_month);
655 *modified_month = g_strdup(_pvr->modified_month);
657 return MEDIA_CONTENT_ERROR_NONE;
660 int media_pvr_get_sports_type(media_pvr_h pvr, int* sports_type)
662 media_pvr_s *_pvr = (media_pvr_s*)pvr;
664 content_retip_if_fail(pvr);
665 content_retip_if_fail(sports_type);
667 *sports_type = _pvr->sports_type;
669 return MEDIA_CONTENT_ERROR_NONE;
672 int media_pvr_get_guidance_length(media_pvr_h pvr, int* guidance_length)
674 media_pvr_s *_pvr = (media_pvr_s*)pvr;
676 content_retip_if_fail(pvr);
677 content_retip_if_fail(guidance_length);
679 *guidance_length = _pvr->guidance_length;
681 return MEDIA_CONTENT_ERROR_NONE;
684 int media_pvr_get_tvmode(media_pvr_h pvr, int* tvmode)
686 media_pvr_s *_pvr = (media_pvr_s*)pvr;
688 content_retip_if_fail(pvr);
689 content_retip_if_fail(tvmode);
691 *tvmode = _pvr->tvmode;
693 return MEDIA_CONTENT_ERROR_NONE;
696 int media_pvr_get_play_count(media_pvr_h pvr, int* play_count)
698 media_pvr_s *_pvr = (media_pvr_s*)pvr;
700 content_retip_if_fail(pvr);
701 content_retip_if_fail(play_count);
703 *play_count = _pvr->play_count;
705 return MEDIA_CONTENT_ERROR_NONE;
708 int media_pvr_get_private_data(media_pvr_h pvr, char **private_data)
710 media_pvr_s *_pvr = (media_pvr_s*)pvr;
712 content_retip_if_fail(pvr);
713 content_retip_if_fail(private_data);
715 *private_data = g_strdup(_pvr->private_data);
717 return MEDIA_CONTENT_ERROR_NONE;
720 int media_pvr_get_highlight(media_pvr_h pvr, bool *highlight)
722 media_pvr_s *_pvr = (media_pvr_s*)pvr;
724 content_retip_if_fail(pvr);
725 content_retip_if_fail(highlight);
727 *highlight = _pvr->highlight;
729 return MEDIA_CONTENT_ERROR_NONE;
732 int media_pvr_set_play_count(media_pvr_h pvr, int play_count)
734 media_pvr_s *_pvr = (media_pvr_s*)pvr;
736 content_retip_if_fail(pvr);
738 _pvr->play_count = play_count;
740 return MEDIA_CONTENT_ERROR_NONE;
743 int media_pvr_set_program_title(media_pvr_h pvr, const char *program_title)
745 media_pvr_s *_pvr = (media_pvr_s*)pvr;
747 content_retip_if_fail(pvr);
748 content_retip_if_fail(STRING_VALID(program_title));
750 g_free(_pvr->program_title);
751 _pvr->program_title = g_strdup(program_title);
753 return MEDIA_CONTENT_ERROR_NONE;
756 int media_pvr_set_content_lock(media_pvr_h pvr, bool content_lock)
758 media_pvr_s *_pvr = (media_pvr_s*)pvr;
760 content_retip_if_fail(pvr);
762 _pvr->content_lock = content_lock;
764 return MEDIA_CONTENT_ERROR_NONE;
767 int media_pvr_set_content_watch(media_pvr_h pvr, bool content_watch)
769 media_pvr_s *_pvr = (media_pvr_s*)pvr;
771 content_retip_if_fail(pvr);
773 _pvr->content_watch = content_watch;
775 return MEDIA_CONTENT_ERROR_NONE;
778 int media_pvr_set_highlight(media_pvr_h pvr, bool highlight)
780 media_pvr_s *_pvr = (media_pvr_s*)pvr;
782 content_retip_if_fail(pvr);
784 _pvr->highlight = highlight;
786 return MEDIA_CONTENT_ERROR_NONE;
789 int media_pvr_update_to_db(media_pvr_h pvr)
791 int ret = MEDIA_CONTENT_ERROR_NONE;
792 media_pvr_s *_pvr = (media_pvr_s*)pvr;
793 char *update_query = NULL;
795 content_retip_if_fail(pvr);
796 content_retip_if_fail(STRING_VALID(_pvr->media_id));
797 content_retip_if_fail(STRING_VALID(_pvr->path));
799 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);
801 ret = _content_query_sql(update_query);
802 sqlite3_free(update_query);
804 if (ret == MEDIA_CONTENT_ERROR_NONE)
805 media_svc_update_pvr_info(_content_get_db_handle(), _pvr->path, _pvr->program_title, _pvr->content_lock);
811 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)
813 content_retip_if_fail(callback);
814 content_retvm_if((group < MEDIA_PVR_GROUP_DURATION) || (group >= MEDIA_GROUP_MAX), MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid group");
816 return _media_db_get_pvr_group_item(group_name, filter, group, callback, user_data);
819 int media_pvr_set_is_local_record(const char *pvr_path, bool is_local_record)
821 int ret = MEDIA_CONTENT_ERROR_NONE;
822 char *update_query = NULL;
823 char storage_id[MEDIA_CONTENT_UUID_SIZE+1] = {0,};
825 content_retip_if_fail(pvr_path);
827 /*get the storage uuid*/
828 ret = media_svc_get_storage_id(_content_get_db_handle(), pvr_path, storage_id, tzplatform_getuid(TZ_USER_NAME));
829 content_retvm_if(ret != MS_MEDIA_ERR_NONE, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid pvr path[%s] error[%d]", pvr_path, ret);
831 content_error("storage uuid [%s]", storage_id);
832 update_query = sqlite3_mprintf(UPDATE_PVR_LOCAL_RECORD_PVR, is_local_record, pvr_path, storage_id);
834 ret = _content_query_sql(update_query);
835 sqlite3_free(update_query);