]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
Replace existing series recording with simpler version for now. Fixes #1208, Fixes...
authorAdam Sutton <dev@adamsutton.me.uk>
Fri, 7 Sep 2012 10:46:58 +0000 (11:46 +0100)
committerAdam Sutton <dev@adamsutton.me.uk>
Tue, 11 Sep 2012 13:23:57 +0000 (14:23 +0100)
src/dvr/dvr.h
src/dvr/dvr_autorec.c

index 0cfe6db782ed11dcef8318a896b9db8f47eec052..355586b49c3eebb985f783ad66b43d9aac0ace34 100644 (file)
@@ -225,6 +225,7 @@ typedef struct dvr_autorec_entry {
 
   epg_brand_t *dae_brand;
   epg_season_t *dae_season;
+  epg_serieslink_t *dae_serieslink;
   epg_episode_num_t dae_epnum;
 
 } dvr_autorec_entry_t;
index e414da852eff72b724ed439c0cc7ab3b2a34c32c..7e7d460e16598cdc0407d7886a55661a6b7b9f7a 100644 (file)
@@ -286,6 +286,8 @@ autorec_record_build(dvr_autorec_entry_t *dae)
     htsmsg_add_str(e, "brand", dae->dae_brand->uri);
   if (dae->dae_season)
     htsmsg_add_str(e, "season", dae->dae_season->uri);
+  if (dae->dae_serieslink)
+    htsmsg_add_str(e, "serieslink", dae->dae_serieslink->uri);
 
   return e;
 }
@@ -417,6 +419,11 @@ autorec_record_update(void *opaque, const char *id, htsmsg_t *values,
     if (dae->dae_season)
       dae->dae_season->getref((epg_object_t*)dae->dae_season);
   }
+  if((s = htsmsg_get_str(values, "serieslink")) != NULL) {
+    dae->dae_serieslink = epg_serieslink_find_by_uri(s, 1, &save);
+    if (dae->dae_serieslink)
+      dae->dae_serieslink->getref(dae->dae_serieslink);
+  }
   dvr_autorec_changed(dae);
 
   return autorec_record_build(dae);
@@ -468,6 +475,7 @@ _dvr_autorec_add(const char *config_name,
                 const char *title, channel_t *ch,
                const char *tag, epg_genre_t *content_type,
     epg_brand_t *brand, epg_season_t *season,
+    epg_serieslink_t *serieslink,
     int approx_time, epg_episode_num_t *epnum,
                const char *creator, const char *comment)
 {
@@ -502,16 +510,9 @@ _dvr_autorec_add(const char *config_name,
   if (content_type)
     dae->dae_content_type.code = content_type->code;
 
-  if(brand) {
-    dae->dae_brand = brand;
-    brand->getref((epg_object_t*)brand);
-  }
-  if(season) {
-    dae->dae_season = season;
-    season->getref((epg_object_t*)season);
-  }
-  if(epnum) {
-    dae->dae_epnum = *epnum;
+  if(serieslink) {
+    serieslink->getref(serieslink);
+    dae->dae_serieslink = serieslink;
   }
 
   dae->dae_approx_time = approx_time;
@@ -538,36 +539,22 @@ dvr_autorec_add(const char *config_name,
   channel_t *ch = NULL;
   if(channel != NULL) ch = channel_find_by_name(channel, 0, 0);
   _dvr_autorec_add(config_name, title, ch, tag, content_type,
-                   NULL, NULL, 0, NULL, creator, comment);
+                   NULL, NULL, NULL, 0, NULL, creator, comment);
 }
 
 void dvr_autorec_add_series_link 
   ( const char *dvr_config_name, epg_broadcast_t *event,
     const char *creator, const char *comment )
 {
-  int atime = 0;
-  dvr_config_t *cfg;
-  epg_episode_t *ee;
-  epg_episode_num_t *epnump = NULL, epnum;
   if (!event || !event->episode) return;
-  
-  ee  = event->episode;
-  cfg = dvr_config_find_by_name_default(dvr_config_name);
-  if (cfg->dvr_sl_time_lock) {
-    struct tm t;
-    localtime_r(&event->start, &t);
-    atime = (t.tm_hour * 60) + t.tm_min;
-  }
-  if (cfg->dvr_sl_more_recent) {
-    epg_episode_get_epnum(ee, &epnum);
-    epnump = &epnum;
-  }
-  _dvr_autorec_add(dvr_config_name, NULL,/*TODO DVR lang_str event->episode->title,*/
-                   cfg->dvr_sl_channel_lock ? event->channel : NULL,
+  _dvr_autorec_add(dvr_config_name,
+                   epg_broadcast_get_title(event, NULL),
+                   event->channel,
                    NULL, 0, // tag/content type
-                   cfg->dvr_sl_brand_lock ? ee->brand : NULL,
-                   cfg->dvr_sl_season_lock || !ee->brand ? ee->season : NULL,
-                   atime, epnump,
+                   NULL,
+                   NULL,
+                   event->serieslink,
+                   0, NULL,
                    creator, comment);
 }