Lines Matching full:plugin
59 struct mixer_plugin *plugin; member
67 struct mixer_plugin *plugin = plug_data->plugin; in mixer_plug_get_elem_id() local
70 if (offset >= plugin->num_controls) { in mixer_plug_get_elem_id()
75 ctl = plugin->controls + offset; in mixer_plug_get_elem_id()
133 void mixer_plug_notifier_cb(struct mixer_plugin *plugin) in mixer_plug_notifier_cb() argument
135 pthread_mutex_lock(&plugin->mutex); in mixer_plug_notifier_cb()
136 plugin->event_cnt++; in mixer_plug_notifier_cb()
137 pthread_mutex_unlock(&plugin->mutex); in mixer_plug_notifier_cb()
138 eventfd_write(plugin->eventfd, 1); in mixer_plug_notifier_cb()
146 struct mixer_plugin *plugin = plug_data->plugin; in mixer_plug_read_event() local
151 result = plugin->ops->read_event(plugin, (struct ctl_event *)ev, size); in mixer_plug_read_event()
155 pthread_mutex_lock(&plugin->mutex); in mixer_plug_read_event()
156 plugin->event_cnt -= read_cnt; in mixer_plug_read_event()
157 if (plugin->event_cnt < 0) { in mixer_plug_read_event()
158 plugin->event_cnt = 0; in mixer_plug_read_event()
160 pthread_mutex_unlock(&plugin->mutex); in mixer_plug_read_event()
163 eventfd_read(plugin->eventfd, &evfd); in mixer_plug_read_event()
173 struct mixer_plugin *plugin = plug_data->plugin; in mixer_plug_subscribe_events() local
178 *subscribe = plugin->subscribed; in mixer_plug_subscribe_events()
182 if (*subscribe && !plugin->subscribed) { in mixer_plug_subscribe_events()
183 plugin->ops->subscribe_events(plugin, &mixer_plug_notifier_cb); in mixer_plug_subscribe_events()
184 } else if (plugin->subscribed && !*subscribe) { in mixer_plug_subscribe_events()
185 plugin->ops->subscribe_events(plugin, NULL); in mixer_plug_subscribe_events()
187 pthread_mutex_lock(&plugin->mutex); in mixer_plug_subscribe_events()
188 count = plugin->event_cnt; in mixer_plug_subscribe_events()
189 plugin->event_cnt = 0; in mixer_plug_subscribe_events()
190 pthread_mutex_unlock(&plugin->mutex); in mixer_plug_subscribe_events()
192 eventfd_read(plugin->eventfd, &evfd); in mixer_plug_subscribe_events()
196 plugin->subscribed = *subscribe; in mixer_plug_subscribe_events()
203 struct mixer_plugin *plugin = plug_data->plugin; in mixer_plug_get_poll_fd() local
205 if (plugin->eventfd != -1) { in mixer_plug_get_poll_fd()
206 pfd[count].fd = plugin->eventfd; in mixer_plug_get_poll_fd()
215 struct mixer_plugin *plugin = plug_data->plugin; in mixer_plug_tlv_write() local
219 ctl = plugin->controls + tlv->numid; in mixer_plug_tlv_write()
222 return val_tlv->put(plugin, ctl, tlv); in mixer_plug_tlv_write()
228 struct mixer_plugin *plugin = plug_data->plugin; in mixer_plug_tlv_read() local
232 ctl = plugin->controls + tlv->numid; in mixer_plug_tlv_read()
235 return val_tlv->get(plugin, ctl, tlv); in mixer_plug_tlv_read()
241 struct mixer_plugin *plugin = plug_data->plugin; in mixer_plug_elem_write() local
249 ctl = plugin->controls + ev->id.numid; in mixer_plug_elem_write()
251 return ctl->put(plugin, ctl, ev); in mixer_plug_elem_write()
257 struct mixer_plugin *plugin = plug_data->plugin; in mixer_plug_elem_read() local
265 ctl = plugin->controls + ev->id.numid; in mixer_plug_elem_read()
267 return ctl->get(plugin, ctl, ev); in mixer_plug_elem_read()
274 struct mixer_plugin *plugin = plug_data->plugin; in mixer_plug_get_elem_info() local
283 ctl = plugin->controls + einfo->id.numid; in mixer_plug_get_elem_info()
314 struct mixer_plugin *plugin = plug_data->plugin; in mixer_plug_get_elem_list() local
319 elist->count = plugin->num_controls; in mixer_plug_get_elem_list()
356 struct mixer_plugin *plugin = plug_data->plugin; in mixer_plug_close() local
360 pthread_mutex_lock(&plugin->mutex); in mixer_plug_close()
361 count = plugin->event_cnt; in mixer_plug_close()
362 pthread_mutex_unlock(&plugin->mutex); in mixer_plug_close()
363 pthread_mutex_destroy(&plugin->mutex); in mixer_plug_close()
366 eventfd_read(plugin->eventfd, &evfd); in mixer_plug_close()
369 plugin->ops->close(&plugin); in mixer_plug_close()
413 /* TODO: plugin should support ioctl */ in mixer_plug_ioctl()
432 struct mixer_plugin *plugin = NULL; in mixer_plugin_open() local
492 ret = plug_data->mixer_plugin_open_fn(&plugin, card); in mixer_plugin_open()
494 fprintf(stderr, "%s: failed to open plugin, err: %d\n", in mixer_plugin_open()
499 plug_data->plugin = plugin; in mixer_plugin_open()
502 plugin->eventfd = eventfd(0, EFD_SEMAPHORE); in mixer_plugin_open()
503 pthread_mutex_init(&plugin->mutex, NULL); in mixer_plugin_open()