diff --git a/sys/dev/sound/pcm/feeder.h b/sys/dev/sound/pcm/feeder.h --- a/sys/dev/sound/pcm/feeder.h +++ b/sys/dev/sound/pcm/feeder.h @@ -27,6 +27,17 @@ * SUCH DAMAGE. */ +enum feeder_type { + FEEDER_ROOT, + FEEDER_FORMAT, + FEEDER_MIXER, + FEEDER_RATE, + FEEDER_EQ, + FEEDER_VOLUME, + FEEDER_MATRIX, + FEEDER_LAST, +}; + struct pcm_feederdesc { u_int32_t type; u_int32_t in, out; @@ -34,7 +45,7 @@ struct feeder_class { KOBJ_CLASS_FIELDS; - struct pcm_feederdesc desc; + enum feeder_type type; SLIST_ENTRY(feeder_class) link; }; @@ -63,27 +74,16 @@ void feeder_printchain(struct pcm_feeder *head); int feeder_chain(struct pcm_channel *); -#define FEEDER_DECLARE(feeder, type) \ +#define FEEDER_DECLARE(feeder, ctype) \ static struct feeder_class feeder ## _class = { \ .name = #feeder, \ .methods = feeder ## _methods, \ .size = sizeof(struct pcm_feeder), \ - .desc = { type, 0, 0 }, \ + .type = ctype, \ }; \ SYSINIT(feeder, SI_SUB_DRIVERS, SI_ORDER_ANY, feeder_register, \ &feeder ## _class) -enum { - FEEDER_ROOT, - FEEDER_FORMAT, - FEEDER_MIXER, - FEEDER_RATE, - FEEDER_EQ, - FEEDER_VOLUME, - FEEDER_MATRIX, - FEEDER_LAST, -}; - /* feeder_format */ enum { FEEDFORMAT_CHANNELS diff --git a/sys/dev/sound/pcm/feeder.c b/sys/dev/sound/pcm/feeder.c --- a/sys/dev/sound/pcm/feeder.c +++ b/sys/dev/sound/pcm/feeder.c @@ -48,7 +48,7 @@ { struct feeder_class *fc = p; - KASSERT(fc->desc.type == FEEDER_ROOT, + KASSERT(fc->type == FEEDER_ROOT, ("first feeder not root: %s", fc->name)); SLIST_INIT(&feedertab); @@ -60,7 +60,7 @@ { struct feeder_class *fc = p; - KASSERT(fc->desc.type != 0, ("feeder '%s' has no descriptor", fc->name)); + KASSERT(fc->type != 0, ("feeder '%s' has no descriptor", fc->name)); SLIST_INSERT_HEAD(&feedertab, fc, link); } @@ -119,7 +119,7 @@ struct feeder_class *fc; SLIST_FOREACH(fc, &feedertab, link) { - if (fc->desc.type == type) + if (fc->type == type) return (fc); } return (NULL); @@ -400,7 +400,7 @@ .name = "feeder_root", .methods = feeder_root_methods, .size = sizeof(struct pcm_feeder), - .desc = { FEEDER_ROOT, 0, 0 }, + .type = FEEDER_ROOT, }; /* * Register the root feeder first so that pcm_addchan() and subsequent