summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorcg <cg@FreeBSD.org>2001-05-27 14:49:14 +0000
committercg <cg@FreeBSD.org>2001-05-27 14:49:14 +0000
commit55c514ea72a954dc5e54d7a3215822b7f1394dd7 (patch)
treeb7a8469fd3ba1c15282063da54a044a2a665f3d3 /sys
parentebee48177eba658fc1e6a0c8c80a5eb647eb6e81 (diff)
downloadFreeBSD-src-55c514ea72a954dc5e54d7a3215822b7f1394dd7.zip
FreeBSD-src-55c514ea72a954dc5e54d7a3215822b7f1394dd7.tar.gz
add a new method for retrieving feeder parameters
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/sound/pcm/feeder.h7
-rw-r--r--sys/dev/sound/pcm/feeder_if.m19
-rw-r--r--sys/dev/sound/pcm/feeder_rate.c17
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 }
};
OpenPOWER on IntegriCloud