void Window::install_wndproc() { assert(prev_wndproc == NULL); set_userdata(this); prev_wndproc = set_wndproc(WndProc); }
static int new_obj(lua_State *lstate) { dev_stop(); lua_newtable(lstate); set_value(lstate, "card"); set_userdata(lstate, "intern", (void *)&unit); add_method(lstate, "capture", capture); add_method(lstate, "stop", lua_stop); add_fader_methods(lstate); return 1; }
int flac_feed(lua_State *lstate) { lua_newtable(lstate); set_value(lstate, "mount"); set_value(lstate, "port"); set_value(lstate, "host"); set_userdata(lstate, "intern", alloc_flac_feed()); add_method(lstate, "play", play_flac); add_method(lstate, "stop", stop_feed); add_fader_methods(lstate); return 1; }
state& set_userdata(userdata<T>& user) { return set_userdata(user.name(), user); }
/** * Set extra userdata into the connection. * * @return previous userdata; * * @note * Extra userdata is for default protocol handler such as ad_http_handler to * provide higher abstraction. End users should always use only ad_conn_set_userdata() * to avoid any conflict with default handlers. */ void *ad_conn_set_extra(ad_conn_t *conn, const void *extra, ad_userdata_free_cb free_cb) { return set_userdata(conn, 1, extra, free_cb); }
/** * Attach userdata into the connection. * * @return previous userdata; */ void *ad_conn_set_userdata(ad_conn_t *conn, const void *userdata, ad_userdata_free_cb free_cb) { return set_userdata(conn, 0, userdata, free_cb); }