From: Jaroslav Kysela Date: Sat, 28 Nov 2015 19:41:51 +0000 (+0100) Subject: mpegts network: add 'Provider network name', fixes #3311 X-Git-Tag: v4.2.1~1451 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=fd6c846050fa16bb69255a55a65f3767fb1c94ce;p=thirdparty%2Ftvheadend.git mpegts network: add 'Provider network name', fixes #3311 --- diff --git a/src/input/mpegts.h b/src/input/mpegts.h index 4f47f100a..46a252fc5 100644 --- a/src/input/mpegts.h +++ b/src/input/mpegts.h @@ -299,6 +299,7 @@ struct mpegts_network * Identification */ char *mn_network_name; + char *mn_provider_network_name; /* * Inputs diff --git a/src/input/mpegts/mpegts_network.c b/src/input/mpegts/mpegts_network.c index f2a15b3f6..eeef1aaea 100644 --- a/src/input/mpegts/mpegts_network.c +++ b/src/input/mpegts/mpegts_network.c @@ -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