Add 'creator' to PVR entry

This commit is contained in:
Andreas Öman 2008-02-13 19:05:59 +00:00
parent 4caf7c9548
commit df14b82ef7
4 changed files with 29 additions and 9 deletions

View file

@ -696,7 +696,7 @@ page_event(http_connection_t *hc, const char *remain, void *opaque)
epg_unlock();
return HTTP_STATUS_UNAUTHORIZED;
}
pvrr = pvr_schedule_by_event(e);
pvrr = pvr_schedule_by_event(e, hc->hc_username);
}
if(pvrr != NULL && http_arg_get(&hc->hc_url_args, "cancel")) {
@ -991,6 +991,14 @@ page_pvr(http_connection_t *hc, const char *remain, void *opaque)
"</tr>",
val2str(pvrr->pvrr_rec_status, recintstatustxt) ?: "invalid");
tcp_qprintf(&tq,
"<tr>"
"<td width=125><span style=\"text-align: right\">"
"Created by:</span><td>"
"<td>%s</td>"
"</tr>",
pvrr->pvrr_creator ?: "<i>not set</i>");
tcp_qprintf(&tq,
"</table>");

View file

@ -588,7 +588,7 @@ cr_event_record(client_t *c, char **argv, int argc)
return 1;
}
pvr_schedule_by_event(e);
pvr_schedule_by_event(e, "htsclient");
epg_unlock();
return 0;
@ -614,7 +614,7 @@ cr_channel_record(client_t *c, char **argv, int argc)
duration = atoi(argv[1]);
pvr_schedule_by_channel_and_time(ch, duration);
pvr_schedule_by_channel_and_time(ch, duration, "htsclient");
return 0;
}

17
pvr.c
View file

@ -154,6 +154,7 @@ pvr_free(pvr_rec_t *pvrr)
LIST_REMOVE(pvrr, pvrr_global_link);
free(pvrr->pvrr_title);
free(pvrr->pvrr_desc);
free(pvrr->pvrr_creator);
free(pvrr->pvrr_printname);
free(pvrr->pvrr_filename);
free(pvrr);
@ -255,7 +256,7 @@ pvr_clear_all_completed(void)
* Create a PVR entry based on a given event
*/
pvr_rec_t *
pvr_schedule_by_event(event_t *e)
pvr_schedule_by_event(event_t *e, const char *creator)
{
th_channel_t *ch = e->e_ch;
time_t start = e->e_start;
@ -290,7 +291,7 @@ pvr_schedule_by_event(event_t *e)
pvrr->pvrr_stop = stop;
pvrr->pvrr_title = e->e_title ? strdup(e->e_title) : NULL;
pvrr->pvrr_desc = e->e_desc ? strdup(e->e_desc) : NULL;
pvrr->pvrr_creator = strdup(creator);
pvr_link_pvrr(pvrr);
pvr_database_save(pvrr);
return pvrr;
@ -303,7 +304,8 @@ pvr_schedule_by_event(event_t *e)
* Record based on a channel
*/
pvr_rec_t *
pvr_schedule_by_channel_and_time(th_channel_t *ch, int duration)
pvr_schedule_by_channel_and_time(th_channel_t *ch, int duration,
const char *creator)
{
time_t now = dispatch_clock;
time_t start = now;
@ -317,6 +319,7 @@ pvr_schedule_by_channel_and_time(th_channel_t *ch, int duration)
pvrr->pvrr_stop = stop;
pvrr->pvrr_title = strdup("Manual recording");
pvrr->pvrr_desc = NULL;
pvrr->pvrr_creator = strdup(creator);
pvr_link_pvrr(pvrr);
pvr_database_save(pvrr);
@ -359,6 +362,9 @@ pvr_database_save(pvr_rec_t *pvrr)
if(pvrr->pvrr_desc != NULL)
fprintf(fp, "description = %s\n", pvrr->pvrr_desc);
if(pvrr->pvrr_creator != NULL)
fprintf(fp, "creator = %s\n", pvrr->pvrr_creator);
if(pvrr->pvrr_filename != NULL)
fprintf(fp, "filename = %s\n", pvrr->pvrr_filename);
@ -390,7 +396,7 @@ pvr_database_load(void)
struct config_head cl;
char buf[400];
struct dirent *d;
const char *channel, *title, *desc, *fname, *status;
const char *channel, *title, *desc, *fname, *status, *creator;
DIR *dir;
time_t start, stop;
pvr_rec_t *pvrr;
@ -418,6 +424,7 @@ pvr_database_load(void)
desc = config_get_str_sub(&cl, "description", NULL);
fname = config_get_str_sub(&cl, "filename", NULL);
status = config_get_str_sub(&cl, "status", NULL);
creator = config_get_str_sub(&cl, "creator", NULL);
if(channel != NULL && start && stop && title && status) {
pvrr = calloc(1, sizeof(pvr_rec_t));
@ -429,6 +436,8 @@ pvr_database_load(void)
pvrr->pvrr_filename = fname ? strdup(fname) : NULL;
pvrr->pvrr_title = title ? strdup(title) : NULL;
pvrr->pvrr_desc = desc ? strdup(desc) : NULL;
pvrr->pvrr_creator = creator ? strdup(creator) : NULL;
pvrr->pvrr_id = atoi(d->d_name);
if(pvrr->pvrr_id > pvr_id_ceil)

7
pvr.h
View file

@ -53,6 +53,8 @@ typedef struct pvr_rec {
time_t pvrr_start;
time_t pvrr_stop;
char *pvrr_creator; /* Who schedule the recording */
char *pvrr_filename; /* May be null if we havent figured out a name
yet, this happens upon record start.
Notice that this is full path */
@ -105,8 +107,9 @@ int pvr_abort(pvr_rec_t *pvrr);
pvr_rec_t *pvr_get_by_entry(event_t *e);
pvr_rec_t *pvr_schedule_by_event(event_t *e);
pvr_rec_t *pvr_schedule_by_event(event_t *e, const char *creator);
pvr_rec_t *pvr_schedule_by_channel_and_time(th_channel_t *ch, int duration);
pvr_rec_t *pvr_schedule_by_channel_and_time(th_channel_t *ch, int duration,
const char *creator);
#endif /* PVR_H */