int glw_init(glw_root_t *gr, const char *theme, const char *skin, ui_t *ui, int primary, const char *instance, const char *instance_title) { char buf[256]; skin = skin ?: "grey"; // Read from theme snprintf(buf, sizeof(buf), "%s/skins/%s", theme, skin); hts_mutex_init(&gr->gr_mutex); gr->gr_courier = prop_courier_create_passive(); gr->gr_vpaths[0] = "theme"; gr->gr_vpaths[1] = theme; gr->gr_vpaths[2] = "skin"; gr->gr_vpaths[3] = strdup(buf); gr->gr_vpaths[4] = NULL; gr->gr_uii.uii_ui = ui; glw_text_bitmap_init(gr); glw_init_settings(gr, instance, instance_title); TAILQ_INIT(&gr->gr_destroyer_queue); glw_tex_init(gr); gr->gr_frameduration = 1000000 / 60; uii_register(&gr->gr_uii, primary); return 0; }
int glw_init(glw_root_t *gr, const char *theme, ui_t *ui, int primary, const char *instance, const char *instance_title) { hts_mutex_init(&gr->gr_mutex); gr->gr_courier = prop_courier_create_passive(); gr->gr_token_pool = pool_create("glwtokens", sizeof(token_t), POOL_ZERO_MEM); gr->gr_clone_pool = pool_create("glwclone", sizeof(glw_clone_t), POOL_ZERO_MEM); gr->gr_vpaths[0] = "theme"; gr->gr_vpaths[1] = theme; gr->gr_vpaths[2] = NULL; gr->gr_uii.uii_ui = ui; glw_text_bitmap_init(gr); glw_init_settings(gr, instance, instance_title); TAILQ_INIT(&gr->gr_destroyer_queue); glw_tex_init(gr); gr->gr_frameduration = 1000000 / 60; uii_register(&gr->gr_uii, primary); return 0; }
static void * fa_searcher (void *aux) { fa_search_t *fas = aux; char cmd[PATH_MAX]; /* FIXME: We should have some sort of priority here. E.g.: * 1) User defined search command. * 2) Some omnipresent indexer (beagle?) * 3) locate/updatedb * 4) standard find. */ snprintf(cmd, sizeof(cmd), "locate -i -L -q -b '%s'", fas->fas_query); TRACE(TRACE_DEBUG, "FA", "Searcher: %s: executing \"%s\"", fas->fas_query, cmd); if ((fas->fas_fp = popen(cmd, "re")) == NULL) { TRACE(TRACE_ERROR, "FA", "Searcher: %s: Unable to execute \"%s\": %s", fas->fas_query, cmd, strerror(errno)); fa_search_destroy(fas); return NULL; } fas->fas_pc = prop_courier_create_passive(); fas->fas_sub = prop_subscribe(PROP_SUB_TRACK_DESTROY, PROP_TAG_CALLBACK, fa_search_nodesub, fas, PROP_TAG_ROOT, fas->fas_nodes, PROP_TAG_COURIER, fas->fas_pc, NULL); fa_locate_searcher(fas); return NULL; }
int glw_init(glw_root_t *gr, const char *instance) { char skinbuf[PATH_MAX]; const char *skin = gconf.skin; if(skin == NULL) { snprintf(skinbuf, sizeof(skinbuf), "%s/glwskins/"SHOWTIME_GLW_DEFAULT_SKIN, showtime_dataroot()); skin = skinbuf; } hts_mutex_init(&gr->gr_mutex); gr->gr_courier = prop_courier_create_passive(); gr->gr_token_pool = pool_create("glwtokens", sizeof(token_t), POOL_ZERO_MEM); gr->gr_clone_pool = pool_create("glwclone", sizeof(glw_clone_t), POOL_ZERO_MEM); gr->gr_skin = strdup(skin); gr->gr_vpaths[0] = "skin"; gr->gr_vpaths[1] = gr->gr_skin; gr->gr_vpaths[2] = NULL; gr->gr_font_domain = freetype_get_context(); glw_text_bitmap_init(gr); glw_init_settings(gr, instance); TAILQ_INIT(&gr->gr_destroyer_queue); glw_tex_init(gr); gr->gr_framerate = 60; gr->gr_frameduration = 1000000 / gr->gr_framerate; gr->gr_ui_start = showtime_get_ts(); return 0; }
int glw_init(glw_root_t *gr) { char skinbuf[PATH_MAX]; const char *skin = gconf.skin; if(gr->gr_prop_dispatcher == NULL) gr->gr_prop_dispatcher = &prop_courier_poll_timed; gr->gr_prop_maxtime = -1; assert(glw_settings.gs_settings != NULL); if(prop_set_parent(gr->gr_prop_ui, prop_get_global())) abort(); if(prop_set_parent(gr->gr_prop_nav, prop_get_global())) abort(); if(skin == NULL) { snprintf(skinbuf, sizeof(skinbuf), "%s/glwskins/"SHOWTIME_GLW_DEFAULT_SKIN, showtime_dataroot()); skin = skinbuf; } hts_mutex_init(&gr->gr_mutex); gr->gr_courier = prop_courier_create_passive(); gr->gr_token_pool = pool_create("glwtokens", sizeof(token_t), POOL_ZERO_MEM); gr->gr_clone_pool = pool_create("glwclone", sizeof(glw_clone_t), POOL_ZERO_MEM); gr->gr_skin = strdup(skin); gr->gr_vpaths[0] = "skin"; gr->gr_vpaths[1] = gr->gr_skin; gr->gr_vpaths[2] = NULL; gr->gr_font_domain = freetype_get_context(); glw_text_bitmap_init(gr); prop_setv(gr->gr_prop_ui, "skin", "path", NULL, PROP_SET_STRING, gr->gr_skin); gr->gr_pointer_visible = prop_create(gr->gr_prop_ui, "pointerVisible"); gr->gr_is_fullscreen = prop_create(gr->gr_prop_ui, "fullscreen"); gr->gr_screensaver_active = prop_create(gr->gr_prop_ui, "screensaverActive"); gr->gr_prop_width = prop_create(gr->gr_prop_ui, "width"); gr->gr_prop_height = prop_create(gr->gr_prop_ui, "height"); prop_set_int(gr->gr_screensaver_active, 0); gr->gr_evsub = prop_subscribe(0, PROP_TAG_CALLBACK, glw_eventsink, gr, PROP_TAG_NAME("ui", "eventSink"), PROP_TAG_ROOT, gr->gr_prop_ui, PROP_TAG_COURIER, gr->gr_courier, NULL); TAILQ_INIT(&gr->gr_destroyer_queue); glw_tex_init(gr); gr->gr_framerate = 60; gr->gr_frameduration = 1000000 / gr->gr_framerate; gr->gr_ui_start = showtime_get_ts(); gr->gr_open_osk = glw_osk_open; return 0; }