]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
mpegts network: add 'Provider network name', fixes #3311
authorJaroslav Kysela <perex@perex.cz>
Sat, 28 Nov 2015 19:41:51 +0000 (20:41 +0100)
committerJaroslav Kysela <perex@perex.cz>
Sat, 28 Nov 2015 19:41:58 +0000 (20:41 +0100)
src/input/mpegts.h
src/input/mpegts/mpegts_network.c

index 4f47f100a1b35724dd83ec740f603dc99b682574..46a252fc5e9d2a6958fe3dc6f60b85ba61d2e8f7 100644 (file)
@@ -299,6 +299,7 @@ struct mpegts_network
    * Identification
    */
   char                    *mn_network_name;
+  char                    *mn_provider_network_name;
 
   /*
    * Inputs
index f2a15b3f61eca70d65f2efe3d48c9e314a18a3cf..eeef1aaead82db971d3a458f5a73afd2654f0668 100644 (file)
@@ -144,6 +144,13 @@ const idclass_t mpegts_network_class =
       .off      = offsetof(mpegts_network_t, mn_network_name),
       .notify   = idnode_notify_title_changed,
     },
+    {
+      .type     = PT_STR,
+      .id       = "pnetworkname",
+      .name     = N_("Provider network name"),
+      .off      = offsetof(mpegts_network_t, mn_provider_network_name),
+      .opts     = PO_ADVANCED | PO_HIDDEN,
+    },
     {
       .type     = PT_U16,
       .id       = "nid",
@@ -412,13 +419,20 @@ mpegts_network_set_network_name
   ( mpegts_network_t *mn, const char *name )
 {
   char buf[256];
-  if (mn->mn_network_name) return 0;
-  if (!name || name[0] == '\0' || !strcmp(name, mn->mn_network_name ?: ""))
-    return 0;
-  tvh_str_update(&mn->mn_network_name, name);
-  mn->mn_display_name(mn, buf, sizeof(buf));
-  tvhdebug("mpegts", "%s - set name %s", buf, name);
-  return 1;
+  int save = 0;
+  if (mn->mn_network_name == NULL || mn->mn_network_name[0] == '\0') {
+    if (name && name[0] && strcmp(name, mn->mn_network_name ?: "")) {
+      tvh_str_update(&mn->mn_network_name, name);
+      mn->mn_display_name(mn, buf, sizeof(buf));
+      tvhdebug("mpegts", "%s - set name %s", buf, name);
+      save = 1;
+    }
+  }
+  if (strcmp(name ?: "", mn->mn_network_name ?: "")) {
+    tvh_str_update(&mn->mn_provider_network_name, name ?: "");
+    save = 1;
+  }
+  return save;
 }
 
 void