static void * libcec_init_thread(void *aux) { prop_t *set = setting_get_dir("settings:tv"); libcec_clear_configuration(&cec_config); cec_config.callbacks = &g_callbacks; snprintf(cec_config.strDeviceName, sizeof(cec_config.strDeviceName), "%s", APPNAMEUSER); cec_config.deviceTypes.types[0] = CEC_DEVICE_TYPE_RECORDING_DEVICE; conn = libcec_initialise(&cec_config); if(conn == NULL) { TRACE(TRACE_ERROR, "CEC", "Unable to init libcec"); return NULL; } libcec_init_video_standalone(conn); cec_adapter ca; int num_adapters = libcec_find_adapters(conn, &ca, 1, NULL); if(num_adapters < 1) { libcec_destroy(conn); conn = NULL; TRACE(TRACE_ERROR, "CEC", "No adapters found"); return NULL; } TRACE(TRACE_DEBUG, "CEC", "Using adapter %s on %s", ca.comm, ca.path); setting_create(SETTING_BOOL, set, SETTINGS_INITIAL_UPDATE, SETTING_TITLE(_p("Switch TV input source")), SETTING_VALUE(1), SETTING_CALLBACK(set_activate_source, NULL), SETTING_STORE("cec", "controlinput"), NULL); setting_create(SETTING_BOOL, set, SETTINGS_INITIAL_UPDATE, SETTING_TITLE(_p("Use STOP key for combo input")), SETTING_VALUE(1), SETTING_CALLBACK(set_stop_combo_mode, NULL), SETTING_STORE("cec", "stopcombo"), NULL); setting_create(SETTING_BOOL, set, SETTINGS_INITIAL_UPDATE, SETTING_TITLE(_p("Longpress SELECT for item menu")), SETTING_VALUE(1), SETTING_CALLBACK(set_longpress_select, NULL), SETTING_STORE("cec", "longpress_select"), NULL); #if 0 setting_create(SETTING_BOOL, set, SETTINGS_INITIAL_UPDATE, SETTING_TITLE_CSTR("Shutdown UI when TV is off"), SETTING_WRITE_BOOL(&auto_ui_shutdown), SETTING_STORE("cec", "auto_shutdown"), NULL); #endif if(!libcec_open(conn, ca.comm, 5000)) { TRACE(TRACE_ERROR, "CEC", "Unable to open connection to %s", ca.comm); libcec_destroy(conn); conn = NULL; return NULL; } return NULL; }
settings_add_dir(NULL, _p("TV Control"), "display", NULL, _p("Configure communications with your TV"), "settings:cec"); libcec_clear_configuration(&cec_config); cec_config.callbacks = &g_callbacks; snprintf(cec_config.strDeviceName, sizeof(cec_config.strDeviceName), "%s", APPNAMEUSER); cec_config.deviceTypes.types[0] = CEC_DEVICE_TYPE_RECORDING_DEVICE; conn = libcec_initialise(&cec_config); if(conn == NULL) { TRACE(TRACE_ERROR, "CEC", "Unable to init libcec"); return NULL; } libcec_init_video_standalone(conn); cec_adapter ca; int num_adapters = libcec_find_adapters(conn, &ca, 1, NULL); if(num_adapters < 1) { libcec_destroy(conn); TRACE(TRACE_ERROR, "CEC", "No adapters found"); return NULL; } TRACE(TRACE_DEBUG, "CEC", "Using adapter %s on %s",