]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
htsmsg: add htsmsg_create_key_val() fcn
authorJaroslav Kysela <perex@perex.cz>
Tue, 20 Sep 2016 15:37:35 +0000 (17:37 +0200)
committerJaroslav Kysela <perex@perex.cz>
Tue, 20 Sep 2016 15:37:35 +0000 (17:37 +0200)
21 files changed:
src/api/api_access.c
src/api/api_bouquet.c
src/api/api_channel.c
src/api/api_idnode.c
src/api/api_intlconv.c
src/api/api_language.c
src/api/api_mpegts.c
src/api/api_profile.c
src/config.c
src/esfilter.c
src/hts_strtab.h
src/htsmsg.c
src/htsmsg.h
src/idnode.c
src/input/mpegts/linuxdvb/linuxdvb_en50494.c
src/input/mpegts/linuxdvb/linuxdvb_frontend.c
src/input/mpegts/mpegts_input.c
src/input/mpegts/mpegts_mux_dvb.c
src/input/mpegts/mpegts_network.c
src/profile.c
src/utils.c

index 734d6deeb154e507a04a27d9d49da215e8d36a7e..a7b2e30214f050283adcdde3b4677a267d9bf08a 100644 (file)
@@ -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);
     }
index 3e651bd0f76cb27c0f17d3149811dcad0a755f3c..7a5c4acb24a0a12bcf2858ccb3e77878e695fbfc 100644 (file)
@@ -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);
index 2de1c2aad1947ebc96c8918dbb9e2dcb489fd60f..0530ec1be07eea66564abf8681fd9d1eefb623ea 100644 (file)
 #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();
index eb4164621f7d72db2b6575c1a2fbf6e1b4fe2098..d614ce549145fde2a448332d112d97862fffe71b 100644 (file)
@@ -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 {
index 632b96ed692dc5e8e5a17e76340a4f05d56775af..fc7b27f04e698d43fcbb386d0db6ed251e48892b 100644 (file)
@@ -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();
index aede0505107d1649a28d12cf194b29cea3c79613..8377c5cd473d67744490722a2bd71e78e10d7770 100644 (file)
@@ -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;
     }
index 7c64c60087ceb9885d039551aff6bafd9edbad32..8d2ee15ba50197873c99a9ad237ac0d6866ac825 100644 (file)
@@ -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);
   }
index fe5e5a9e771a4ef8dcf6c141394aebcb4d214d1a..68edeb18965fa4bbbb4688cb030319607b134452 100644 (file)
@@ -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();
index c7b0e012b7837ab07ea0c8d1ac69bebfa624298a..86ec785b087c6e6be01e30330e737995bd9e2628 100644 (file)
@@ -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);
 }
 
index a974bc6fbd0d4853ec4114a418b46c8dee3566c1..9071bd7fddb7d2ca05314d8887cd60716073a0ae 100644 (file)
@@ -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;
 
index 3dcdd80dd95b2e75ffee09ef675548bb91a001c9..143c9234c2e8ac90027feff2d0c57803f817259b 100644 (file)
@@ -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;
index 9c9d842419751891eaa8b866c1fd7f905ab58536..b81a1e35ce22b82d0d1c376b9790650925c3b41e 100644 (file)
@@ -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;
+}
index b278cbe3ac548d0934bdd644434efe84e0bc9ac2..fc20f18b92450951e6e66070aa47b7694411f224 100644 (file)
@@ -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);
+
 /**
  *
  */
index b85618fee824f13dec53ed6e4d9f555606da3b1b..67f09151c62c47a9b3fab6dcacb278a6b22b1a54 100644 (file)
@@ -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;
index 688d5736bfb2ab60c035e85eb6778b3f44e0066c..8e317a298bfe535b7e9f30ce7be870b1d2794f72 100644 (file)
@@ -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;
index 352385ef372dbfb9bc8cbbc213ac12507df6ac1a..bed30d0b943bb02139e8cbb7eadf0f67c2b6d8fb 100644 (file)
@@ -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);
       }
     }
index 2180015a7996a4ceb358b60a45fd5354f8a9d224..bac147518a4cfaacbdc8e5897d76920f4b3401ca 100644 (file)
@@ -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;
 }
index 203a53af03aec5675e8a1b1173c74e68588d7a20..820e987fd7ed786e3a598a74de4b9410237febe0 100644 (file)
@@ -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;\
index 92198db3fd179bfbacbbe56f0c11d64bde7d27bf..8f4a1326ba84a7b9a5fe9b4c20614befb8b476c8 100644 (file)
@@ -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)
index 1f7f7343335a4a28f12be1f9026a3bd6f8465d64..3aa1a4c16ecc6a027baf3b26ed071d60a24ceb69 100644 (file)
@@ -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);
index 9e51262999ed4c5a8de8c914f560f9b63f43288f..6ec7050492aaa9b3aa7b43b999387a1355cb654b 100644 (file)
@@ -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);
   }