From: Jaroslav Kysela Date: Tue, 7 Jun 2016 11:21:05 +0000 (+0200) Subject: service: don't create the standard nice name with adapter/input name X-Git-Tag: v4.2.1~431 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7b28d753903d4e963965335932b568a1e20ecf1d;p=thirdparty%2Ftvheadend.git service: don't create the standard nice name with adapter/input name --- diff --git a/src/service.c b/src/service.c index 5b404c249..4d6ed155d 100644 --- a/src/service.c +++ b/src/service.c @@ -53,6 +53,7 @@ static void service_data_timeout(void *aux); static void service_class_delete(struct idnode *self); static htsmsg_t *service_class_save(struct idnode *self, char *filename, size_t fsize); +static int service_make_nicename0(service_t *t, char *buf, size_t len, int adapter); struct service_queue service_all; struct service_queue service_raw_all; @@ -1072,12 +1073,11 @@ service_stream_make_nicename(service_t *t, elementary_stream_t *st) /** * */ -void -service_make_nicename(service_t *t) +static int +service_make_nicename0(service_t *t, char *buf, size_t len, int adapter) { - char buf[256], buf2[16]; + char buf2[16]; source_info_t si; - elementary_stream_t *st; char *service_name; int prefidx; @@ -1091,20 +1091,36 @@ service_make_nicename(service_t *t) service_name = buf2; } - snprintf(buf, sizeof(buf), + snprintf(buf, len, "%s%s%s%s%s%s%s", - si.si_adapter ?: "", si.si_adapter && si.si_network ? "/" : "", + adapter && si.si_adapter ? si.si_adapter : "", + adapter && si.si_adapter && si.si_network ? "/" : "", si.si_network ?: "", si.si_network && si.si_mux ? "/" : "", si.si_mux ?: "", si.si_mux && service_name ? "/" : "", service_name ?: ""); - prefidx = (si.si_adapter ? strlen(si.si_adapter) : 0) + - (si.si_adapter && si.si_network ? 1 : 0) + + prefidx = (adapter && si.si_adapter ? strlen(si.si_adapter) : 0) + + (adapter && si.si_adapter && si.si_network ? 1 : 0) + (si.si_network ? strlen(si.si_network) : 0) + (si.si_network && si.si_mux ? 1 : 0) + (si.si_mux ? strlen(si.si_mux) : 0); service_source_info_free(&si); + return prefidx; +} + +/** + * + */ +void +service_make_nicename(service_t *t) +{ + int prefidx; + char buf[256]; + elementary_stream_t *st; + + prefidx = service_make_nicename0(t, buf, sizeof(buf), 0); + free(t->s_nicename); t->s_nicename = strdup(buf); t->s_nicename_prefidx = prefidx; @@ -1678,9 +1694,12 @@ service_component_nicename(elementary_stream_t *st) } const char * -service_adapter_nicename(service_t *t) +service_adapter_nicename(service_t *t, char *buf, size_t len) { - return "Adapter"; + pthread_mutex_lock(&t->s_stream_mutex); + service_make_nicename0(t, buf, len, 1); + pthread_mutex_unlock(&t->s_stream_mutex); + return buf; } const char * diff --git a/src/service.h b/src/service.h index 0470d8352..7d15bb689 100644 --- a/src/service.h +++ b/src/service.h @@ -600,7 +600,7 @@ const char *service_nicename(service_t *t); const char *service_component_nicename(elementary_stream_t *st); -const char *service_adapter_nicename(service_t *t); +const char *service_adapter_nicename(service_t *t, char *buf, size_t len); const char *service_tss2text(int flags); diff --git a/src/subscriptions.c b/src/subscriptions.c index a889bd35c..646edd3fe 100644 --- a/src/subscriptions.c +++ b/src/subscriptions.c @@ -896,12 +896,12 @@ subscription_create_msg(th_subscription_t *s, const char *lang) service_t *t; profile_t *pro; char buf[256]; + const char *state; htsmsg_add_u32(m, "id", s->ths_id); htsmsg_add_u32(m, "start", s->ths_start); htsmsg_add_u32(m, "errors", atomic_get(&s->ths_total_err)); - const char *state; switch(subgetstate(s)) { default: state = N_("Idle"); @@ -920,7 +920,6 @@ subscription_create_msg(th_subscription_t *s, const char *lang) break; } - htsmsg_add_str(m, "state", lang ? tvh_gettext_lang(lang, state) : state); if(s->ths_hostname != NULL) @@ -938,7 +937,7 @@ subscription_create_msg(th_subscription_t *s, const char *lang) htsmsg_add_str(m, "channel", channel_get_name(s->ths_channel)); if((t = s->ths_service) != NULL) { - htsmsg_add_str(m, "service", t->s_nicename ?: ""); + htsmsg_add_str(m, "service", service_adapter_nicename(t, buf, sizeof(buf))); pthread_mutex_lock(&t->s_stream_mutex); if ((di = s->ths_service->s_descramble_info) != NULL) { diff --git a/src/webui/static/app/status.js b/src/webui/static/app/status.js index a17fa1b41..80bf27432 100644 --- a/src/webui/static/app/status.js +++ b/src/webui/static/app/status.js @@ -107,7 +107,7 @@ tvheadend.status_subs = function(panel, index) dataIndex: 'channel' }, { - width: 200, + width: 250, id: 'service', header: _("Service"), dataIndex: 'service'