From: Jaroslav Kysela Date: Tue, 20 Sep 2016 15:37:35 +0000 (+0200) Subject: htsmsg: add htsmsg_create_key_val() fcn X-Git-Tag: v4.2.1~307 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b1bb5540e80e516c74c0ed5a7bf5574a76f542ae;p=thirdparty%2Ftvheadend.git htsmsg: add htsmsg_create_key_val() fcn --- diff --git a/src/api/api_access.c b/src/api/api_access.c index 734d6deeb..a7b2e3021 100644 --- a/src/api/api_access.c +++ b/src/api/api_access.c @@ -97,7 +97,7 @@ api_access_entry_userlist idnode_set_t *is; idnode_t *in; access_entry_t *ae; - htsmsg_t *l, *e; + htsmsg_t *l; l = htsmsg_create_list(); @@ -113,12 +113,8 @@ api_access_entry_userlist ae = (access_entry_t *)in; if (ae->ae_username != NULL && ae->ae_username[0] != '\0' && - ae->ae_username[0] != '*') { - e = htsmsg_create_map(); - htsmsg_add_str(e, "key", ae->ae_username); - htsmsg_add_str(e, "val", ae->ae_username); - htsmsg_add_msg(l, NULL, e); - } + ae->ae_username[0] != '*') + htsmsg_add_msg(l, NULL, htsmsg_create_key_val(ae->ae_username, ae->ae_username)); idnode_perm_unset(in); } diff --git a/src/api/api_bouquet.c b/src/api/api_bouquet.c index 3e651bd0f..7a5c4acb2 100644 --- a/src/api/api_bouquet.c +++ b/src/api/api_bouquet.c @@ -30,17 +30,13 @@ api_bouquet_list ( access_t *perm, void *opaque, const char *op, htsmsg_t *args, htsmsg_t **resp ) { bouquet_t *bq; - htsmsg_t *l, *e; + htsmsg_t *l; char ubuf[UUID_HEX_SIZE]; l = htsmsg_create_list(); pthread_mutex_lock(&global_lock); - RB_FOREACH(bq, &bouquets, bq_link) { - e = htsmsg_create_map(); - htsmsg_add_str(e, "key", idnode_uuid_as_str(&bq->bq_id, ubuf)); - htsmsg_add_str(e, "val", bq->bq_name ?: ""); - htsmsg_add_msg(l, NULL, e); - } + RB_FOREACH(bq, &bouquets, bq_link) + htsmsg_add_msg(l, NULL, htsmsg_create_key_val(idnode_uuid_as_str(&bq->bq_id, ubuf), bq->bq_name ?: "")); pthread_mutex_unlock(&global_lock); *resp = htsmsg_create_map(); htsmsg_add_msg(*resp, "entries", l); diff --git a/src/api/api_channel.c b/src/api/api_channel.c index 2de1c2aad..0530ec1be 100644 --- a/src/api/api_channel.c +++ b/src/api/api_channel.c @@ -25,15 +25,6 @@ #include "access.h" #include "api.h" -static void -api_channel_key_val(htsmsg_t *dst, const char *key, const char *val) -{ - htsmsg_t *e = htsmsg_create_map(); - htsmsg_add_str(e, "key", key); - htsmsg_add_str(e, "val", val ?: ""); - htsmsg_add_msg(dst, NULL, e); -} - static int api_channel_is_all(access_t *perm, htsmsg_t *args) { @@ -50,6 +41,7 @@ api_channel_list htsmsg_t *l; int cfg = api_channel_is_all(perm, args); char buf[128], ubuf[UUID_HEX_SIZE]; + const char *name; l = htsmsg_create_list(); pthread_mutex_lock(&global_lock); @@ -57,10 +49,11 @@ api_channel_list if (!cfg && !channel_access(ch, perm, 0)) continue; if (!ch->ch_enabled) { snprintf(buf, sizeof(buf), "{%s}", channel_get_name(ch)); - api_channel_key_val(l, idnode_uuid_as_str(&ch->ch_id, ubuf), buf); + name =buf; } else { - api_channel_key_val(l, idnode_uuid_as_str(&ch->ch_id, ubuf), channel_get_name(ch)); + name = channel_get_name(ch); } + htsmsg_add_msg(l, NULL, htsmsg_create_key_val(idnode_uuid_as_str(&ch->ch_id, ubuf), name)); } pthread_mutex_unlock(&global_lock); *resp = htsmsg_create_map(); @@ -107,18 +100,19 @@ api_channel_tag_list channel_tag_t *ct; htsmsg_t *l; int cfg = api_channel_is_all(perm, args); - char buf[128], ubuf[UUID_HEX_SIZE]; + char buf[128], ubuf[UUID_HEX_SIZE], *name; l = htsmsg_create_list(); pthread_mutex_lock(&global_lock); TAILQ_FOREACH(ct, &channel_tags, ct_link) if (cfg || channel_tag_access(ct, perm, 0)) { if (ct->ct_enabled) { - api_channel_key_val(l, idnode_uuid_as_str(&ct->ct_id, ubuf), ct->ct_name); + name = ct->ct_name; } else { snprintf(buf, sizeof(buf), "{%s}", ct->ct_name); - api_channel_key_val(l, idnode_uuid_as_str(&ct->ct_id, ubuf), buf); + name = buf; } + htsmsg_add_msg(l, NULL, htsmsg_create_key_val(idnode_uuid_as_str(&ct->ct_id, ubuf), name)); } pthread_mutex_unlock(&global_lock); *resp = htsmsg_create_map(); diff --git a/src/api/api_idnode.c b/src/api/api_idnode.c index eb4164621..d614ce549 100644 --- a/src/api/api_idnode.c +++ b/src/api/api_idnode.c @@ -196,9 +196,8 @@ api_idnode_load_by_class0 /* Name/UUID only */ if (_enum) { - e = htsmsg_create_map(); - htsmsg_add_str(e, "key", idnode_uuid_as_str(in, ubuf)); - htsmsg_add_str(e, "val", idnode_get_title(in, perm->aa_lang_ui)); + e = htsmsg_create_key_val(idnode_uuid_as_str(in, ubuf), + idnode_get_title(in, perm->aa_lang_ui)); /* Full record */ } else { diff --git a/src/api/api_intlconv.c b/src/api/api_intlconv.c index 632b96ed6..fc7b27f04 100644 --- a/src/api/api_intlconv.c +++ b/src/api/api_intlconv.c @@ -30,15 +30,12 @@ api_intlconv_charset_enum ( access_t *perm, void *opaque, const char *op, htsmsg_t *args, htsmsg_t **resp ) { const char **chrst; - htsmsg_t *l, *e; + htsmsg_t *l; l = htsmsg_create_list(); chrst = intlconv_charsets; while (*chrst) { - e = htsmsg_create_map(); - htsmsg_add_str(e, "key", *chrst); - htsmsg_add_str(e, "val", *chrst); - htsmsg_add_msg(l, NULL, e); + htsmsg_add_msg(l, NULL, htsmsg_create_key_val(*chrst, *chrst)); chrst++; } *resp = htsmsg_create_map(); diff --git a/src/api/api_language.c b/src/api/api_language.c index aede05051..8377c5cd4 100644 --- a/src/api/api_language.c +++ b/src/api/api_language.c @@ -30,14 +30,11 @@ api_language_enum ( access_t *perm, void *opaque, const char *op, htsmsg_t *args, htsmsg_t **resp ) { const lang_code_t *c = lang_codes; - htsmsg_t *l, *e; + htsmsg_t *l; l = htsmsg_create_list(); while (c->code2b) { - e = htsmsg_create_map(); - htsmsg_add_str(e, "key", c->code2b); - htsmsg_add_str(e, "val", c->desc); - htsmsg_add_msg(l, NULL, e); + htsmsg_add_msg(l, NULL, htsmsg_create_key_val(c->code2b, c->desc)); c++; } *resp = htsmsg_create_map(); @@ -50,19 +47,15 @@ _api_language_locale_enum ( access_t *perm, void *opaque, const char *op, htsmsg_t *args, htsmsg_t **resp, int all ) { const lang_code_t *c = lang_codes; - htsmsg_t *l, *e; + htsmsg_t *l; const char *s; char buf1[8]; char buf2[128]; l = htsmsg_create_list(); while (c->code2b) { - if (all || tvh_gettext_langcode_valid(c->code2b)) { - e = htsmsg_create_map(); - htsmsg_add_str(e, "key", c->code2b); - htsmsg_add_str(e, "val", c->desc); - htsmsg_add_msg(l, NULL, e); - } + if (all || tvh_gettext_langcode_valid(c->code2b)) + htsmsg_add_msg(l, NULL, htsmsg_create_key_val(c->code2b, c->desc)); s = c->locale; while (s && *s) { if (*s == '|') @@ -72,10 +65,7 @@ _api_language_locale_enum snprintf(buf1, sizeof(buf1), "%s_%c%c", c->code2b, s[0], s[1]); if (all || tvh_gettext_langcode_valid(buf1)) { snprintf(buf2, sizeof(buf2), "%s (%c%c)", c->desc, s[0], s[1]); - e = htsmsg_create_map(); - htsmsg_add_str(e, "key", buf1); - htsmsg_add_str(e, "val", buf2); - htsmsg_add_msg(l, NULL, e); + htsmsg_add_msg(l, NULL, htsmsg_create_key_val(buf1, buf2)); } s += 2; } diff --git a/src/api/api_mpegts.c b/src/api/api_mpegts.c index 7c64c6008..8d2ee15ba 100644 --- a/src/api/api_mpegts.c +++ b/src/api/api_mpegts.c @@ -54,12 +54,9 @@ api_mpegts_input_network_list if ((is = mi->mi_network_list(mi))) { for (i = 0; i < is->is_count; i++) { char buf[256]; - htsmsg_t *e = htsmsg_create_map(); mn = (mpegts_network_t*)is->is_array[i]; - htsmsg_add_str(e, "key", idnode_uuid_as_str(is->is_array[i], ubuf)); mn->mn_display_name(mn, buf, sizeof(buf)); - htsmsg_add_str(e, "val", buf); - htsmsg_add_msg(l, NULL, e); + htsmsg_add_msg(l, NULL, htsmsg_create_key_val(idnode_uuid_as_str(&mn->mn_id, ubuf), buf)); } idnode_set_free(is); } diff --git a/src/api/api_profile.c b/src/api/api_profile.c index fe5e5a9e7..68edeb189 100644 --- a/src/api/api_profile.c +++ b/src/api/api_profile.c @@ -58,7 +58,7 @@ api_profile_list ( access_t *perm, void *opaque, const char *op, htsmsg_t *args, htsmsg_t **resp ) { profile_t *pro; - htsmsg_t *l, *e; + htsmsg_t *l; int cfg = api_profile_is_all(perm, args); int sflags = htsmsg_get_bool_or_default(args, "htsp", 0) ? SUBSCRIPTION_HTSP : 0; char ubuf[UUID_HEX_SIZE]; @@ -70,10 +70,7 @@ api_profile_list idnode_uuid_as_str(&pro->pro_id, ubuf); if (!cfg && (!profile_verify(pro, sflags) || !api_profile_find(perm, ubuf))) continue; - e = htsmsg_create_map(); - htsmsg_add_str(e, "key", ubuf); - htsmsg_add_str(e, "val", profile_get_name(pro)); - htsmsg_add_msg(l, NULL, e); + htsmsg_add_msg(l, NULL, htsmsg_create_key_val(ubuf, profile_get_name(pro))); } pthread_mutex_unlock(&global_lock); *resp = htsmsg_create_map(); diff --git a/src/config.c b/src/config.c index c7b0e012b..86ec785b0 100644 --- a/src/config.c +++ b/src/config.c @@ -1865,9 +1865,7 @@ static void config_class_info_area_list1 ( htsmsg_t *m, const char *key, const char *val, const char *lang ) { - htsmsg_t *e = htsmsg_create_map(); - htsmsg_add_str(e, "key", key); - htsmsg_add_str(e, "val", tvh_gettext_lang(lang, val)); + htsmsg_t *e = htsmsg_create_key_val(key, tvh_gettext_lang(lang, val)); htsmsg_add_msg(m, NULL, e); } diff --git a/src/esfilter.c b/src/esfilter.c index a974bc6fb..9071bd7fd 100644 --- a/src/esfilter.c +++ b/src/esfilter.c @@ -372,15 +372,13 @@ esfilter_class_language_enum(void *o, const char *lang) char buf[128]; while (lc->code2b) { - htsmsg_t *e = htsmsg_create_map(); + htsmsg_t *e; if (!strcmp(lc->code2b, "und")) { - htsmsg_add_str(e, "key", ""); - htsmsg_add_str(e, "val", tvh_gettext_lang(lang, any)); + e = htsmsg_create_key_val("", tvh_gettext_lang(lang, any)); } else { - htsmsg_add_str(e, "key", lc->code2b); snprintf(buf, sizeof(buf), "%s (%s)", lc->desc, lc->code2b); buf[sizeof(buf)-1] = '\0'; - htsmsg_add_str(e, "val", buf); + e = htsmsg_create_key_val(lc->code2b, buf); } htsmsg_add_msg(l, NULL, e); lc++; @@ -441,7 +439,7 @@ esfilter_build_ca_cmp(const void *_a, const void *_b) static htsmsg_t * esfilter_build_ca_enum(int provider) { - htsmsg_t *e, *l; + htsmsg_t *l; uint32_t *a = alloca(sizeof(uint32_t) * MAX_ITEMS); char buf[16], buf2[128]; service_t *s; @@ -469,20 +467,14 @@ esfilter_build_ca_enum(int provider) l = htsmsg_create_list(); - e = htsmsg_create_map(); - htsmsg_add_str(e, "key", provider ? "ffffff" : "ffff"); - htsmsg_add_str(e, "val", "ANY"); - htsmsg_add_msg(l, NULL, e); + htsmsg_add_msg(l, NULL, htsmsg_create_key_val(provider ? "ffffff" : "ffff", "ANY")); for (i = 0; i < count; i++) { - e = htsmsg_create_map(); snprintf(buf, sizeof(buf), provider ? "%06x" : "%04x", a[i]); if (!provider) snprintf(buf2, sizeof(buf2), "%04x - %s", a[i], caid2name(a[i])); - htsmsg_add_str(e, "key", buf); - htsmsg_add_str(e, "val", provider ? buf : buf2); - htsmsg_add_msg(l, NULL, e); + htsmsg_add_msg(l, NULL, htsmsg_create_key_val(buf, provider ? buf : buf2)); } return l; diff --git a/src/hts_strtab.h b/src/hts_strtab.h index 3dcdd80dd..143c9234c 100644 --- a/src/hts_strtab.h +++ b/src/hts_strtab.h @@ -128,9 +128,7 @@ strtab2htsmsg0_str(const struct strtab_str tab[], uint32_t n, int i18n, const ch uint32_t i; htsmsg_t *e, *l = htsmsg_create_list(); for (i = 0; i < n; i++) { - e = htsmsg_create_map(); - htsmsg_add_str(e, "key", tab[i].val); - htsmsg_add_str(e, "val", i18n ? tvh_gettext_lang(lang, tab[i].str) : tab[i].str); + e = htsmsg_create_key_val(tab[i].val, i18n ? tvh_gettext_lang(lang, tab[i].str) : tab[i].str); htsmsg_add_msg(l, NULL, e); } return l; diff --git a/src/htsmsg.c b/src/htsmsg.c index 9c9d84241..b81a1e35c 100644 --- a/src/htsmsg.c +++ b/src/htsmsg.c @@ -1274,3 +1274,17 @@ htsmsg_csv_2_list(const char *str, char delim) } return m; } + +/* + * + */ +htsmsg_t * +htsmsg_create_key_val(const char *key, const char *val) +{ + htsmsg_t *r = htsmsg_create_map(); + if (r) { + htsmsg_add_str(r, "key", key); + htsmsg_add_str(r, "val", val); + } + return r; +} diff --git a/src/htsmsg.h b/src/htsmsg.h index b278cbe3a..fc20f18b9 100644 --- a/src/htsmsg.h +++ b/src/htsmsg.h @@ -427,6 +427,8 @@ char *htsmsg_list_2_csv(htsmsg_t *m, char delim, int human); htsmsg_t *htsmsg_csv_2_list(const char *str, char delim); +htsmsg_t *htsmsg_create_key_val(const char *key, const char *val); + /** * */ diff --git a/src/idnode.c b/src/idnode.c index b85618fee..67f09151c 100644 --- a/src/idnode.c +++ b/src/idnode.c @@ -1513,9 +1513,7 @@ idnode_slist_enum ( idnode_t *in, idnode_slist_t *options, const char *lang ) htsmsg_t *l = htsmsg_create_list(), *m; for (; options->id; options++) { - m = htsmsg_create_map(); - htsmsg_add_str(m, "key", options->id); - htsmsg_add_str(m, "val", tvh_gettext_lang(lang, options->name)); + m = htsmsg_create_key_val(options->id, tvh_gettext_lang(lang, options->name)); htsmsg_add_msg(l, NULL, m); } return l; diff --git a/src/input/mpegts/linuxdvb/linuxdvb_en50494.c b/src/input/mpegts/linuxdvb/linuxdvb_en50494.c index 688d5736b..8e317a298 100644 --- a/src/input/mpegts/linuxdvb/linuxdvb_en50494.c +++ b/src/input/mpegts/linuxdvb/linuxdvb_en50494.c @@ -111,7 +111,7 @@ linuxdvb_en50607_id_list ( void *o, const char *lang ) return m; } -static htsmsg_t * +htsmsg_t * linuxdvb_en50494_pin_list ( void *o, const char *lang ) { int32_t i; diff --git a/src/input/mpegts/linuxdvb/linuxdvb_frontend.c b/src/input/mpegts/linuxdvb/linuxdvb_frontend.c index 352385ef3..bed30d0b9 100644 --- a/src/input/mpegts/linuxdvb/linuxdvb_frontend.c +++ b/src/input/mpegts/linuxdvb/linuxdvb_frontend.c @@ -243,18 +243,14 @@ linuxdvb_frontend_dvbs_class_master_enum( void * self, const char *lang ) char ubuf[UUID_HEX_SIZE]; htsmsg_t *m = htsmsg_create_list(); if (self == NULL) return m; - htsmsg_t *e = htsmsg_create_map(); - htsmsg_add_str(e, "key", ""); - htsmsg_add_str(e, "val", N_("This tuner")); + htsmsg_t *e = htsmsg_create_key_val("", N_("This tuner")); htsmsg_add_msg(m, NULL, e); LIST_FOREACH(th, &tvh_hardware, th_link) { if (!idnode_is_instance(&th->th_id, &linuxdvb_adapter_class)) continue; la = (linuxdvb_adapter_t*)th; LIST_FOREACH(lfe2, &la->la_frontends, lfe_link) { if (lfe2 != lfe && lfe2->lfe_type == lfe->lfe_type) { - e = htsmsg_create_map(); - htsmsg_add_str(e, "key", idnode_uuid_as_str(&lfe2->ti_id, ubuf)); - htsmsg_add_str(e, "val", lfe2->mi_name); + e = htsmsg_create_key_val(idnode_uuid_as_str(&lfe2->ti_id, ubuf), lfe2->mi_name); htsmsg_add_msg(m, NULL, e); } } diff --git a/src/input/mpegts/mpegts_input.c b/src/input/mpegts/mpegts_input.c index 2180015a7..bac147518 100644 --- a/src/input/mpegts/mpegts_input.c +++ b/src/input/mpegts/mpegts_input.c @@ -192,15 +192,6 @@ mpegts_input_class_linked_get ( void *self ) return &prop_sbuf_ptr; } -static void -mpegts_input_add_keyval(htsmsg_t *l, const char *key, const char *val) -{ - htsmsg_t *e = htsmsg_create_map(); - htsmsg_add_str(e, "key", key); - htsmsg_add_str(e, "val", val); - htsmsg_add_msg(l, NULL, e); -} - static htsmsg_t * mpegts_input_class_linked_enum( void * self, const char *lang ) { @@ -208,13 +199,16 @@ mpegts_input_class_linked_enum( void * self, const char *lang ) tvh_input_t *ti; char ubuf[UUID_HEX_SIZE]; htsmsg_t *m = htsmsg_create_list(); - mpegts_input_add_keyval(m, "", tvh_gettext_lang(lang, N_("Not linked"))); + htsmsg_t *e = htsmsg_create_key_val("", tvh_gettext_lang(lang, N_("Not linked"))); + htsmsg_add_msg(m, NULL, e); TVH_INPUT_FOREACH(ti) if (idnode_is_instance(&ti->ti_id, &mpegts_input_class)) { mi2 = (mpegts_input_t *)ti; - if (mi2 != mi) - mpegts_input_add_keyval(m, idnode_uuid_as_str(&ti->ti_id, ubuf), - idnode_get_title(&mi2->ti_id, lang)); + if (mi2 != mi) { + e = htsmsg_create_key_val(idnode_uuid_as_str(&ti->ti_id, ubuf), + idnode_get_title(&mi2->ti_id, lang)); + htsmsg_add_msg(m, NULL, e); + } } return m; } diff --git a/src/input/mpegts/mpegts_mux_dvb.c b/src/input/mpegts/mpegts_mux_dvb.c index 203a53af0..820e987fd 100644 --- a/src/input/mpegts/mpegts_mux_dvb.c +++ b/src/input/mpegts/mpegts_mux_dvb.c @@ -68,9 +68,7 @@ dvb_mux_##c##_class_##l##_enum (void *o, const char *lang)\ int i;\ htsmsg_t *m = htsmsg_create_list(), *e;\ for (i = 0; i < ARRAY_SIZE(t); i++) {\ - e = htsmsg_create_map(); \ - htsmsg_add_str(e, "key", dvb_##t##2str(t[i]));\ - htsmsg_add_str(e, "val", tvh_gettext_lang(lang, dvb_##t##2str(t[i])));\ + e = htsmsg_create_key_val(dvb_##t##2str(t[i]), tvh_gettext_lang(lang, dvb_##t##2str(t[i]))); \ htsmsg_add_msg(m, NULL, e);\ }\ return m;\ @@ -98,9 +96,7 @@ dvb_mux_##c##_class_##l##_enum (void *o, const char *lang)\ int i;\ htsmsg_t *m = htsmsg_create_list(), *e;\ for (i = 0; i < ARRAY_SIZE(t); i++) {\ - e = htsmsg_create_map(); \ - htsmsg_add_str(e, "key", dvb_##t##2str(t[i]));\ - htsmsg_add_str(e, "val", tvh_gettext_lang(lang, dvb_##t##2str(t[i])));\ + e = htsmsg_create_key_val(dvb_##t##2str(t[i]), tvh_gettext_lang(lang, dvb_##t##2str(t[i]))); \ htsmsg_add_msg(m, NULL, e);\ }\ return m;\ diff --git a/src/input/mpegts/mpegts_network.c b/src/input/mpegts/mpegts_network.c index 92198db3f..8f4a1326b 100644 --- a/src/input/mpegts/mpegts_network.c +++ b/src/input/mpegts/mpegts_network.c @@ -537,9 +537,7 @@ mpegts_network_wizard_get mi->mi_display_name(mi, buf, sizeof(buf)); htsmsg_add_str(m, "input_name", buf); l = htsmsg_create_list(); - e = htsmsg_create_map(); - htsmsg_add_str(e, "key", idc->ic_class); - htsmsg_add_str(e, "val", idclass_get_caption(idc, lang)); + e = htsmsg_create_key_val(idc->ic_class, idclass_get_caption(idc, lang)); htsmsg_add_msg(l, NULL, e); htsmsg_add_msg(m, "mpegts_network_types", l); if (mn) diff --git a/src/profile.c b/src/profile.c index 1f7f73433..3aa1a4c16 100644 --- a/src/profile.c +++ b/src/profile.c @@ -1595,15 +1595,13 @@ profile_class_language_list(void *o, const char *lang) char buf[128]; while (lc->code2b) { - htsmsg_t *e = htsmsg_create_map(); + htsmsg_t *e; if (!strcmp(lc->code2b, "und")) { - htsmsg_add_str(e, "key", ""); - htsmsg_add_str(e, "val", tvh_gettext_lang(lang, N_("Use original"))); + e = htsmsg_create_key_val("", tvh_gettext_lang(lang, N_("Use original"))); } else { - htsmsg_add_str(e, "key", lc->code2b); snprintf(buf, sizeof(buf), "%s (%s)", lc->desc, lc->code2b); buf[sizeof(buf)-1] = '\0'; - htsmsg_add_str(e, "val", buf); + e = htsmsg_create_key_val(lc->code2b, buf); } htsmsg_add_msg(l, NULL, e); lc++; @@ -1632,13 +1630,9 @@ profile_class_codec_list(int (*check)(int sct), const char *lang) char buf[128]; int sct; - e = htsmsg_create_map(); - htsmsg_add_str(e, "key", ""); - htsmsg_add_str(e, "val", tvh_gettext_lang(lang, N_("Do not use"))); + e = htsmsg_create_key_val("", tvh_gettext_lang(lang, N_("Do not use"))); htsmsg_add_msg(l, NULL, e); - e = htsmsg_create_map(); - htsmsg_add_str(e, "key", "copy"); - htsmsg_add_str(e, "val", tvh_gettext_lang(lang, N_("Copy codec type"))); + e = htsmsg_create_key_val("copy", tvh_gettext_lang(lang, N_("Copy codec type"))); htsmsg_add_msg(l, NULL, e); c = transcoder_get_capabilities(profile_transcode_experimental_codecs); HTSMSG_FOREACH(f, c) { @@ -1655,9 +1649,7 @@ profile_class_codec_list(int (*check)(int sct), const char *lang) snprintf(buf, sizeof(buf), "%s: %s", s, s2); else snprintf(buf, sizeof(buf), "%s", s); - e = htsmsg_create_map(); - htsmsg_add_str(e, "key", s); - htsmsg_add_str(e, "val", buf); + e = htsmsg_create_key_val(s, buf); htsmsg_add_msg(l, NULL, e); } htsmsg_destroy(c); diff --git a/src/utils.c b/src/utils.c index 9e5126299..6ec705049 100644 --- a/src/utils.c +++ b/src/utils.c @@ -796,12 +796,8 @@ htsmsg_t *network_interfaces_enum(void *obj, const char *lang) if (ifnames) { struct if_nameindex *ifname; - for (ifname = ifnames; ifname->if_name; ifname++) { - htsmsg_t *entry = htsmsg_create_map(); - htsmsg_add_str(entry, "key", ifname->if_name); - htsmsg_add_str(entry, "val", ifname->if_name); - htsmsg_add_msg(list, NULL, entry); - } + for (ifname = ifnames; ifname->if_name; ifname++) + htsmsg_add_msg(list, NULL, htsmsg_create_key_val(ifname->if_name, ifname->if_name)); if_freenameindex(ifnames); }