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 int ret = MEDIA_CONTENT_ERROR_NONE;
28 ret = _media_db_get_group_item_count(NULL, filter, MEDIA_GROUP_PVR, media_count);
30 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
31 return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
37 int media_pvr_foreach_media_from_db(filter_h filter, media_pvr_cb callback, void *user_data)
39 int ret = MEDIA_CONTENT_ERROR_NONE;
41 if (callback != NULL) {
42 ret = _media_db_get_pvr(filter, callback, user_data);
44 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
45 return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
51 int media_pvr_destroy(media_pvr_h pvr)
53 int ret = MEDIA_CONTENT_ERROR_NONE;
54 media_pvr_s *_pvr = (media_pvr_s*)pvr;
56 SAFE_FREE(_pvr->media_id);
57 SAFE_FREE(_pvr->storage_id);
58 SAFE_FREE(_pvr->channel_name);
59 SAFE_FREE(_pvr->channel_num);
60 SAFE_FREE(_pvr->program_title);
61 SAFE_FREE(_pvr->program_crid);
62 SAFE_FREE(_pvr->guidance);
63 SAFE_FREE(_pvr->synopsis);
64 SAFE_FREE(_pvr->genre);
65 SAFE_FREE(_pvr->language);
66 SAFE_FREE(_pvr->path);
67 SAFE_FREE(_pvr->modified_month);
68 SAFE_FREE(_pvr->private_data);
71 ret = MEDIA_CONTENT_ERROR_NONE;
73 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
74 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
80 int media_pvr_clone(media_pvr_h *dst, media_pvr_h src)
82 int ret = MEDIA_CONTENT_ERROR_NONE;
83 media_pvr_s *_src = (media_pvr_s*)src;
86 media_pvr_s *_dst = (media_pvr_s*)calloc(1, sizeof(media_pvr_s));
88 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
89 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
92 if (STRING_VALID(_src->media_id)) {
93 _dst->media_id = strdup(_src->media_id);
94 if (_dst->media_id == NULL) {
95 media_pvr_destroy((media_pvr_h)_dst);
96 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
97 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
101 if (STRING_VALID(_src->channel_name)) {
102 _dst->channel_name = strdup(_src->channel_name);
103 if (_dst->channel_name == NULL) {
104 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
105 media_pvr_destroy((media_pvr_h)_dst);
106 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
110 if (STRING_VALID(_src->channel_num)) {
111 _dst->channel_num = strdup(_src->channel_num);
112 if (_dst->channel_num == NULL) {
113 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
114 media_pvr_destroy((media_pvr_h)_dst);
115 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
119 if (STRING_VALID(_src->program_title)) {
120 _dst->program_title = strdup(_src->program_title);
121 if (_dst->program_title == NULL) {
122 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
123 media_pvr_destroy((media_pvr_h)_dst);
124 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
128 if (STRING_VALID(_src->program_crid)) {
129 _dst->program_crid = strdup(_src->program_crid);
130 if (_dst->program_crid == NULL) {
131 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
132 media_pvr_destroy((media_pvr_h)_dst);
133 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
137 if (STRING_VALID(_src->guidance)) {
138 _dst->guidance = strdup(_src->guidance);
139 if (_dst->guidance == NULL) {
140 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
141 media_pvr_destroy((media_pvr_h)_dst);
142 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
146 if (STRING_VALID(_src->synopsis)) {
147 _dst->synopsis = strdup(_src->synopsis);
148 if (_dst->synopsis == NULL) {
149 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
150 media_pvr_destroy((media_pvr_h)_dst);
151 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
155 if (STRING_VALID(_src->genre)) {
156 _dst->genre = strdup(_src->genre);
157 if (_dst->genre == NULL) {
158 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
159 media_pvr_destroy((media_pvr_h)_dst);
160 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
164 if (STRING_VALID(_src->language)) {
165 _dst->language = strdup(_src->language);
166 if (_dst->language == NULL) {
167 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
168 media_pvr_destroy((media_pvr_h)_dst);
169 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
173 if (STRING_VALID(_src->path)) {
174 _dst->path = strdup(_src->path);
175 if (_dst->path == NULL) {
176 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
177 media_pvr_destroy((media_pvr_h)_dst);
178 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
182 if (STRING_VALID(_src->storage_id)) {
183 _dst->storage_id = strdup(_src->storage_id);
184 if (_dst->storage_id == NULL) {
185 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
186 media_pvr_destroy((media_pvr_h)_dst);
187 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
191 if (STRING_VALID(_src->modified_month)) {
192 _dst->modified_month = strdup(_src->modified_month);
193 if (_dst->modified_month == NULL) {
194 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
195 media_pvr_destroy((media_pvr_h)_dst);
196 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
200 if (STRING_VALID(_src->private_data)) {
201 _dst->private_data = strdup(_src->private_data);
202 if (_dst->private_data == NULL) {
203 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
204 media_pvr_destroy((media_pvr_h)_dst);
205 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
208 _dst->duration = _src->duration;
209 _dst->timezone = _src->timezone;
210 _dst->ptc = _src->ptc;
211 _dst->major = _src->major;
212 _dst->minor = _src->minor;
213 _dst->channel_type = _src->channel_type;
214 _dst->program_num = _src->program_num;
215 _dst->service_profile = _src->service_profile;
216 _dst->timer_record = _src->timer_record;
217 _dst->series_record = _src->series_record;
219 _dst->subtitle = _src->subtitle;
220 _dst->ttx = _src->ttx;
222 _dst->hard_of_hearing_radio = _src->hard_of_hearing_radio;
223 _dst->data_service = _src->data_service;
224 _dst->content_lock = _src->content_lock;
225 _dst->embargo_time = _src->embargo_time;
226 _dst->expiry_time = _src->expiry_time;
227 _dst->size = _src->size;
228 _dst->parental_rating = _src->parental_rating;
229 _dst->start_time = _src->start_time;
230 _dst->program_start_time = _src->program_start_time;
231 _dst->program_end_time = _src->program_end_time;
232 _dst->program_date = _src->program_date;
233 _dst->content_watch = _src->content_watch;
234 _dst->has_audio_only = _src->has_audio_only;
235 _dst->is_local_record = _src->is_local_record;
236 _dst->resolution = _src->resolution;
237 _dst->aspectratio = _src->aspectratio;
238 _dst->sports_type = _src->sports_type;
239 _dst->guidance_length = _src->guidance_length;
240 _dst->tvmode = _src->tvmode;
241 _dst->play_count = _src->play_count;
243 *dst = (media_pvr_h)_dst;
245 ret = MEDIA_CONTENT_ERROR_NONE;
247 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
248 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
254 int media_pvr_get_pvr_from_db(const char *media_id, media_pvr_h *pvr)
256 int ret = MEDIA_CONTENT_ERROR_NONE;
257 char *select_query = NULL;
258 sqlite3_stmt *stmt = NULL;
260 if (!STRING_VALID(media_id) || (pvr == NULL)) {
261 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
262 return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
265 select_query = sqlite3_mprintf(SELECT_PVR_FROM_PVR, media_id);
267 ret = _content_query_prepare(&stmt, select_query, NULL, NULL);
268 sqlite3_free(select_query);
269 media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
271 media_pvr_s *_pvr = NULL;
273 if (sqlite3_step(stmt) == SQLITE_ROW) {
274 _pvr = (media_pvr_s*)calloc(1, sizeof(media_pvr_s));
277 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
278 SQLITE3_FINALIZE(stmt);
279 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
282 _media_pvr_item_get_detail(stmt, (media_pvr_h)_pvr);
284 *pvr = (media_info_h)_pvr;
286 media_content_error("Nonexistent media_id[%s]", media_id);
287 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
290 SQLITE3_FINALIZE(stmt);
295 int media_pvr_get_media_id(media_pvr_h pvr, char **media_id)
297 int ret = MEDIA_CONTENT_ERROR_NONE;
298 media_pvr_s *_pvr = (media_pvr_s*)pvr;
300 if (_pvr && media_id) {
301 if (STRING_VALID(_pvr->media_id)) {
302 *media_id = strdup(_pvr->media_id);
303 if (*media_id == NULL) {
304 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
305 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
311 ret = MEDIA_CONTENT_ERROR_NONE;
313 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
314 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
320 int media_pvr_get_channel_name(media_pvr_h pvr, char **channel_name)
322 int ret = MEDIA_CONTENT_ERROR_NONE;
323 media_pvr_s *_pvr = (media_pvr_s*)pvr;
325 if (_pvr && channel_name) {
326 if (STRING_VALID(_pvr->channel_name)) {
327 *channel_name = strdup(_pvr->channel_name);
328 if (*channel_name == NULL) {
329 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
330 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
333 *channel_name = NULL;
336 ret = MEDIA_CONTENT_ERROR_NONE;
338 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
339 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
345 int media_pvr_get_channel_num(media_pvr_h pvr, char **channel_num)
347 int ret = MEDIA_CONTENT_ERROR_NONE;
348 media_pvr_s *_pvr = (media_pvr_s*)pvr;
350 if (_pvr && channel_num) {
351 if (STRING_VALID(_pvr->channel_num)) {
352 *channel_num = strdup(_pvr->channel_num);
353 if (*channel_num == NULL) {
354 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
355 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
361 ret = MEDIA_CONTENT_ERROR_NONE;
363 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
364 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
370 int media_pvr_get_program_title(media_pvr_h pvr, char **program_title)
372 int ret = MEDIA_CONTENT_ERROR_NONE;
373 media_pvr_s *_pvr = (media_pvr_s*)pvr;
375 if (_pvr && program_title) {
376 if (STRING_VALID(_pvr->program_title)) {
377 *program_title = strdup(_pvr->program_title);
378 if (*program_title == NULL) {
379 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
380 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
383 *program_title = NULL;
386 ret = MEDIA_CONTENT_ERROR_NONE;
388 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
389 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
395 int media_pvr_get_program_crid(media_pvr_h pvr, char **program_crid)
397 int ret = MEDIA_CONTENT_ERROR_NONE;
398 media_pvr_s *_pvr = (media_pvr_s*)pvr;
400 if (_pvr && program_crid) {
401 if (STRING_VALID(_pvr->program_crid)) {
402 *program_crid = strdup(_pvr->program_crid);
403 if (*program_crid == NULL) {
404 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
405 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
408 *program_crid = NULL;
411 ret = MEDIA_CONTENT_ERROR_NONE;
413 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
414 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
420 int media_pvr_get_guidance(media_pvr_h pvr, char **guidance)
422 int ret = MEDIA_CONTENT_ERROR_NONE;
423 media_pvr_s *_pvr = (media_pvr_s*)pvr;
425 if (_pvr && guidance) {
426 if (STRING_VALID(_pvr->guidance)) {
427 *guidance = strdup(_pvr->guidance);
428 if (*guidance == NULL) {
429 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
430 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
436 ret = MEDIA_CONTENT_ERROR_NONE;
438 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
439 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
445 int media_pvr_get_synopsis(media_pvr_h pvr, char **synopsis)
447 int ret = MEDIA_CONTENT_ERROR_NONE;
448 media_pvr_s *_pvr = (media_pvr_s*)pvr;
450 if (_pvr && synopsis) {
451 if (STRING_VALID(_pvr->synopsis)) {
452 *synopsis = strdup(_pvr->synopsis);
453 if (*synopsis == NULL) {
454 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
455 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
461 ret = MEDIA_CONTENT_ERROR_NONE;
463 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
464 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
470 int media_pvr_get_genre(media_pvr_h pvr, char **genre)
472 int ret = MEDIA_CONTENT_ERROR_NONE;
473 media_pvr_s *_pvr = (media_pvr_s*)pvr;
476 if (STRING_VALID(_pvr->genre)) {
477 *genre = strdup(_pvr->genre);
478 if (*genre == NULL) {
479 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
480 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
486 ret = MEDIA_CONTENT_ERROR_NONE;
488 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
489 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
495 int media_pvr_get_language(media_pvr_h pvr, char **language)
497 int ret = MEDIA_CONTENT_ERROR_NONE;
498 media_pvr_s *_pvr = (media_pvr_s*)pvr;
500 if (_pvr && language) {
501 if (STRING_VALID(_pvr->language)) {
502 *language = strdup(_pvr->language);
503 if (*language == NULL) {
504 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
505 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
511 ret = MEDIA_CONTENT_ERROR_NONE;
513 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
514 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
520 int media_pvr_get_path(media_pvr_h pvr, char **path)
522 int ret = MEDIA_CONTENT_ERROR_NONE;
523 media_pvr_s *_pvr = (media_pvr_s*)pvr;
526 if (STRING_VALID(_pvr->path)) {
527 *path = strdup(_pvr->path);
529 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
530 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
536 ret = MEDIA_CONTENT_ERROR_NONE;
538 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
539 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
545 int media_pvr_get_storage_id(media_pvr_h pvr, char **storage_id)
547 int ret = MEDIA_CONTENT_ERROR_NONE;
548 media_pvr_s *_pvr = (media_pvr_s*)pvr;
550 if (_pvr && storage_id) {
551 if (STRING_VALID(_pvr->storage_id)) {
552 *storage_id = strdup(_pvr->storage_id);
553 if (*storage_id == NULL) {
554 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
555 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
561 ret = MEDIA_CONTENT_ERROR_NONE;
563 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
564 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
570 int media_pvr_get_size(media_pvr_h pvr, unsigned long long *size)
572 int ret = MEDIA_CONTENT_ERROR_NONE;
573 media_pvr_s *_pvr = (media_pvr_s*)pvr;
577 ret = MEDIA_CONTENT_ERROR_NONE;
579 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
580 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
586 int media_pvr_get_timezone(media_pvr_h pvr, int *timezone)
588 int ret = MEDIA_CONTENT_ERROR_NONE;
589 media_pvr_s *_pvr = (media_pvr_s*)pvr;
591 if (_pvr && timezone) {
592 *timezone = _pvr->timezone;
593 ret = MEDIA_CONTENT_ERROR_NONE;
595 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
596 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
602 int media_pvr_get_ptc(media_pvr_h pvr, int *ptc)
604 int ret = MEDIA_CONTENT_ERROR_NONE;
605 media_pvr_s *_pvr = (media_pvr_s*)pvr;
609 ret = MEDIA_CONTENT_ERROR_NONE;
611 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
612 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
618 int media_pvr_get_major(media_pvr_h pvr, int *major)
620 int ret = MEDIA_CONTENT_ERROR_NONE;
621 media_pvr_s *_pvr = (media_pvr_s*)pvr;
624 *major = _pvr->major;
625 ret = MEDIA_CONTENT_ERROR_NONE;
627 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
628 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
634 int media_pvr_get_minor(media_pvr_h pvr, int *minor)
636 int ret = MEDIA_CONTENT_ERROR_NONE;
637 media_pvr_s *_pvr = (media_pvr_s*)pvr;
640 *minor = _pvr->minor;
641 ret = MEDIA_CONTENT_ERROR_NONE;
643 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
644 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
650 int media_pvr_get_channel_type(media_pvr_h pvr, int *channel_type)
652 int ret = MEDIA_CONTENT_ERROR_NONE;
653 media_pvr_s *_pvr = (media_pvr_s*)pvr;
655 if (_pvr && channel_type) {
656 *channel_type = _pvr->channel_type;
657 ret = MEDIA_CONTENT_ERROR_NONE;
659 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
660 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
666 int media_pvr_get_program_num(media_pvr_h pvr, int *program_num)
668 int ret = MEDIA_CONTENT_ERROR_NONE;
669 media_pvr_s *_pvr = (media_pvr_s*)pvr;
671 if (_pvr && program_num) {
672 *program_num = _pvr->program_num;
673 ret = MEDIA_CONTENT_ERROR_NONE;
675 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
676 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
682 int media_pvr_get_service_profile(media_pvr_h pvr,unsigned int *service_profile)
684 int ret = MEDIA_CONTENT_ERROR_NONE;
685 media_pvr_s *_pvr = (media_pvr_s*)pvr;
687 if (_pvr && service_profile) {
688 *service_profile = _pvr->service_profile;
689 ret = MEDIA_CONTENT_ERROR_NONE;
691 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
692 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
698 int media_pvr_get_duration(media_pvr_h pvr, int *duration)
700 int ret = MEDIA_CONTENT_ERROR_NONE;
701 media_pvr_s *_pvr = (media_pvr_s*)pvr;
703 if (_pvr && duration) {
704 *duration = _pvr->duration;
705 ret = MEDIA_CONTENT_ERROR_NONE;
707 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
708 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
714 int media_pvr_get_embargo_time(media_pvr_h pvr, int *embargo_time)
716 int ret = MEDIA_CONTENT_ERROR_NONE;
717 media_pvr_s *_pvr = (media_pvr_s*)pvr;
719 if (_pvr && embargo_time) {
720 *embargo_time = _pvr->embargo_time;
721 ret = MEDIA_CONTENT_ERROR_NONE;
723 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
724 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
730 int media_pvr_get_expiry_time(media_pvr_h pvr, int *expiry_time)
732 int ret = MEDIA_CONTENT_ERROR_NONE;
733 media_pvr_s *_pvr = (media_pvr_s*)pvr;
735 if (_pvr && expiry_time) {
736 *expiry_time = _pvr->expiry_time;
737 ret = MEDIA_CONTENT_ERROR_NONE;
739 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
740 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
746 int media_pvr_get_parental_rating(media_pvr_h pvr, int *parental_rating)
748 int ret = MEDIA_CONTENT_ERROR_NONE;
749 media_pvr_s *_pvr = (media_pvr_s*)pvr;
751 if (_pvr && parental_rating) {
752 *parental_rating = _pvr->parental_rating;
753 ret = MEDIA_CONTENT_ERROR_NONE;
755 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
756 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
762 int media_pvr_get_start_time(media_pvr_h pvr, int *start_time)
764 int ret = MEDIA_CONTENT_ERROR_NONE;
765 media_pvr_s *_pvr = (media_pvr_s*)pvr;
767 if (_pvr && start_time) {
768 *start_time = _pvr->start_time;
769 ret = MEDIA_CONTENT_ERROR_NONE;
771 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
772 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
778 int media_pvr_get_program_start_time(media_pvr_h pvr, int *program_start_time)
780 int ret = MEDIA_CONTENT_ERROR_NONE;
781 media_pvr_s *_pvr = (media_pvr_s*)pvr;
783 if (_pvr && program_start_time) {
784 *program_start_time = _pvr->program_start_time;
785 ret = MEDIA_CONTENT_ERROR_NONE;
787 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
788 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
794 int media_pvr_get_program_end_time(media_pvr_h pvr, int *end_time)
796 int ret = MEDIA_CONTENT_ERROR_NONE;
797 media_pvr_s *_pvr = (media_pvr_s*)pvr;
799 if (_pvr && end_time) {
800 *end_time = _pvr->program_end_time;
801 ret = MEDIA_CONTENT_ERROR_NONE;
803 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
804 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
810 int media_pvr_get_program_date(media_pvr_h pvr, int *program_date)
812 int ret = MEDIA_CONTENT_ERROR_NONE;
813 media_pvr_s *_pvr = (media_pvr_s*)pvr;
815 if (_pvr && program_date) {
816 *program_date = _pvr->program_date;
817 ret = MEDIA_CONTENT_ERROR_NONE;
819 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
820 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
826 int media_pvr_get_timer_record(media_pvr_h pvr, bool* timer_record)
828 int ret = MEDIA_CONTENT_ERROR_NONE;
829 media_pvr_s *_pvr = (media_pvr_s*)pvr;
831 if (_pvr && timer_record) {
832 *timer_record = _pvr->timer_record;
833 ret = MEDIA_CONTENT_ERROR_NONE;
835 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
836 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
842 int media_pvr_get_series_record(media_pvr_h pvr, bool* series_record)
844 int ret = MEDIA_CONTENT_ERROR_NONE;
845 media_pvr_s *_pvr = (media_pvr_s*)pvr;
847 if (_pvr && series_record) {
848 *series_record = _pvr->series_record;
849 ret = MEDIA_CONTENT_ERROR_NONE;
851 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
852 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
858 int media_pvr_get_hd(media_pvr_h pvr, int* hd)
860 int ret = MEDIA_CONTENT_ERROR_NONE;
861 media_pvr_s *_pvr = (media_pvr_s*)pvr;
865 ret = MEDIA_CONTENT_ERROR_NONE;
867 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
868 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
874 int media_pvr_get_subtitle(media_pvr_h pvr, bool* subtitle)
876 int ret = MEDIA_CONTENT_ERROR_NONE;
877 media_pvr_s *_pvr = (media_pvr_s*)pvr;
879 if (_pvr && subtitle) {
880 *subtitle = _pvr->subtitle;
881 ret = MEDIA_CONTENT_ERROR_NONE;
883 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
884 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
890 int media_pvr_get_ttx(media_pvr_h pvr, bool* ttx)
892 int ret = MEDIA_CONTENT_ERROR_NONE;
893 media_pvr_s *_pvr = (media_pvr_s*)pvr;
897 ret = MEDIA_CONTENT_ERROR_NONE;
899 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
900 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
906 int media_pvr_get_ad(media_pvr_h pvr, bool* ad)
908 int ret = MEDIA_CONTENT_ERROR_NONE;
909 media_pvr_s *_pvr = (media_pvr_s*)pvr;
913 ret = MEDIA_CONTENT_ERROR_NONE;
915 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
916 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
922 int media_pvr_get_hard_of_hearing_radio(media_pvr_h pvr, bool* hard_of_hearing_radio)
924 int ret = MEDIA_CONTENT_ERROR_NONE;
925 media_pvr_s *_pvr = (media_pvr_s*)pvr;
927 if (_pvr && hard_of_hearing_radio) {
928 *hard_of_hearing_radio = _pvr->hard_of_hearing_radio;
929 ret = MEDIA_CONTENT_ERROR_NONE;
931 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
932 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
938 int media_pvr_get_data_service(media_pvr_h pvr, bool* data_service)
940 int ret = MEDIA_CONTENT_ERROR_NONE;
941 media_pvr_s *_pvr = (media_pvr_s*)pvr;
943 if (_pvr && data_service) {
944 *data_service = _pvr->data_service;
945 ret = MEDIA_CONTENT_ERROR_NONE;
947 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
948 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
954 int media_pvr_get_content_lock(media_pvr_h pvr, bool* content_lock)
956 int ret = MEDIA_CONTENT_ERROR_NONE;
957 media_pvr_s *_pvr = (media_pvr_s*)pvr;
959 if (_pvr && content_lock) {
960 *content_lock = _pvr->content_lock;
961 ret = MEDIA_CONTENT_ERROR_NONE;
963 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
964 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
970 int media_pvr_get_content_watch(media_pvr_h pvr, bool* content_watch)
972 int ret = MEDIA_CONTENT_ERROR_NONE;
973 media_pvr_s *_pvr = (media_pvr_s*)pvr;
975 if (_pvr && content_watch) {
976 *content_watch = _pvr->content_watch;
977 ret = MEDIA_CONTENT_ERROR_NONE;
979 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
980 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
986 int media_pvr_get_has_audio_only(media_pvr_h pvr, bool* has_audio_only)
988 int ret = MEDIA_CONTENT_ERROR_NONE;
989 media_pvr_s *_pvr = (media_pvr_s*)pvr;
991 if (_pvr && has_audio_only) {
992 *has_audio_only = _pvr->has_audio_only;
993 ret = MEDIA_CONTENT_ERROR_NONE;
995 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
996 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
1002 int media_pvr_get_is_local_record(media_pvr_h pvr, bool* is_local_record)
1004 int ret = MEDIA_CONTENT_ERROR_NONE;
1005 media_pvr_s *_pvr = (media_pvr_s*)pvr;
1007 if (_pvr && is_local_record) {
1008 *is_local_record = _pvr->is_local_record;
1009 ret = MEDIA_CONTENT_ERROR_NONE;
1011 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
1012 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
1018 int media_pvr_get_resolution(media_pvr_h pvr, media_pvr_resolution_e* resolution)
1020 int ret = MEDIA_CONTENT_ERROR_NONE;
1021 media_pvr_s *_pvr = (media_pvr_s*)pvr;
1023 if (_pvr && resolution) {
1024 *resolution = _pvr->resolution;
1025 ret = MEDIA_CONTENT_ERROR_NONE;
1027 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
1028 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
1034 int media_pvr_get_aspectratio(media_pvr_h pvr, media_pvr_aspectratio_e* aspectratio)
1036 int ret = MEDIA_CONTENT_ERROR_NONE;
1037 media_pvr_s *_pvr = (media_pvr_s*)pvr;
1039 if (_pvr && aspectratio) {
1040 *aspectratio = _pvr->aspectratio;
1041 ret = MEDIA_CONTENT_ERROR_NONE;
1043 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
1044 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
1050 int media_pvr_get_modified_month(media_pvr_h pvr, char **modified_month)
1052 int ret = MEDIA_CONTENT_ERROR_NONE;
1053 media_pvr_s *_pvr = (media_pvr_s*)pvr;
1055 if (_pvr && modified_month) {
1056 if (STRING_VALID(_pvr->modified_month)) {
1057 *modified_month = strdup(_pvr->modified_month);
1058 if (*modified_month == NULL) {
1059 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
1060 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
1063 *modified_month = NULL;
1066 ret = MEDIA_CONTENT_ERROR_NONE;
1068 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
1069 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
1075 int media_pvr_get_sports_type(media_pvr_h pvr, int* sports_type)
1077 int ret = MEDIA_CONTENT_ERROR_NONE;
1078 media_pvr_s *_pvr = (media_pvr_s*)pvr;
1080 if (_pvr && sports_type) {
1081 *sports_type = _pvr->sports_type;
1082 ret = MEDIA_CONTENT_ERROR_NONE;
1084 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
1085 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
1091 int media_pvr_get_guidance_length(media_pvr_h pvr, int* guidance_length)
1093 int ret = MEDIA_CONTENT_ERROR_NONE;
1094 media_pvr_s *_pvr = (media_pvr_s*)pvr;
1096 if (_pvr && guidance_length) {
1097 *guidance_length = _pvr->guidance_length;
1098 ret = MEDIA_CONTENT_ERROR_NONE;
1100 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
1101 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
1107 int media_pvr_get_tvmode(media_pvr_h pvr, int* tvmode)
1109 int ret = MEDIA_CONTENT_ERROR_NONE;
1110 media_pvr_s *_pvr = (media_pvr_s*)pvr;
1112 if (_pvr && tvmode) {
1113 *tvmode = _pvr->tvmode;
1114 ret = MEDIA_CONTENT_ERROR_NONE;
1116 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
1117 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
1123 int media_pvr_get_play_count(media_pvr_h pvr, int* play_count)
1125 int ret = MEDIA_CONTENT_ERROR_NONE;
1126 media_pvr_s *_pvr = (media_pvr_s*)pvr;
1128 if (_pvr && play_count) {
1129 *play_count = _pvr->play_count;
1130 ret = MEDIA_CONTENT_ERROR_NONE;
1132 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
1133 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
1139 int media_pvr_get_private_data(media_pvr_h pvr, char **private_data)
1141 int ret = MEDIA_CONTENT_ERROR_NONE;
1142 media_pvr_s *_pvr = (media_pvr_s*)pvr;
1144 if (_pvr && private_data) {
1145 if (STRING_VALID(_pvr->private_data)) {
1146 *private_data = strdup(_pvr->private_data);
1147 if (*private_data == NULL) {
1148 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
1149 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
1152 *private_data = NULL;
1155 ret = MEDIA_CONTENT_ERROR_NONE;
1157 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
1158 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
1164 int media_pvr_get_highlight(media_pvr_h pvr, bool *highlight)
1166 int ret = MEDIA_CONTENT_ERROR_NONE;
1167 media_pvr_s *_pvr = (media_pvr_s*)pvr;
1169 if (_pvr && highlight) {
1170 *highlight = _pvr->highlight;
1171 ret = MEDIA_CONTENT_ERROR_NONE;
1173 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
1174 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
1180 int media_pvr_set_play_count(media_pvr_h pvr, int play_count)
1182 int ret = MEDIA_CONTENT_ERROR_NONE;
1183 media_pvr_s *_pvr = (media_pvr_s*)pvr;
1186 _pvr->play_count = play_count;
1188 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
1189 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
1195 int media_pvr_set_program_title(media_pvr_h pvr, const char *program_title)
1197 int ret = MEDIA_CONTENT_ERROR_NONE;
1198 media_pvr_s *_pvr = (media_pvr_s*)pvr;
1200 if (_pvr != NULL && STRING_VALID(program_title)) {
1201 SAFE_FREE(_pvr->program_title);
1202 _pvr->program_title = strdup(program_title);
1203 if (_pvr->program_title == NULL) {
1204 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
1205 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
1208 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
1209 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
1215 int media_pvr_set_content_lock(media_pvr_h pvr, bool content_lock)
1217 int ret = MEDIA_CONTENT_ERROR_NONE;
1218 media_pvr_s *_pvr = (media_pvr_s*)pvr;
1221 _pvr->content_lock = content_lock;
1223 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
1224 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
1230 int media_pvr_set_content_watch(media_pvr_h pvr, bool content_watch)
1232 int ret = MEDIA_CONTENT_ERROR_NONE;
1233 media_pvr_s *_pvr = (media_pvr_s*)pvr;
1236 _pvr->content_watch = content_watch;
1238 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
1239 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
1245 int media_pvr_set_highlight(media_pvr_h pvr, bool highlight)
1247 int ret = MEDIA_CONTENT_ERROR_NONE;
1248 media_pvr_s *_pvr = (media_pvr_s*)pvr;
1251 _pvr->highlight = highlight;
1253 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
1254 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
1260 int media_pvr_update_to_db(media_pvr_h pvr)
1262 int ret = MEDIA_CONTENT_ERROR_NONE;
1263 media_pvr_s *_pvr = (media_pvr_s*)pvr;
1264 char *update_query = NULL;
1266 if (_pvr != NULL && STRING_VALID(_pvr->media_id) && STRING_VALID(_pvr->path)) {
1267 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);
1269 ret = _content_query_sql(update_query);
1270 sqlite3_free(update_query);
1272 if (ret == MEDIA_CONTENT_ERROR_NONE)
1273 media_svc_update_pvr_info(_content_get_db_handle(), _pvr->path, _pvr->program_title, _pvr->content_lock);
1275 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
1276 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
1282 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)
1284 int ret = MEDIA_CONTENT_ERROR_NONE;
1286 if ((callback == NULL) || (group < MEDIA_PVR_GROUP_DURATION) || (group >= MEDIA_GROUP_MAX)) {
1287 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
1288 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
1290 ret = _media_db_get_pvr_group_item(group_name, filter, group, callback, user_data);
1296 int media_pvr_set_is_local_record(const char *pvr_path, bool is_local_record)
1298 int ret = MEDIA_CONTENT_ERROR_NONE;
1299 char *update_query = NULL;
1300 char storage_id[MEDIA_CONTENT_UUID_SIZE+1] = {0,};
1302 if (pvr_path == NULL) {
1303 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
1304 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
1307 /*get the storage uuid*/
1308 ret = media_svc_get_storage_id(_content_get_db_handle(), pvr_path, storage_id, tzplatform_getuid(TZ_USER_NAME));
1309 if (ret == MS_MEDIA_ERR_NONE) {
1310 media_content_error("storage uuid [%s]", storage_id);
1311 update_query = sqlite3_mprintf(UPDATE_PVR_LOCAL_RECORD_PVR, is_local_record, pvr_path, storage_id);
1313 ret = _content_query_sql(update_query);
1314 sqlite3_free(update_query);
1316 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
1317 media_content_error("pvr path[%s] error[%d]", pvr_path, ret);
1318 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;