Revert "fix build breakage"
Revert submission 1483902-sync tinyalsa
Reason for revert: b/174994516, b/175089243
Reverted Changes:
Id3370e3c7:fix build breakage
I296a47fcb:Sync from GitHub
I6b86da455:reorg file structure to match it on GitHub
I5155d7856:add const qualifier to the pcm_mask variables and ...
Change-Id: I04f86c8e46944884be8946b9584c1c1d4e0d8ef8
diff --git a/src/mixer.c b/src/mixer.c
index a45502e..fe590e8 100644
--- a/src/mixer.c
+++ b/src/mixer.c
@@ -553,61 +553,39 @@
* further events can be alerted.
*
* @param mixer A mixer handle.
- * @returns 1 on success. 0, if no pending event. -errno on failure.
+ * @returns 0 on success. -errno on failure.
* @ingroup libtinyalsa-mixer
*/
int mixer_consume_event(struct mixer *mixer)
{
- struct mixer_ctl_event ev;
+ struct snd_ctl_event ev;
return mixer_read_event(mixer, &ev);
}
-/** Read a mixer control event.
- * Try to read an control event from mixer.
- *
- * @param mixer A mixer handle.
- * @param event Output parameter. If there is an event read form the mixer, this function will fill
- * the event data into it.
- * @returns 1 on success. 0, if no pending event. -errno on failure.
- * @ingroup libtinyalsa-mixer
- */
-int mixer_read_event(struct mixer *mixer, struct mixer_ctl_event *event)
+int mixer_read_event(struct mixer *mixer, struct snd_ctl_event *ev)
{
- struct mixer_ctl_group *grp = NULL;
- struct snd_ctl_event ev;
- ssize_t bytes = 0;
-
- if (!mixer || !event) {
- return -EINVAL;
- }
+ struct mixer_ctl_group *grp;
+ ssize_t count = 0;
if (mixer->h_grp) {
- if (mixer->h_grp->event_cnt > 0) {
- grp = mixer->h_grp;
+ grp = mixer->h_grp;
+ if (grp->event_cnt) {
+ grp->event_cnt--;
+ count = grp->ops->read_event(grp->data, ev, sizeof(*ev));
+ return (count >= 0) ? 0 : -errno;
}
}
#ifdef TINYALSA_USES_PLUGINS
if (mixer->v_grp) {
- if (mixer->v_grp->event_cnt > 0) {
- grp = mixer->v_grp;
+ grp = mixer->v_grp;
+ if (grp->event_cnt) {
+ grp->event_cnt--;
+ count = grp->ops->read_event(grp->data, ev, sizeof(*ev));
+ return (count >= 0) ? 0 : -errno;
}
}
#endif
- if (grp) {
- grp->event_cnt--;
- bytes = grp->ops->read_event(grp->data, &ev, sizeof(ev));
-
- if (bytes < 0) {
- return -errno;
- }
-
- if (bytes == sizeof(*event)) {
- memcpy(event, &ev, sizeof(*event));
- return 1;
- }
- }
-
return 0;
}