diff options
author | cg <cg@FreeBSD.org> | 2001-05-27 14:49:14 +0000 |
---|---|---|
committer | cg <cg@FreeBSD.org> | 2001-05-27 14:49:14 +0000 |
commit | 55c514ea72a954dc5e54d7a3215822b7f1394dd7 (patch) | |
tree | b7a8469fd3ba1c15282063da54a044a2a665f3d3 /sys/dev/sound/pcm | |
parent | ebee48177eba658fc1e6a0c8c80a5eb647eb6e81 (diff) | |
download | FreeBSD-src-55c514ea72a954dc5e54d7a3215822b7f1394dd7.zip FreeBSD-src-55c514ea72a954dc5e54d7a3215822b7f1394dd7.tar.gz |
add a new method for retrieving feeder parameters
Diffstat (limited to 'sys/dev/sound/pcm')
-rw-r--r-- | sys/dev/sound/pcm/feeder.h | 7 | ||||
-rw-r--r-- | sys/dev/sound/pcm/feeder_if.m | 19 | ||||
-rw-r--r-- | sys/dev/sound/pcm/feeder_rate.c | 17 |
3 files changed, 39 insertions, 4 deletions
diff --git a/sys/dev/sound/pcm/feeder.h b/sys/dev/sound/pcm/feeder.h index 2866813..7ee6a63 100644 --- a/sys/dev/sound/pcm/feeder.h +++ b/sys/dev/sound/pcm/feeder.h @@ -70,9 +70,10 @@ SYSINIT(feeder, SI_SUB_DRIVERS, SI_ORDER_MIDDLE, feeder_register, &feeder ## _cl #define FEEDER_ROOT 1 #define FEEDER_FMT 2 -#define FEEDER_RATE 3 -#define FEEDER_FILTER 4 -#define FEEDER_VOLUME 5 +#define FEEDER_MIXER 3 +#define FEEDER_RATE 4 +#define FEEDER_FILTER 5 +#define FEEDER_VOLUME 6 #define FEEDER_LAST FEEDER_VOLUME #define FEEDRATE_SRC 1 diff --git a/sys/dev/sound/pcm/feeder_if.m b/sys/dev/sound/pcm/feeder_if.m index 3205b09..3efe345 100644 --- a/sys/dev/sound/pcm/feeder_if.m +++ b/sys/dev/sound/pcm/feeder_if.m @@ -45,6 +45,18 @@ CODE { return 0;
}
+ static int
+ feeder_noset(struct pcm_feeder* feeder, int what, int value)
+ {
+ return -1;
+ }
+
+ static int
+ feeder_noget(struct pcm_feeder* feeder, int what)
+ {
+ return -1;
+ }
+
};
METHOD int init {
@@ -59,7 +71,12 @@ METHOD int set { struct pcm_feeder* feeder;
int what;
int value;
-};
+} DEFAULT feeder_noset;
+
+METHOD int get {
+ struct pcm_feeder* feeder;
+ int what;
+} DEFAULT feeder_noget;
METHOD int feed {
struct pcm_feeder* feeder;
diff --git a/sys/dev/sound/pcm/feeder_rate.c b/sys/dev/sound/pcm/feeder_rate.c index 936e85f..264f643 100644 --- a/sys/dev/sound/pcm/feeder_rate.c +++ b/sys/dev/sound/pcm/feeder_rate.c @@ -72,6 +72,22 @@ feed_rate_set(struct pcm_feeder *f, int what, int value) } static int +feed_rate_get(struct pcm_feeder *f, int what) +{ + struct feed_rate_info *info = f->data; + + switch(what) { + case FEEDRATE_SRC: + return info->src; + case FEEDRATE_DST: + return info->dst; + default: + return -1; + } + return -1; +} + +static int feed_rate_init(struct pcm_feeder *f) { struct feed_rate_info *info; @@ -167,6 +183,7 @@ static kobj_method_t feeder_rate_methods[] = { KOBJMETHOD(feeder_init, feed_rate_init), KOBJMETHOD(feeder_free, feed_rate_free), KOBJMETHOD(feeder_set, feed_rate_set), + KOBJMETHOD(feeder_get, feed_rate_get), KOBJMETHOD(feeder_feed, feed_rate), { 0, 0 } }; |