39 (*listener)->hpd = hpd;
92 (*data) = listener->
data;
122 ev_async_stop(loop, w);
131 LOG_ERROR(
"free function failed [code: %i].", rc);
135 LOG_ERROR(
"free function failed [code: %i].", rc);
147 ev_async_stop(loop, w);
157 LOG_ERROR(
"free function failed [code: %i].", rc);
169 ev_async_stop(loop, w);
178 LOG_ERROR(
"free function failed [code: %i].", rc);
189 hpd_t *
hpd =
id->device.adapter.hpd;
218 LOG_ERROR(
"event_inform_device_attached() [code: %i].", rc);
230 LOG_ERROR(
"event_inform_device_detached() [code: %i].", rc);
hpd_error_t event_set_device_callback(hpd_listener_t *listener, hpd_device_f on_attach, hpd_device_f on_detach)
void(* hpd_free_f)(void *data)
[hpd_action_f]
static void event_on_changed(hpd_ev_loop_t *loop, ev_async *w, int revents)
hpd_error_t discovery_copy_sid(hpd_service_id_t **dst, const hpd_service_id_t *src)
#define LOG_RETURN_E_ALLOC()
hpd_error_t event_inform_adapter_attached(hpd_adapter_t *adapter)
hpd_error_t discovery_free_did(hpd_device_id_t *id)
hpd_listeners_t listeners
#define HPD_CALLOC(PTR, NUM, CAST)
Allocates and zeros a structure.
hpd_error_t event_foreach_attached(const hpd_listener_t *listener)
hpd_error_t event_subscribe(hpd_listener_t *listener)
hpd_error_t event_inform_adapter_detached(hpd_adapter_t *adapter)
hpd_error_t event_free_listener(hpd_listener_t *listener)
hpd_error_t discovery_alloc_did(hpd_device_id_t **id, hpd_t *hpd, const char *aid, const char *did)
hpd_configuration_t * configuration
void(* hpd_device_f)(void *data, const hpd_device_id_t *device)
Device callback for listeners.
enum hpd_error hpd_error_t
hpd_error_t event_unsubscribe(hpd_listener_t *listener)
static struct ev_loop * loop
static void event_on_detached(hpd_ev_loop_t *loop, ev_async *w, int revents)
hpd_ev_asyncs_t changed_watchers
hpd_error_t value_free(hpd_value_t *value)
#define HPD_CPY_ALLOC(DST, SRC, CAST)
hpd_error_t event_inform_device_attached(hpd_device_t *device)
hpd_error_t event_get_listener_data(const hpd_listener_t *listener, void **data)
hpd_configuration_t * configuration
void(* hpd_value_f)(void *data, const hpd_service_id_t *service, const hpd_value_t *val)
Value callback for listeners.
hpd_error_t discovery_free_sid(hpd_service_id_t *id)
hpd_ev_asyncs_t detached_watchers
static void event_on_attached(hpd_ev_loop_t *loop, ev_async *w, int revents)
hpd_error_t event_inform_device_detached(hpd_device_t *device)
hpd_error_t event_set_listener_data(hpd_listener_t *listener, void *data, hpd_free_f on_free)
hpd_ev_asyncs_t attached_watchers
struct ev_loop hpd_ev_loop_t
#define LOG_ERROR(FMT,...)
hpd_error_t event_set_value_callback(hpd_listener_t *listener, hpd_value_f on_change)
hpd_error_t event_changed(const hpd_service_id_t *id, hpd_value_t *val)
hpd_error_t event_alloc_listener(hpd_listener_t **listener, hpd_t *hpd)