Lines Matching full:plugin

30 #include <tinyalsa/plugin.h>
54 /** Encapulates the mixer plugin specific data */
56 /** Card number associated with the plugin */
60 /** Pointer to the plugin's ops */
62 /** Pointer to plugin responsible to service the controls */
63 struct mixer_plugin *plugin; member
64 /** Handle to the plugin library */
71 struct mixer_plugin *plugin = plug_data->plugin; in mixer_plug_get_elem_id() local
74 if (offset >= plugin->num_controls) { in mixer_plug_get_elem_id()
80 ctl = plugin->controls + offset; in mixer_plug_get_elem_id()
140 void mixer_plug_notifier_cb(struct mixer_plugin *plugin) in mixer_plug_notifier_cb() argument
142 plugin->event_cnt++; in mixer_plug_notifier_cb()
143 eventfd_write(plugin->eventfd, 1); in mixer_plug_notifier_cb()
151 struct mixer_plugin *plugin = plug_data->plugin; in mixer_plug_read_event() local
155 result = plug_data->ops->read_event(plugin, ev, size); in mixer_plug_read_event()
158 plugin->event_cnt -= result / sizeof(struct snd_ctl_event); in mixer_plug_read_event()
159 if (plugin->event_cnt == 0) in mixer_plug_read_event()
160 eventfd_read(plugin->eventfd, &evfd); in mixer_plug_read_event()
169 struct mixer_plugin *plugin = plug_data->plugin; in mixer_plug_subscribe_events() local
173 *subscribe = plugin->subscribed; in mixer_plug_subscribe_events()
177 if (*subscribe && !plugin->subscribed) { in mixer_plug_subscribe_events()
178 plug_data->ops->subscribe_events(plugin, &mixer_plug_notifier_cb); in mixer_plug_subscribe_events()
179 } else if (plugin->subscribed && !*subscribe) { in mixer_plug_subscribe_events()
180 plug_data->ops->subscribe_events(plugin, NULL); in mixer_plug_subscribe_events()
182 if (plugin->event_cnt) in mixer_plug_subscribe_events()
183 eventfd_read(plugin->eventfd, &evfd); in mixer_plug_subscribe_events()
185 plugin->event_cnt = 0; in mixer_plug_subscribe_events()
188 plugin->subscribed = *subscribe; in mixer_plug_subscribe_events()
195 struct mixer_plugin *plugin = plug_data->plugin; in mixer_plug_get_poll_fd() local
197 if (plugin->eventfd != -1) { in mixer_plug_get_poll_fd()
198 pfd[count].fd = plugin->eventfd; in mixer_plug_get_poll_fd()
207 struct mixer_plugin *plugin = plug_data->plugin; in mixer_plug_tlv_write() local
211 ctl = plugin->controls + tlv->numid; in mixer_plug_tlv_write()
214 return val_tlv->put(plugin, ctl, tlv); in mixer_plug_tlv_write()
220 struct mixer_plugin *plugin = plug_data->plugin; in mixer_plug_tlv_read() local
224 ctl = plugin->controls + tlv->numid; in mixer_plug_tlv_read()
227 return val_tlv->get(plugin, ctl, tlv); in mixer_plug_tlv_read()
233 struct mixer_plugin *plugin = plug_data->plugin; in mixer_plug_elem_write() local
241 ctl = plugin->controls + ev->id.numid; in mixer_plug_elem_write()
243 return ctl->put(plugin, ctl, ev); in mixer_plug_elem_write()
249 struct mixer_plugin *plugin = plug_data->plugin; in mixer_plug_elem_read() local
257 ctl = plugin->controls + ev->id.numid; in mixer_plug_elem_read()
259 return ctl->get(plugin, ctl, ev); in mixer_plug_elem_read()
266 struct mixer_plugin *plugin = plug_data->plugin; in mixer_plug_get_elem_info() local
275 ctl = plugin->controls + einfo->id.numid; in mixer_plug_get_elem_info()
307 struct mixer_plugin *plugin = plug_data->plugin; in mixer_plug_get_elem_list() local
312 elist->count = plugin->num_controls; in mixer_plug_get_elem_list()
342 struct mixer_plugin *plugin = plug_data->plugin; in mixer_plug_close() local
345 if (plugin->event_cnt) in mixer_plug_close()
346 eventfd_read(plugin->eventfd, &evfd); in mixer_plug_close()
348 plug_data->ops->close(&plugin); in mixer_plug_close()
392 /* TODO: plugin should support ioctl */ in mixer_plug_ioctl()
411 struct mixer_plugin *plugin = NULL; in mixer_plugin_open() local
452 ret = plug_data->ops->open(&plugin, card); in mixer_plugin_open()
454 fprintf(stderr, "%s: failed to open plugin, err: %d\n", in mixer_plugin_open()
459 plug_data->plugin = plugin; in mixer_plugin_open()
462 plugin->eventfd = eventfd(0, 0); in mixer_plugin_open()