Example #1
0
void
audio_mode_register(audio_mode_t *am)
{
  prop_t *r;
  htsmsg_t *m;

  TAILQ_INSERT_TAIL(&audio_modes, am, am_link);

  settings_multiopt_add_opt_cstr(audio_settings_current_device,
				 am->am_id, am->am_title,
				 0);
 
  m = htsmsg_store_load("audio/devices/%s", am->am_id);

  r = settings_add_dir_cstr(audio_settings_root, am->am_title, "sound", NULL,
			    am->am_description, NULL);

  settings_create_int(r, "delay", _p("Audio/Video sync delay"),
		      0, m, -1000, 1000, 10, am_set_av_sync, am,
		      SETTINGS_INITIAL_UPDATE, "ms", NULL, NULL, NULL);

  if(am->am_multich_controls) {
    settings_create_bool(r, "phantom_center", _p("Phantom center"),
			 0, m, am_set_phantom_center, am,
			 SETTINGS_INITIAL_UPDATE, NULL, NULL, NULL);
    settings_create_bool(r, "phantom_lfe", _p("Phantom LFE"),
			 0, m, am_set_phantom_lfe, am,
			 SETTINGS_INITIAL_UPDATE, NULL, NULL, NULL);
    settings_create_bool(r, "small_front", _p("Small front speakers"),
			 0, m, am_set_small_front, am,
			 SETTINGS_INITIAL_UPDATE, NULL, NULL, NULL);
    settings_create_bool(r, "force_downmix", _p("Force stereo downmix"),
			 0, m, am_set_force_downmix, am,
			 SETTINGS_INITIAL_UPDATE, NULL, NULL, NULL);
    settings_create_bool(r, "swap_surround",
			 _p("Swap LFE+center with surround"),
			 0, m, am_set_swap_surround, am,
			 SETTINGS_INITIAL_UPDATE, NULL, NULL, NULL);
  }

  if(m != NULL)
    htsmsg_destroy(m);
}
Example #2
0
static void
sd_add_service(service_instance_t *si, const char *title,
	       const char *url, const char *contents,
	       int probe, const char *description)
{
  si->si_probe = probe;
  if(si->si_settings == NULL) {
    char tmp[100];

    si->si_url = strdup(url);
    
    snprintf(tmp, sizeof(tmp), "sd/%s", url);
    remove_bad_chars(tmp+3);

    si->si_settings_path = strdup(tmp);
    si->si_settings_store = htsmsg_store_load(tmp) ?: htsmsg_create_map();

    si->si_settings = settings_add_dir_cstr(gconf.settings_sd,
					    title, NULL, NULL,
					    description, NULL);
    
    si->si_setting_enabled = 
      settings_create_bool(si->si_settings, "enabled", _p("Enabled"), 1,
			   si->si_settings_store, NULL, NULL,
			   SETTINGS_INITIAL_UPDATE, NULL,
			   sd_settings_saver, si);

    si->si_setting_title = 
      settings_create_string(si->si_settings, "title", _p("Name"), title,
			     si->si_settings_store, NULL, NULL,
			     SETTINGS_INITIAL_UPDATE, NULL,
			     sd_settings_saver, si);

    si->si_setting_type = 
      settings_create_string(si->si_settings, "type", _p("Type"), contents,
			     si->si_settings_store, NULL, NULL,
			     SETTINGS_INITIAL_UPDATE, NULL,
			     sd_settings_saver, si);
  }
Example #3
0
JSBool 
js_createSettings(JSContext *cx, JSObject *obj, uintN argc, 
		  jsval *argv, jsval *rval)
{
  const char *title;
  const char *icon = NULL;
  const char *desc = NULL;
  char spath[URL_MAX];

  if(!JS_ConvertArguments(cx, argc, argv, "s/ss", &title, &icon, &desc))
    return JS_FALSE;
  js_plugin_t *jsp = JS_GetPrivate(cx, obj);
  snprintf(spath, sizeof(spath), "plugins/%s", jsp->jsp_id);

  js_setting_group_t *jsg = calloc(1, sizeof(js_setting_group_t));
  JSObject *robj;
  jsg->jsg_refcount = 2;
  LIST_INSERT_HEAD(&jsp->jsp_setting_groups, jsg, jsg_link);

  jsg->jsg_frozen = 1;
  jsg->jsg_spath = strdup(spath);
  jsg->jsg_store = htsmsg_store_load(spath) ?: htsmsg_create_map();
  jsg->jsg_root_owner = 1;
  jsg->jsg_root =
    prop_ref_inc(settings_add_dir_cstr(gconf.settings_apps, title,
				  NULL, icon, desc, NULL));
  robj = JS_NewObjectWithGivenProto(cx, &setting_group_class, NULL, obj);
  jsg->jsg_val = *rval = OBJECT_TO_JSVAL(robj);
  JS_AddNamedRoot(cx, &jsg->jsg_val, "jsg");
  JS_SetPrivate(cx, robj, jsg);

  JS_DefineFunctions(cx, robj, setting_functions);

  jsval val = OBJECT_TO_JSVAL(js_object_from_prop(cx, jsg->jsg_root));
  JS_SetProperty(cx, robj, "properties", &val);

  jsg->jsg_frozen = 0;
  return JS_TRUE;
}
Example #4
0
static void
glw_init_settings(glw_root_t *gr, const char *instance,
		  const char *instance_title)
{
  prop_t *r = gr->gr_uii.uii_prop;

  if(gr->gr_base_size == 0)
    gr->gr_base_size = 20;

  gr->gr_settings_instance = strdup(instance);

  gr->gr_settings_store = htsmsg_store_load("displays/%s", instance);
  
  if(gr->gr_settings_store == NULL)
    gr->gr_settings_store = htsmsg_create_map();

  if(instance_title) {
    char title[256];
    snprintf(title, sizeof(title), "Display and user interface on screen %s",
	     instance_title);

    gr->gr_settings = settings_add_dir_cstr(NULL, title,
					    "display", NULL, NULL);

  } else {
    gr->gr_settings = settings_add_dir(NULL, 
				       _p("Display and user interface"),
				       "display", NULL, NULL);

  }

  gr->gr_prop_size = prop_create(r, "size");
  gr->gr_prop_underscan_h = prop_create(r, "underscan_h");
  gr->gr_prop_underscan_v = prop_create(r, "underscan_v");


  gr->gr_setting_size =
    settings_create_int(gr->gr_settings, "size",
			_p("Userinterface size"), 0,
			gr->gr_settings_store, -10, 30, 1,
			glw_change_size, gr,
			SETTINGS_INITIAL_UPDATE, "px", gr->gr_courier,
			glw_settings_save, gr);

  gr->gr_setting_underscan_h =
    settings_create_int(gr->gr_settings, "underscan_h",
			_p("Horizontal underscan"), 0,
			gr->gr_settings_store, -100, +100, 1,
			glw_change_underscan_h, gr,
			SETTINGS_INITIAL_UPDATE, "px", gr->gr_courier,
			glw_settings_save, gr);

  gr->gr_setting_underscan_v =
    settings_create_int(gr->gr_settings, "underscan_v",
			_p("Vertical underscan"), 0,
			gr->gr_settings_store, -100, +100, 1,
			glw_change_underscan_v, gr,
			SETTINGS_INITIAL_UPDATE, "px", gr->gr_courier,
			glw_settings_save, gr);


  gr->gr_setting_screensaver =
    settings_create_int(gr->gr_settings, "screensaver",
			_p("Screensaver delay"),
			10, gr->gr_settings_store, 1, 60, 1,
			glw_set_screensaver_delay, gr,
			SETTINGS_INITIAL_UPDATE, " min", gr->gr_courier,
			glw_settings_save, gr);


  gr->gr_pointer_visible    = prop_create(r, "pointerVisible");
  gr->gr_is_fullscreen      = prop_create(r, "fullscreen");
  gr->gr_screensaver_active = prop_create(r, "screensaverActive");
  gr->gr_prop_width         = prop_create(r, "width");
  gr->gr_prop_height        = prop_create(r, "height");

  prop_set_int(gr->gr_screensaver_active, 0);
}