static int top_event_handler(glw_t *w, void *opaque, glw_signal_t sig, void *extra) { event_t *e = extra; glw_root_t *gr = opaque; if(sig != GLW_SIGNAL_EVENT_BUBBLE) return 0; if(e->e_type_x == EVENT_KEYDESC) return 0; if(event_is_action(e, ACTION_ENABLE_SCREENSAVER)) { gr->gr_screensaver_force_enable = 1; } else if(event_is_action(e, ACTION_NAV_BACK) || event_is_action(e, ACTION_NAV_FWD) || event_is_action(e, ACTION_HOME) || event_is_action(e, ACTION_PLAYQUEUE) || event_is_action(e, ACTION_RELOAD_DATA) || event_is_type(e, EVENT_OPENURL)) { prop_t *p = prop_get_by_name(PNVEC("nav", "eventsink"), 0, PROP_TAG_ROOT, gr->gr_prop_nav, NULL); prop_send_ext_event(p, e); prop_ref_dec(p); } else { event_addref(e); event_dispatch(e); } return 1; }
static int hc_prop(http_connection_t *hc, const char *remain, void *opaque, http_cmd_t method) { htsbuf_queue_t out; rstr_t *r; int rval, i; prop_t *p; const char *action = http_arg_get_req(hc, "action"); if(remain == NULL) return 404; p = prop_from_path(remain); if(p == NULL) return 404; htsbuf_queue_init(&out, 0); switch(method) { case HTTP_CMD_GET: if(action != NULL) { event_t *e = event_create_action_str(action); prop_send_ext_event(p, e); event_release(e); rval = HTTP_STATUS_OK; break; } r = prop_get_string(p, NULL); if(r == NULL) { char **childs = prop_get_name_of_childs(p); if(childs == NULL) { rval = HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE; break; } for(i = 0; childs[i] != NULL; i++) { htsbuf_qprintf(&out, "\t%s\n", childs[i]); } } else { htsbuf_append(&out, rstr_get(r), strlen(rstr_get(r))); htsbuf_append(&out, "\n", 1); rstr_release(r); } rval = http_send_reply(hc, 0, "text/ascii", NULL, NULL, 0, &out); break; default: rval = HTTP_STATUS_METHOD_NOT_ALLOWED; break; } prop_ref_dec(p); return rval; }
static void gu_playqueue_send_event(gu_tab_t *gt, struct event *e) { prop_t *p = prop_get_by_name(PNVEC("global", "playqueue", "eventsink"), 1, NULL); prop_send_ext_event(p, e); prop_ref_dec(p); event_release(e); }
void gu_tab_send_event(gu_tab_t *gt, event_t *e) { prop_t *p = prop_get_by_name(PNVEC("nav", "eventsink"), 1, PROP_TAG_NAMED_ROOT, gt->gt_nav, "nav", NULL); prop_send_ext_event(p, e); prop_ref_dec(p); event_release(e); }
static void popup_send_result(popup_t *pop, action_type_t res) { prop_t *p; p = prop_get_by_name(PNVEC("self", "eventSink"), 1, PROP_TAG_NAMED_ROOT, pop->p, "self", NULL); if(p != NULL) { event_t *e = event_create_action(res); prop_send_ext_event(p, e); event_release(e); prop_ref_dec(p); } }
static void event_to_prop(prop_t *p, event_t *e) { prop_send_ext_event(p, e); prop_ref_dec(p); }