Fix TV build error
[platform/core/api/media-content.git] / src / media_pvr.c
1  /*
2  * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
3  *
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
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  */
16
17 #ifdef _USE_TVPD_MODE
18 #include <media_info_private.h>
19 #include <media_util_private.h>
20 #include <media_pvr.h>
21
22
23 int media_pvr_foreach_media_from_db(filter_h filter, media_pvr_cb callback, void *user_data)
24 {
25         content_retip_if_fail(callback);
26
27         return _media_db_get_pvr(filter, callback, user_data);
28 }
29
30 int media_pvr_destroy(media_pvr_h pvr)
31 {
32         media_pvr_s *_pvr = (media_pvr_s*)pvr;
33
34         content_retip_if_fail(pvr);
35
36         g_free(_pvr->media_id);
37         g_free(_pvr->storage_id);
38         g_free(_pvr->channel_name);
39         g_free(_pvr->channel_num);
40         g_free(_pvr->program_title);
41         g_free(_pvr->program_crid);
42         g_free(_pvr->guidance);
43         g_free(_pvr->synopsis);
44         g_free(_pvr->genre);
45         g_free(_pvr->language);
46         g_free(_pvr->path);
47         g_free(_pvr->modified_month);
48         g_free(_pvr->private_data);
49         g_free(_pvr);
50
51         return MEDIA_CONTENT_ERROR_NONE;
52 }
53
54 int media_pvr_clone(media_pvr_h *dst, media_pvr_h src)
55 {
56         media_pvr_s *_src = (media_pvr_s*)src;
57
58         content_retip_if_fail(dst);
59         content_retip_if_fail(src);
60
61         media_pvr_s *_dst = g_new0(media_pvr_s, 1);
62
63         _dst->media_id = g_strdup(_src->media_id);
64         _dst->channel_name = g_strdup(_src->channel_name);
65         _dst->channel_num = g_strdup(_src->channel_num);
66         _dst->program_title = g_strdup(_src->program_title);
67         _dst->program_crid = g_strdup(_src->program_crid);
68         _dst->guidance = g_strdup(_src->guidance);
69         _dst->synopsis = g_strdup(_src->synopsis);
70         _dst->genre = g_strdup(_src->genre);
71         _dst->language = g_strdup(_src->language);
72         _dst->path = g_strdup(_src->path);
73         _dst->storage_id = g_strdup(_src->storage_id);
74         _dst->modified_month = g_strdup(_src->modified_month);
75         _dst->private_data = g_strdup(_src->private_data);
76         _dst->duration = _src->duration;
77         _dst->timezone = _src->timezone;
78         _dst->ptc = _src->ptc;
79         _dst->major = _src->major;
80         _dst->minor = _src->minor;
81         _dst->channel_type = _src->channel_type;
82         _dst->program_num = _src->program_num;
83         _dst->service_profile = _src->service_profile;
84         _dst->timer_record = _src->timer_record;
85         _dst->series_record = _src->series_record;
86         _dst->hd = _src->hd;
87         _dst->subtitle = _src->subtitle;
88         _dst->ttx = _src->ttx;
89         _dst->ad = _src->ad;
90         _dst->hard_of_hearing_radio = _src->hard_of_hearing_radio;
91         _dst->data_service = _src->data_service;
92         _dst->content_lock = _src->content_lock;
93         _dst->embargo_time = _src->embargo_time;
94         _dst->expiry_time = _src->expiry_time;
95         _dst->size = _src->size;
96         _dst->parental_rating = _src->parental_rating;
97         _dst->start_time = _src->start_time;
98         _dst->program_start_time = _src->program_start_time;
99         _dst->program_end_time = _src->program_end_time;
100         _dst->program_date = _src->program_date;
101         _dst->content_watch = _src->content_watch;
102         _dst->has_audio_only = _src->has_audio_only;
103         _dst->is_local_record = _src->is_local_record;
104         _dst->resolution = _src->resolution;
105         _dst->aspectratio = _src->aspectratio;
106         _dst->sports_type = _src->sports_type;
107         _dst->guidance_length = _src->guidance_length;
108         _dst->tvmode = _src->tvmode;
109         _dst->play_count = _src->play_count;
110
111         *dst = (media_pvr_h)_dst;
112
113         return MEDIA_CONTENT_ERROR_NONE;
114 }
115
116 int media_pvr_get_pvr_from_db(const char *media_id, media_pvr_h *pvr)
117 {
118         int ret = MEDIA_CONTENT_ERROR_NONE;
119         char *select_query = NULL;
120         sqlite3_stmt *stmt = NULL;
121
122         content_retip_if_fail(STRING_VALID(media_id));
123         content_retip_if_fail(pvr);
124
125         select_query = sqlite3_mprintf(SELECT_PVR_FROM_PVR, media_id);
126
127         ret = _content_get_result(select_query, &stmt);
128         sqlite3_free(select_query);
129         content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
130
131         media_pvr_s *_pvr = NULL;
132
133         if (sqlite3_step(stmt) == SQLITE_ROW) {
134                 _pvr = g_new0(media_pvr_s, 1);
135
136                 _media_pvr_item_get_detail(stmt, (media_pvr_h)_pvr);
137
138                 *pvr = (media_info_h)_pvr;
139         } else {
140                 content_error("Nonexistent media_id[%s]", media_id);
141                 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
142         }
143
144         SQLITE3_FINALIZE(stmt);
145
146         return ret;
147 }
148
149 int media_pvr_get_media_id(media_pvr_h pvr, char **media_id)
150 {
151         media_pvr_s *_pvr = (media_pvr_s*)pvr;
152
153         content_retip_if_fail(pvr);
154         content_retip_if_fail(media_id);
155
156         *media_id = g_strdup(_pvr->media_id);
157
158         return MEDIA_CONTENT_ERROR_NONE;
159 }
160
161 int media_pvr_get_channel_name(media_pvr_h pvr, char **channel_name)
162 {
163         media_pvr_s *_pvr = (media_pvr_s*)pvr;
164
165         content_retip_if_fail(pvr);
166         content_retip_if_fail(channel_name);
167
168         *channel_name = g_strdup(_pvr->channel_name);
169
170         return MEDIA_CONTENT_ERROR_NONE;
171 }
172
173 int media_pvr_get_channel_num(media_pvr_h pvr, char **channel_num)
174 {
175         media_pvr_s *_pvr = (media_pvr_s*)pvr;
176
177         content_retip_if_fail(pvr);
178         content_retip_if_fail(channel_num);
179
180         *channel_num = g_strdup(_pvr->channel_num);
181
182         return MEDIA_CONTENT_ERROR_NONE;
183 }
184
185 int media_pvr_get_program_title(media_pvr_h pvr, char **program_title)
186 {
187         media_pvr_s *_pvr = (media_pvr_s*)pvr;
188
189         content_retip_if_fail(pvr);
190         content_retip_if_fail(program_title);
191
192         *program_title = g_strdup(_pvr->program_title);
193
194         return MEDIA_CONTENT_ERROR_NONE;
195 }
196
197 int media_pvr_get_program_crid(media_pvr_h pvr, char **program_crid)
198 {
199         media_pvr_s *_pvr = (media_pvr_s*)pvr;
200
201         content_retip_if_fail(pvr);
202         content_retip_if_fail(program_crid);
203
204         *program_crid = g_strdup(_pvr->program_crid);
205
206         return MEDIA_CONTENT_ERROR_NONE;
207 }
208
209 int media_pvr_get_guidance(media_pvr_h pvr, char **guidance)
210 {
211         media_pvr_s *_pvr = (media_pvr_s*)pvr;
212
213         content_retip_if_fail(pvr);
214         content_retip_if_fail(guidance);
215
216         *guidance = g_strdup(_pvr->guidance);
217
218         return MEDIA_CONTENT_ERROR_NONE;
219 }
220
221 int media_pvr_get_synopsis(media_pvr_h pvr, char **synopsis)
222 {
223         media_pvr_s *_pvr = (media_pvr_s*)pvr;
224
225         content_retip_if_fail(pvr);
226         content_retip_if_fail(synopsis);
227
228         *synopsis = g_strdup(_pvr->synopsis);
229
230         return MEDIA_CONTENT_ERROR_NONE;
231 }
232
233 int media_pvr_get_genre(media_pvr_h pvr, char **genre)
234 {
235         media_pvr_s *_pvr = (media_pvr_s*)pvr;
236
237         content_retip_if_fail(pvr);
238         content_retip_if_fail(genre);
239
240         *genre = g_strdup(_pvr->genre);
241
242         return MEDIA_CONTENT_ERROR_NONE;
243 }
244
245 int media_pvr_get_language(media_pvr_h pvr, char **language)
246 {
247         media_pvr_s *_pvr = (media_pvr_s*)pvr;
248
249         content_retip_if_fail(pvr);
250         content_retip_if_fail(language);
251
252         *language = g_strdup(_pvr->language);
253
254         return MEDIA_CONTENT_ERROR_NONE;
255 }
256
257 int media_pvr_get_path(media_pvr_h pvr, char **path)
258 {
259         media_pvr_s *_pvr = (media_pvr_s*)pvr;
260
261         content_retip_if_fail(pvr);
262         content_retip_if_fail(path);
263
264         *path = g_strdup(_pvr->path);
265
266         return MEDIA_CONTENT_ERROR_NONE;
267 }
268
269 int media_pvr_get_storage_id(media_pvr_h pvr, char **storage_id)
270 {
271         media_pvr_s *_pvr = (media_pvr_s*)pvr;
272
273         content_retip_if_fail(pvr);
274         content_retip_if_fail(storage_id);
275
276         *storage_id = g_strdup(_pvr->storage_id);
277
278         return MEDIA_CONTENT_ERROR_NONE;
279 }
280
281 int media_pvr_get_size(media_pvr_h pvr, unsigned long long *size)
282 {
283         media_pvr_s *_pvr = (media_pvr_s*)pvr;
284
285         content_retip_if_fail(pvr);
286         content_retip_if_fail(size);
287
288         *size = _pvr->size;
289
290         return MEDIA_CONTENT_ERROR_NONE;
291 }
292
293 int media_pvr_get_timezone(media_pvr_h pvr, int *timezone)
294 {
295         media_pvr_s *_pvr = (media_pvr_s*)pvr;
296
297         content_retip_if_fail(pvr);
298         content_retip_if_fail(timezone);
299
300         *timezone = _pvr->timezone;
301
302         return MEDIA_CONTENT_ERROR_NONE;
303 }
304
305 int media_pvr_get_ptc(media_pvr_h pvr, int *ptc)
306 {
307         media_pvr_s *_pvr = (media_pvr_s*)pvr;
308
309         content_retip_if_fail(pvr);
310         content_retip_if_fail(ptc);
311
312         *ptc = _pvr->ptc;
313
314         return MEDIA_CONTENT_ERROR_NONE;
315 }
316
317 int media_pvr_get_major(media_pvr_h pvr, int *major)
318 {
319         media_pvr_s *_pvr = (media_pvr_s*)pvr;
320
321         content_retip_if_fail(pvr);
322         content_retip_if_fail(major);
323
324         *major = _pvr->major;
325
326         return MEDIA_CONTENT_ERROR_NONE;
327 }
328
329 int media_pvr_get_minor(media_pvr_h pvr, int *minor)
330 {
331         media_pvr_s *_pvr = (media_pvr_s*)pvr;
332
333         content_retip_if_fail(pvr);
334         content_retip_if_fail(minor);
335
336         *minor = _pvr->minor;
337
338         return MEDIA_CONTENT_ERROR_NONE;
339 }
340
341 int media_pvr_get_channel_type(media_pvr_h pvr, int *channel_type)
342 {
343         media_pvr_s *_pvr = (media_pvr_s*)pvr;
344
345         content_retip_if_fail(pvr);
346         content_retip_if_fail(channel_type);
347
348         *channel_type = _pvr->channel_type;
349
350         return MEDIA_CONTENT_ERROR_NONE;
351 }
352
353 int media_pvr_get_program_num(media_pvr_h pvr, int *program_num)
354 {
355         media_pvr_s *_pvr = (media_pvr_s*)pvr;
356
357         content_retip_if_fail(pvr);
358         content_retip_if_fail(program_num);
359
360         *program_num = _pvr->program_num;
361
362         return MEDIA_CONTENT_ERROR_NONE;
363 }
364
365 int media_pvr_get_service_profile(media_pvr_h pvr, unsigned int *service_profile)
366 {
367         media_pvr_s *_pvr = (media_pvr_s*)pvr;
368
369         content_retip_if_fail(pvr);
370         content_retip_if_fail(service_profile);
371
372         *service_profile = _pvr->service_profile;
373
374         return MEDIA_CONTENT_ERROR_NONE;
375 }
376
377 int media_pvr_get_duration(media_pvr_h pvr, int *duration)
378 {
379         media_pvr_s *_pvr = (media_pvr_s*)pvr;
380
381         content_retip_if_fail(pvr);
382         content_retip_if_fail(duration);
383
384         *duration = _pvr->duration;
385
386         return MEDIA_CONTENT_ERROR_NONE;
387 }
388
389 int media_pvr_get_embargo_time(media_pvr_h pvr, int *embargo_time)
390 {
391         media_pvr_s *_pvr = (media_pvr_s*)pvr;
392
393         content_retip_if_fail(pvr);
394         content_retip_if_fail(embargo_time);
395
396         *embargo_time = _pvr->embargo_time;
397
398         return MEDIA_CONTENT_ERROR_NONE;
399 }
400
401 int media_pvr_get_expiry_time(media_pvr_h pvr, int *expiry_time)
402 {
403         media_pvr_s *_pvr = (media_pvr_s*)pvr;
404
405         content_retip_if_fail(pvr);
406         content_retip_if_fail(expiry_time);
407
408         *expiry_time = _pvr->expiry_time;
409
410         return MEDIA_CONTENT_ERROR_NONE;
411 }
412
413 int media_pvr_get_parental_rating(media_pvr_h pvr, int *parental_rating)
414 {
415         media_pvr_s *_pvr = (media_pvr_s*)pvr;
416
417         content_retip_if_fail(pvr);
418         content_retip_if_fail(parental_rating);
419
420         *parental_rating = _pvr->parental_rating;
421
422         return MEDIA_CONTENT_ERROR_NONE;
423 }
424
425 int media_pvr_get_start_time(media_pvr_h pvr, int *start_time)
426 {
427         media_pvr_s *_pvr = (media_pvr_s*)pvr;
428
429         content_retip_if_fail(pvr);
430         content_retip_if_fail(start_time);
431
432         *start_time = _pvr->start_time;
433
434         return MEDIA_CONTENT_ERROR_NONE;
435 }
436
437 int media_pvr_get_program_start_time(media_pvr_h pvr, int *program_start_time)
438 {
439         media_pvr_s *_pvr = (media_pvr_s*)pvr;
440
441         content_retip_if_fail(pvr);
442         content_retip_if_fail(program_start_time);
443
444         *program_start_time = _pvr->program_start_time;
445
446         return MEDIA_CONTENT_ERROR_NONE;
447 }
448
449 int media_pvr_get_program_end_time(media_pvr_h pvr, int *end_time)
450 {
451         media_pvr_s *_pvr = (media_pvr_s*)pvr;
452
453         content_retip_if_fail(pvr);
454         content_retip_if_fail(end_time);
455
456         *end_time = _pvr->program_end_time;
457
458         return MEDIA_CONTENT_ERROR_NONE;
459 }
460
461 int media_pvr_get_program_date(media_pvr_h pvr, int *program_date)
462 {
463         media_pvr_s *_pvr = (media_pvr_s*)pvr;
464
465         content_retip_if_fail(pvr);
466         content_retip_if_fail(program_date);
467
468         *program_date = _pvr->program_date;
469
470         return MEDIA_CONTENT_ERROR_NONE;
471 }
472
473 int media_pvr_get_timer_record(media_pvr_h pvr, bool* timer_record)
474 {
475         media_pvr_s *_pvr = (media_pvr_s*)pvr;
476
477         content_retip_if_fail(pvr);
478         content_retip_if_fail(timer_record);
479
480         *timer_record = _pvr->timer_record;
481
482         return MEDIA_CONTENT_ERROR_NONE;
483 }
484
485 int media_pvr_get_series_record(media_pvr_h pvr, bool* series_record)
486 {
487         media_pvr_s *_pvr = (media_pvr_s*)pvr;
488
489         content_retip_if_fail(pvr);
490         content_retip_if_fail(series_record);
491
492         *series_record = _pvr->series_record;
493
494         return MEDIA_CONTENT_ERROR_NONE;
495 }
496
497 int media_pvr_get_hd(media_pvr_h pvr, int* hd)
498 {
499         media_pvr_s *_pvr = (media_pvr_s*)pvr;
500
501         content_retip_if_fail(pvr);
502         content_retip_if_fail(hd);
503
504         *hd = _pvr->hd;
505
506         return MEDIA_CONTENT_ERROR_NONE;
507 }
508
509 int media_pvr_get_subtitle(media_pvr_h pvr, bool* subtitle)
510 {
511         media_pvr_s *_pvr = (media_pvr_s*)pvr;
512
513         content_retip_if_fail(pvr);
514         content_retip_if_fail(subtitle);
515
516         *subtitle = _pvr->subtitle;
517
518         return MEDIA_CONTENT_ERROR_NONE;
519 }
520
521 int media_pvr_get_ttx(media_pvr_h pvr, bool* ttx)
522 {
523         media_pvr_s *_pvr = (media_pvr_s*)pvr;
524
525         content_retip_if_fail(pvr);
526         content_retip_if_fail(ttx);
527
528         *ttx = _pvr->ttx;
529
530         return MEDIA_CONTENT_ERROR_NONE;
531 }
532
533 int media_pvr_get_ad(media_pvr_h pvr, bool* ad)
534 {
535         media_pvr_s *_pvr = (media_pvr_s*)pvr;
536
537         content_retip_if_fail(pvr);
538         content_retip_if_fail(ad);
539
540         *ad = _pvr->ad;
541
542         return MEDIA_CONTENT_ERROR_NONE;
543 }
544
545 int media_pvr_get_hard_of_hearing_radio(media_pvr_h pvr, bool* hard_of_hearing_radio)
546 {
547         media_pvr_s *_pvr = (media_pvr_s*)pvr;
548
549         content_retip_if_fail(pvr);
550         content_retip_if_fail(hard_of_hearing_radio);
551
552         *hard_of_hearing_radio = _pvr->hard_of_hearing_radio;
553
554         return MEDIA_CONTENT_ERROR_NONE;
555 }
556
557 int media_pvr_get_data_service(media_pvr_h pvr, bool* data_service)
558 {
559         media_pvr_s *_pvr = (media_pvr_s*)pvr;
560
561         content_retip_if_fail(pvr);
562         content_retip_if_fail(data_service);
563
564         *data_service = _pvr->data_service;
565
566         return MEDIA_CONTENT_ERROR_NONE;
567 }
568
569 int media_pvr_get_content_lock(media_pvr_h pvr, bool* content_lock)
570 {
571         media_pvr_s *_pvr = (media_pvr_s*)pvr;
572
573         content_retip_if_fail(pvr);
574         content_retip_if_fail(content_lock);
575
576         *content_lock = _pvr->content_lock;
577
578         return MEDIA_CONTENT_ERROR_NONE;
579 }
580
581 int media_pvr_get_content_watch(media_pvr_h pvr, bool* content_watch)
582 {
583         media_pvr_s *_pvr = (media_pvr_s*)pvr;
584
585         content_retip_if_fail(pvr);
586         content_retip_if_fail(content_watch);
587
588         *content_watch = _pvr->content_watch;
589
590         return MEDIA_CONTENT_ERROR_NONE;
591 }
592
593 int media_pvr_get_has_audio_only(media_pvr_h pvr, bool* has_audio_only)
594 {
595         media_pvr_s *_pvr = (media_pvr_s*)pvr;
596
597         content_retip_if_fail(pvr);
598         content_retip_if_fail(has_audio_only);
599
600         *has_audio_only = _pvr->has_audio_only;
601
602         return MEDIA_CONTENT_ERROR_NONE;
603 }
604
605 int media_pvr_get_is_local_record(media_pvr_h pvr, bool* is_local_record)
606 {
607         media_pvr_s *_pvr = (media_pvr_s*)pvr;
608
609         content_retip_if_fail(pvr);
610         content_retip_if_fail(is_local_record);
611
612         *is_local_record = _pvr->is_local_record;
613
614         return MEDIA_CONTENT_ERROR_NONE;
615 }
616
617 int media_pvr_get_resolution(media_pvr_h pvr, media_pvr_resolution_e* resolution)
618 {
619         media_pvr_s *_pvr = (media_pvr_s*)pvr;
620
621         content_retip_if_fail(pvr);
622         content_retip_if_fail(resolution);
623
624         *resolution = _pvr->resolution;
625
626         return MEDIA_CONTENT_ERROR_NONE;
627 }
628
629 int media_pvr_get_aspectratio(media_pvr_h pvr, media_pvr_aspectratio_e* aspectratio)
630 {
631         media_pvr_s *_pvr = (media_pvr_s*)pvr;
632
633         content_retip_if_fail(pvr);
634         content_retip_if_fail(aspectratio);
635
636         *aspectratio = _pvr->aspectratio;
637
638         return MEDIA_CONTENT_ERROR_NONE;
639 }
640
641 int media_pvr_get_modified_month(media_pvr_h pvr, char **modified_month)
642 {
643         media_pvr_s *_pvr = (media_pvr_s*)pvr;
644
645         content_retip_if_fail(pvr);
646         content_retip_if_fail(modified_month);
647
648         *modified_month = g_strdup(_pvr->modified_month);
649
650         return MEDIA_CONTENT_ERROR_NONE;
651 }
652
653 int media_pvr_get_sports_type(media_pvr_h pvr, int* sports_type)
654 {
655         media_pvr_s *_pvr = (media_pvr_s*)pvr;
656
657         content_retip_if_fail(pvr);
658         content_retip_if_fail(sports_type);
659
660         *sports_type = _pvr->sports_type;
661
662         return MEDIA_CONTENT_ERROR_NONE;
663 }
664
665 int media_pvr_get_guidance_length(media_pvr_h pvr, int* guidance_length)
666 {
667         media_pvr_s *_pvr = (media_pvr_s*)pvr;
668
669         content_retip_if_fail(pvr);
670         content_retip_if_fail(guidance_length);
671
672         *guidance_length = _pvr->guidance_length;
673
674         return MEDIA_CONTENT_ERROR_NONE;
675 }
676
677 int media_pvr_get_tvmode(media_pvr_h pvr, int* tvmode)
678 {
679         media_pvr_s *_pvr = (media_pvr_s*)pvr;
680
681         content_retip_if_fail(pvr);
682         content_retip_if_fail(tvmode);
683
684         *tvmode = _pvr->tvmode;
685
686         return MEDIA_CONTENT_ERROR_NONE;
687 }
688
689 int media_pvr_get_play_count(media_pvr_h pvr, int* play_count)
690 {
691         media_pvr_s *_pvr = (media_pvr_s*)pvr;
692
693         content_retip_if_fail(pvr);
694         content_retip_if_fail(play_count);
695
696         *play_count = _pvr->play_count;
697
698         return MEDIA_CONTENT_ERROR_NONE;
699 }
700
701 int media_pvr_get_private_data(media_pvr_h pvr, char **private_data)
702 {
703         media_pvr_s *_pvr = (media_pvr_s*)pvr;
704
705         content_retip_if_fail(pvr);
706         content_retip_if_fail(private_data);
707
708         *private_data = g_strdup(_pvr->private_data);
709
710         return MEDIA_CONTENT_ERROR_NONE;
711 }
712
713 int media_pvr_set_play_count(media_pvr_h pvr, int play_count)
714 {
715         media_pvr_s *_pvr = (media_pvr_s*)pvr;
716
717         content_retip_if_fail(pvr);
718
719         _pvr->play_count = play_count;
720
721         return MEDIA_CONTENT_ERROR_NONE;
722 }
723
724 int media_pvr_set_program_title(media_pvr_h pvr, const char *program_title)
725 {
726         media_pvr_s *_pvr = (media_pvr_s*)pvr;
727
728         content_retip_if_fail(pvr);
729         content_retip_if_fail(STRING_VALID(program_title));
730
731         g_free(_pvr->program_title);
732         _pvr->program_title = g_strdup(program_title);
733
734         return MEDIA_CONTENT_ERROR_NONE;
735 }
736
737 int media_pvr_set_content_lock(media_pvr_h pvr, bool content_lock)
738 {
739         media_pvr_s *_pvr = (media_pvr_s*)pvr;
740
741         content_retip_if_fail(pvr);
742
743         _pvr->content_lock = content_lock;
744
745         return MEDIA_CONTENT_ERROR_NONE;
746 }
747
748 int media_pvr_set_content_watch(media_pvr_h pvr, bool content_watch)
749 {
750         media_pvr_s *_pvr = (media_pvr_s*)pvr;
751
752         content_retip_if_fail(pvr);
753
754         _pvr->content_watch = content_watch;
755
756         return MEDIA_CONTENT_ERROR_NONE;
757 }
758
759 int media_pvr_update_to_db(media_pvr_h pvr)
760 {
761         int ret = MEDIA_CONTENT_ERROR_NONE;
762         media_pvr_s *_pvr = (media_pvr_s*)pvr;
763         char *update_query = NULL;
764
765         content_retip_if_fail(pvr);
766         content_retip_if_fail(STRING_VALID(_pvr->media_id));
767         content_retip_if_fail(STRING_VALID(_pvr->path));
768
769         update_query = sqlite3_mprintf(UPDATE_PVR_META_FROM_PVR, _pvr->program_title, _pvr->content_lock, _pvr->content_watch, _pvr->play_count, _pvr->media_id);
770
771         ret = _content_query_sql(update_query);
772         sqlite3_free(update_query);
773
774         if (ret == MEDIA_CONTENT_ERROR_NONE)
775                 media_svc_update_pvr_info(_content_get_db_handle(), _pvr->path, _pvr->program_title, _pvr->content_lock);
776
777
778         return ret;
779 }
780 #endif