Ejemplo n.º 1
0
static htsmsg_t *
codec_profile_audio_class_language_list(void *obj, const char *lang)
{
    htsmsg_t *list = htsmsg_create_list();
    lang_code_t *lc = (lang_code_t *)lang_codes;
    char lc_buf[128];

    while (lc->code2b) {
        htsmsg_t *map = NULL;
        if (!strcmp(lc->code2b, "und")) {
            map = htsmsg_create_key_val("", tvh_gettext_lang(lang, N_("Use original")));
        }
        else {
            memset(lc_buf, 0, sizeof(lc_buf));
            if (!str_snprintf(lc_buf, sizeof(lc_buf), "%s (%s)", lc->desc, lc->code2b)) {
                map = htsmsg_create_key_val(lc->code2b, lc_buf);
            }
            else {
                htsmsg_destroy(list);
                list = NULL;
                break;
            }
        }
        htsmsg_add_msg(list, NULL, map);
        lc++;
    }
    return list;
}
Ejemplo n.º 2
0
static void epggrab_mod_class_title
  (idnode_t *self, const char *lang, char *dst, size_t dstsize)
{
  epggrab_module_t *mod = (epggrab_module_t *)self;
  const char *s1 = tvh_gettext_lang(lang, epggrab_module_type(mod));
  const char *s2 = tvh_str_default(mod->name, mod->id);
  snprintf(dst, dstsize, "%s: %s", s1, s2);
}
Ejemplo n.º 3
0
static const void *description_get(wizard_page_t *page, const char **doc)
{
  htsbuf_queue_t q;

  if (!page->desc) {
    htsbuf_queue_init(&q, 0);
    for (; *doc; doc++) {
      if (*doc[0] == '\xff') {
        htsbuf_append_str(&q, tvh_gettext_lang(config.language_ui, *doc + 1));
      } else {
        htsbuf_append_str(&q, *doc);
      }
    }
    page->desc = htsbuf_to_string(&q);
    htsbuf_queue_flush(&q);
  }
  return &page->desc;
}
Ejemplo n.º 4
0
static htsmsg_t *
epggrab_module_ota_scrapper_config_list ( void *o, const char *lang )
{
  htsmsg_t *m = htsmsg_create_list();
  htsmsg_t *e = htsmsg_create_map();
  htsmsg_add_str(e, "key", "");
  htsmsg_add_str(e, "val", tvh_gettext_lang(lang, N_("Use default configuration")));
  htsmsg_add_msg(m, NULL, e);
  htsmsg_t *config;
  /* We load all the config so we can get the names of ones that are
   * valid. This is a bit of overhead but we are rarely called since
   * this is for the configuration GUI drop-down.
   */
  if((config = hts_settings_load_r(1, "epggrab/eit/scrape")) != NULL) {
    htsmsg_field_t *f;
    HTSMSG_FOREACH(f, config) {
      e = htsmsg_create_map();
      htsmsg_add_str(e, "key", htsmsg_field_name(f));
      htsmsg_add_str(e, "val", htsmsg_field_name(f));
      htsmsg_add_msg(m, NULL, e);
    }
Ejemplo n.º 5
0
static int
md_props(htsbuf_queue_t *hq, htsmsg_t *m, const char *lang, int nl)
{
  htsmsg_t *l, *n, *e, *x;
  htsmsg_field_t *f, *f2;
  const char *s;
  int first = 1, b;

  l = htsmsg_get_list(m, "props");
  HTSMSG_FOREACH(f, l) {
    n = htsmsg_field_get_map(f);
    if (!n) continue;
    if (!htsmsg_get_bool(n, "noui", &b) && b) continue;
    s = htsmsg_get_str(n, "caption");
    if (!s) continue;
    if (first) {
      nl = md_nl(hq, nl);
      htsbuf_append_str(hq, "#### ");
      htsbuf_append_str(hq, tvh_gettext_lang(lang, N_("Items")));
      md_nl(hq, 1);
      md_nl(hq, 1);
      htsbuf_append_str(hq, tvh_gettext_lang(lang, N_("The items have the following functions:")));
      md_nl(hq, 1);
      first = 0;
    }
    nl = md_nl(hq, nl);
    md_style(hq, "**", s);
    if (!htsmsg_get_bool(n, "rdonly", &b) && b) {
      htsbuf_append(hq, " _", 2);
      htsbuf_append_str(hq, tvh_gettext_lang(lang, N_("(Read-only)")));
      htsbuf_append(hq, "_", 1);
    }
    md_nl(hq, 1);
    s = htsmsg_get_str(n, "description");
    if (s) {
      md_text(hq, ": ", "  ", s);
      md_nl(hq, 1);
    }
    s = htsmsg_get_str(n, "doc");
    if (s) {
      htsbuf_append_str(hq, s);
      md_nl(hq, 1);
    }
    if (!htsmsg_get_bool_or_default(n, "doc_nlist", 0)) {
      e = htsmsg_get_list(n, "enum");
      if (e) {
        HTSMSG_FOREACH(f2, e) {
          x = htsmsg_field_get_map(f2);
          if (x) {
            s = htsmsg_get_str(x, "val");
          } else {
            s = htsmsg_field_get_string(f2);
          }
          if (s) {
            md_nl(hq, 1);
            htsbuf_append(hq, "  * ", 4);
            md_style(hq, "**", s);
          }
        }
        md_nl(hq, 1);
      }
Ejemplo n.º 6
0
static int
http_markdown_class(http_connection_t *hc, const char *clazz)
{
  const idclass_t *ic;
  const char *lang = hc->hc_access->aa_lang_ui;
  htsbuf_queue_t *hq = &hc->hc_reply;
  htsmsg_t *m, *l, *n, *e, *x;
  htsmsg_field_t *f, *f2;
  const char *s, **doc;
  int nl = 0, first = 1;

  pthread_mutex_lock(&global_lock);
  ic = idclass_find(clazz);
  if (ic == NULL) {
    pthread_mutex_unlock(&global_lock);
    return HTTP_STATUS_NOT_FOUND;
  }
  doc = ic->ic_doc;
  m = idclass_serialize(ic, lang);
  pthread_mutex_unlock(&global_lock);
  s = htsmsg_get_str(m, "caption");
  if (s) {
    md_header(hq, "##", s);
    nl = md_nl(hq, 1);
  }
  if (doc) {
    for (; *doc; doc++) {
      if (*doc[0] == '\xff') {
        htsbuf_append_str(hq, tvh_gettext_lang(lang, *doc + 1));
      } else {
        htsbuf_append_str(hq, *doc);
      }
    }
  }
  l = htsmsg_get_list(m, "props");
  HTSMSG_FOREACH(f, l) {
    n = htsmsg_field_get_map(f);
    if (!n) continue;
    s = htsmsg_get_str(n, "caption");
    if (!s) continue;
    if (first) {
      nl = md_nl(hq, nl);
      htsbuf_append_str(hq, "####");
      htsbuf_append_str(hq, tvh_gettext_lang(lang, N_("Items")));
      md_nl(hq, 1);
      md_nl(hq, 1);
      htsbuf_append_str(hq, tvh_gettext_lang(lang, N_("The items have the following functions:")));
      md_nl(hq, 1);
      first = 0;
    }
    nl = md_nl(hq, nl);
    md_style(hq, "**", s);
    md_nl(hq, 1);
    s = htsmsg_get_str(n, "description");
    if (s) {
      md_text(hq, ": ", "  ", s);
      md_nl(hq, 1);
    }
    e = htsmsg_get_list(n, "enum");
    if (e) {
      HTSMSG_FOREACH(f2, e) {
        x = htsmsg_field_get_map(f2);
        if (x) {
          s = htsmsg_get_str(x, "val");
        } else {
          s = htsmsg_field_get_string(f2);
        }
        if (s) {
          md_nl(hq, 1);
          htsbuf_append(hq, "  * ", 4);
          md_style(hq, "**", s);
        }
      }
      md_nl(hq, 1);
    }