void audio_init(void) { htsmsg_t *store = htsmsg_store_load("audio2"); if(store == NULL) store = htsmsg_create_map(); prop_t *asettings = settings_add_dir(NULL, _p("Audio settings"), NULL, NULL, _p("Setup audio output"), "settings:audio"); audio_mastervol_init(); audio_class = audio_driver_init(asettings, store); settings_create_separator(asettings, _p("Audio settings during video playback")); gconf.setting_av_volume = setting_create(SETTING_INT, asettings, SETTINGS_INITIAL_UPDATE, SETTING_TITLE(_p("Audio gain adjustment during video playback")), SETTING_RANGE(-12, 12), SETTING_UNIT_CSTR("dB"), SETTING_HTSMSG("videovolume", store, "audio2"), SETTING_VALUE_ORIGIN("global"), NULL); gconf.setting_av_sync = setting_create(SETTING_INT, asettings, SETTINGS_INITIAL_UPDATE, SETTING_TITLE(_p("Audio delay")), SETTING_RANGE(-5000, 5000), SETTING_STEP(50), SETTING_UNIT_CSTR("ms"), SETTING_HTSMSG("avdelta", store, "audio2"), SETTING_VALUE_ORIGIN("global"), NULL); #if CONFIG_AUDIOTEST audio_test_init(asettings); #endif }
/** * */ static int locatedb_init(void) { htsmsg_t *store = htsmsg_store_load("locatedb") ?: htsmsg_create_map(); prop_t *s = search_get_settings(); setting_create(SETTING_BOOL, s, SETTINGS_INITIAL_UPDATE, SETTING_TITLE(_p("Search using Unix locatedb")), SETTING_VALUE(1), SETTING_WRITE_BOOL(&locatedb_enabled), SETTING_HTSMSG("enable", store, "locatedb"), NULL); return 0; } /** * */ backend_t be_locatedb = { .be_init = locatedb_init, .be_search = locatedb_search }; BE_REGISTER(locatedb);
void glw_settings_init(void) { glw_settings.gs_settings_store = htsmsg_store_load("glw"); if(glw_settings.gs_settings_store == NULL) glw_settings.gs_settings_store = htsmsg_create_map(); glw_settings.gs_settings = prop_create_root(NULL); prop_concat_add_source(gconf.settings_look_and_feel, prop_create(glw_settings.gs_settings, "nodes"), NULL); prop_t *s = glw_settings.gs_settings; htsmsg_t *store = glw_settings.gs_settings_store; glw_settings.gs_setting_size = setting_create(SETTING_INT, s, SETTINGS_INITIAL_UPDATE, SETTING_TITLE(_p("Font and icon size")), SETTING_RANGE(-10, 30), SETTING_UNIT_CSTR("px"), SETTING_WRITE_INT(&glw_settings.gs_size), SETTING_HTSMSG("size", store, "glw"), NULL); glw_settings.gs_setting_underscan_h = setting_create(SETTING_INT, s, SETTINGS_INITIAL_UPDATE, SETTING_TITLE(_p("Horizontal underscan")), SETTING_RANGE(-100, 100), SETTING_UNIT_CSTR("px"), SETTING_WRITE_INT(&glw_settings.gs_underscan_h), SETTING_HTSMSG("underscan_h", store, "glw"), NULL); glw_settings.gs_setting_underscan_v = setting_create(SETTING_INT, s, SETTINGS_INITIAL_UPDATE, SETTING_TITLE(_p("Vertical underscan")), SETTING_RANGE(-100, 100), SETTING_UNIT_CSTR("px"), SETTING_WRITE_INT(&glw_settings.gs_underscan_v), SETTING_HTSMSG("underscan_v", store, "glw"), NULL); glw_settings.gs_setting_screensaver = setting_create(SETTING_INT, s, SETTINGS_INITIAL_UPDATE, SETTING_TITLE(_p("Screensaver delay")), SETTING_VALUE(10), SETTING_RANGE(0, 60), SETTING_ZERO_TEXT(_p("Off")), SETTING_UNIT_CSTR("min"), SETTING_WRITE_INT(&glw_settings.gs_screensaver_delay), SETTING_HTSMSG("screensaver", store, "glw"), NULL); glw_settings.gs_setting_wrap = setting_create(SETTING_BOOL, s, SETTINGS_INITIAL_UPDATE, SETTING_TITLE(_p("Wrap when reaching beginning/end of lists")), SETTING_VALUE(1), SETTING_WRITE_BOOL(&glw_settings.gs_wrap), SETTING_HTSMSG("wrap", store, "glw"), NULL); prop_t *p = prop_create(prop_get_global(), "glw"); p = prop_create(p, "osk"); kv_prop_bind_create(p, "showtime:glw:osk"); }
void i18n_init(void) { prop_t *s = settings_add_dir(NULL, _p("Languages"), "i18n", NULL, _p("Preferred languages"), "settings:i18n"); int i; htsmsg_t *store = htsmsg_store_load("i18n"); if(store == NULL) store = htsmsg_create_map(); nls_init(s, store); #ifdef STOS setting_create(SETTING_STRING, s, SETTINGS_INITIAL_UPDATE, SETTING_TITLE(_p("Timezone")), SETTING_CALLBACK(set_timezone, NULL), SETTING_HTSMSG("timezone", store, "i18n"), NULL); #endif setting_create(SETTING_MULTIOPT, s, SETTINGS_INITIAL_UPDATE, SETTING_TITLE(_p("Time format")), SETTING_HTSMSG("timeformat", store, "i18n"), SETTING_WRITE_INT(&gconf.time_format), SETTING_OPTION(gconf.time_format_system ? "0" : NULL, _p("System default")), SETTING_OPTION("1", _p("24 Hour")), SETTING_OPTION("2", _p("12 Hour")), NULL); settings_create_info(s, NULL, _p("Language codes should be configured as three character ISO codes, example (eng, swe, fra)")); setting_create(SETTING_STRING, s, SETTINGS_INITIAL_UPDATE, SETTING_TITLE(_p("Primary audio language code")), SETTING_CALLBACK(set_lang, &lang_audio[0]), SETTING_HTSMSG("audio1", store, "i18n"), NULL); setting_create(SETTING_STRING, s, SETTINGS_INITIAL_UPDATE, SETTING_TITLE(_p("Secondary audio language code")), SETTING_CALLBACK(set_lang, &lang_audio[1]), SETTING_HTSMSG("audio2", store, "i18n"), NULL); setting_create(SETTING_STRING, s, SETTINGS_INITIAL_UPDATE, SETTING_TITLE(_p("Tertiary audio language code")), SETTING_CALLBACK(set_lang, &lang_audio[2]), SETTING_HTSMSG("audio3", store, "i18n"), NULL); setting_create(SETTING_STRING, s, SETTINGS_INITIAL_UPDATE, SETTING_TITLE(_p("Primary subtitle language code")), SETTING_CALLBACK(&set_lang, &lang_subtitle[0]), SETTING_HTSMSG("subtitle1", store, "i18n"), NULL); setting_create(SETTING_STRING, s, SETTINGS_INITIAL_UPDATE, SETTING_TITLE(_p("Secondary subtitle language code")), SETTING_CALLBACK(&set_lang, &lang_subtitle[1]), SETTING_HTSMSG("subtitle2", store, "i18n"), NULL); setting_create(SETTING_STRING, s, SETTINGS_INITIAL_UPDATE, SETTING_TITLE(_p("Tertiary subtitle language code")), SETTING_CALLBACK(&set_lang, &lang_subtitle[2]), SETTING_HTSMSG("subtitle3", store, "i18n"), NULL); const char **optlist = NULL; const charset_t *cs; for(i = 0; (cs = charset_get_idx(i)) != NULL; i++) {} optlist = alloca((i * 2 + 3) * sizeof(const char *)); optlist[0] = "auto"; optlist[1] = "Auto"; for(i = 0; (cs = charset_get_idx(i)) != NULL; i++) { optlist[i * 2 + 2] = cs->id; optlist[i * 2 + 3] = cs->title; } optlist[i * 2 + 2] = NULL; setting_create(SETTING_MULTIOPT, s, SETTINGS_INITIAL_UPDATE, SETTING_TITLE(_p("Default character set")), SETTING_HTSMSG("default_charset", store, "i18n"), SETTING_CALLBACK(set_default_charset, NULL), SETTING_OPTION_LIST(optlist), NULL); setting_create(SETTING_BOOL, s, SETTINGS_INITIAL_UPDATE, SETTING_TITLE(_p("Ignore 'The' at beginning of words when sorting")), SETTING_HTSMSG("skipthe", store, "i18n"), SETTING_WRITE_BOOL(&gconf.ignore_the_prefix), NULL); }