summaryrefslogtreecommitdiffstats
path: root/sys/dev/sound/isa
diff options
context:
space:
mode:
authorcg <cg@FreeBSD.org>2000-08-20 22:18:56 +0000
committercg <cg@FreeBSD.org>2000-08-20 22:18:56 +0000
commitcc65486f22393469327f3952efc2526af719e4a2 (patch)
treef4dad15d15847c43242bb2f8e08bd8143dae99e5 /sys/dev/sound/isa
parentb648921accec69a7e5c83e915ded3037cbca7f3d (diff)
downloadFreeBSD-src-cc65486f22393469327f3952efc2526af719e4a2.zip
FreeBSD-src-cc65486f22393469327f3952efc2526af719e4a2.tar.gz
rework feeder sytem to allow feeders in klds
modify driver capability reporting format to list every audio format seperately- required for above and because we could not previously indicate that mono was unsupported. there should be no functional impact.
Diffstat (limited to 'sys/dev/sound/isa')
-rw-r--r--sys/dev/sound/isa/ad1816.c16
-rw-r--r--sys/dev/sound/isa/ess.c32
-rw-r--r--sys/dev/sound/isa/mss.c43
-rw-r--r--sys/dev/sound/isa/sb.c51
-rw-r--r--sys/dev/sound/isa/sb16.c51
-rw-r--r--sys/dev/sound/isa/sb8.c51
6 files changed, 152 insertions, 92 deletions
diff --git a/sys/dev/sound/isa/ad1816.c b/sys/dev/sound/isa/ad1816.c
index a041ba9..ec7a61e 100644
--- a/sys/dev/sound/isa/ad1816.c
+++ b/sys/dev/sound/isa/ad1816.c
@@ -85,12 +85,20 @@ static int ad1816chan_trigger(void *data, int go);
static int ad1816chan_getptr(void *data);
static pcmchan_caps *ad1816chan_getcaps(void *data);
-static pcmchan_caps ad1816_caps = {
- 4000, 55200,
- AFMT_STEREO | AFMT_U8 | AFMT_S16_LE | AFMT_MU_LAW | AFMT_A_LAW,
- AFMT_STEREO | AFMT_S16_LE
+static u_int32_t ad1816_fmt[] = {
+ AFMT_U8,
+ AFMT_STEREO | AFMT_U8,
+ AFMT_S16_LE,
+ AFMT_STEREO | AFMT_S16_LE,
+ AFMT_MU_LAW,
+ AFMT_STEREO | AFMT_MU_LAW,
+ AFMT_A_LAW,
+ AFMT_STEREO | AFMT_A_LAW,
+ 0
};
+static pcmchan_caps ad1816_caps = {4000, 55200, ad1816_fmt, 0};
+
static pcm_channel ad1816_chantemplate = {
ad1816chan_init,
ad1816chan_setdir,
diff --git a/sys/dev/sound/isa/ess.c b/sys/dev/sound/isa/ess.c
index 709549b..2252cd9 100644
--- a/sys/dev/sound/isa/ess.c
+++ b/sys/dev/sound/isa/ess.c
@@ -55,18 +55,34 @@ static int esschan_trigger(void *data, int go);
static int esschan_getptr(void *data);
static pcmchan_caps *esschan_getcaps(void *data);
-static pcmchan_caps ess_playcaps = {
- 5000, 49000,
- AFMT_STEREO | AFMT_U8 | AFMT_S8 | AFMT_U16_LE | AFMT_S16_LE,
- AFMT_STEREO | AFMT_S16_LE
+static u_int32_t ess_pfmt[] = {
+ AFMT_U8,
+ AFMT_STEREO | AFMT_U8,
+ AFMT_S8,
+ AFMT_STEREO | AFMT_S8,
+ AFMT_S16_LE,
+ AFMT_STEREO | AFMT_S16_LE,
+ AFMT_U16_LE,
+ AFMT_STEREO | AFMT_U16_LE,
+ 0
};
-static pcmchan_caps ess_reccaps = {
- 5000, 49000,
- AFMT_STEREO | AFMT_U8 | AFMT_S8 | AFMT_U16_LE | AFMT_S16_LE,
- AFMT_STEREO | AFMT_S16_LE
+static pcmchan_caps ess_playcaps = {5000, 49000, ess_pfmt, 0};
+
+static u_int32_t ess_rfmt[] = {
+ AFMT_U8,
+ AFMT_STEREO | AFMT_U8,
+ AFMT_S8,
+ AFMT_STEREO | AFMT_S8,
+ AFMT_S16_LE,
+ AFMT_STEREO | AFMT_S16_LE,
+ AFMT_U16_LE,
+ AFMT_STEREO | AFMT_U16_LE,
+ 0
};
+static pcmchan_caps ess_reccaps = {5000, 49000, ess_rfmt, 0};
+
static pcm_channel ess_chantemplate = {
esschan_init,
esschan_setdir,
diff --git a/sys/dev/sound/isa/mss.c b/sys/dev/sound/isa/mss.c
index 5240938..71f9dd5 100644
--- a/sys/dev/sound/isa/mss.c
+++ b/sys/dev/sound/isa/mss.c
@@ -136,23 +136,38 @@ static int msschan_trigger(void *data, int go);
static int msschan_getptr(void *data);
static pcmchan_caps *msschan_getcaps(void *data);
-static pcmchan_caps mss_caps = {
- 4000, 48000,
- AFMT_STEREO | AFMT_U8 | AFMT_S16_LE | AFMT_MU_LAW | AFMT_A_LAW,
- AFMT_STEREO | AFMT_S16_LE
+static u_int32_t mss_fmt[] = {
+ AFMT_U8,
+ AFMT_STEREO | AFMT_U8,
+ AFMT_S16_LE,
+ AFMT_STEREO | AFMT_S16_LE,
+ AFMT_MU_LAW,
+ AFMT_STEREO | AFMT_MU_LAW,
+ AFMT_A_LAW,
+ AFMT_STEREO | AFMT_A_LAW,
+ 0
};
-
-static pcmchan_caps guspnp_caps = {
- 4000, 48000,
- AFMT_STEREO | AFMT_U8 | AFMT_S16_LE | AFMT_A_LAW,
- AFMT_STEREO | AFMT_S16_LE
+static pcmchan_caps mss_caps = {4000, 48000, mss_fmt, 0};
+
+static u_int32_t guspnp_fmt[] = {
+ AFMT_U8,
+ AFMT_STEREO | AFMT_U8,
+ AFMT_S16_LE,
+ AFMT_STEREO | AFMT_S16_LE,
+ AFMT_A_LAW,
+ AFMT_STEREO | AFMT_A_LAW,
+ 0
};
-
-static pcmchan_caps opti931_caps = {
- 4000, 48000,
- AFMT_STEREO | AFMT_U8 | AFMT_S16_LE,
- AFMT_STEREO | AFMT_S16_LE
+static pcmchan_caps guspnp_caps = {4000, 48000, guspnp_fmt, 0};
+
+static u_int32_t opti931_fmt[] = {
+ AFMT_U8,
+ AFMT_STEREO | AFMT_U8,
+ AFMT_S16_LE,
+ AFMT_STEREO | AFMT_S16_LE,
+ 0
};
+static pcmchan_caps opti931_caps = {4000, 48000, opti931_fmt, 0};
static pcm_channel mss_chantemplate = {
msschan_init,
diff --git a/sys/dev/sound/isa/sb.c b/sys/dev/sound/isa/sb.c
index f984d5c..d975311 100644
--- a/sys/dev/sound/isa/sb.c
+++ b/sys/dev/sound/isa/sb.c
@@ -49,47 +49,54 @@ static int sbchan_trigger(void *data, int go);
static int sbchan_getptr(void *data);
static pcmchan_caps *sbchan_getcaps(void *data);
-static pcmchan_caps sb_playcaps = {
- 4000, 22050,
+static u_int32_t sb_playfmt[] = {
AFMT_U8,
- AFMT_U8
+ 0
};
+static pcmchan_caps sb_playcaps = {4000, 22050, sb_playfmt, 0};
-static pcmchan_caps sb_reccaps = {
- 4000, 13000,
+static u_int32_t sb_recfmt[] = {
AFMT_U8,
- AFMT_U8
+ 0
};
+static pcmchan_caps sb_reccaps = {4000, 13000, sb_recfmt, 0};
-static pcmchan_caps sbpro_playcaps = {
- 4000, 45000,
+static u_int32_t sbpro_playfmt[] = {
+ AFMT_U8,
AFMT_STEREO | AFMT_U8,
- AFMT_STEREO | AFMT_U8
+ 0
};
+static pcmchan_caps sbpro_playcaps = {4000, 45000, sbpro_playfmt, 0};
-static pcmchan_caps sbpro_reccaps = {
- 4000, 15000,
+static u_int32_t sbpro_recfmt[] = {
+ AFMT_U8,
AFMT_STEREO | AFMT_U8,
- AFMT_STEREO | AFMT_U8
+ 0
};
+static pcmchan_caps sbpro_reccaps = {4000, 15000, sbpro_recfmt, 0};
-static pcmchan_caps sb16_hcaps = {
- 5000, 45000,
+static u_int32_t sb16_hfmt[] = {
+ AFMT_S16_LE,
AFMT_STEREO | AFMT_S16_LE,
- AFMT_STEREO | AFMT_S16_LE
+ 0
};
+static pcmchan_caps sb16_hcaps = {5000, 45000, sb16_hfmt, 0};
-static pcmchan_caps sb16_lcaps = {
- 5000, 45000,
+static u_int32_t sb16_lfmt[] = {
+ AFMT_U8,
AFMT_STEREO | AFMT_U8,
- AFMT_STEREO | AFMT_U8
+ 0
};
+static pcmchan_caps sb16_lcaps = {5000, 45000, sb16_lfmt, 0};
-static pcmchan_caps sb16x_caps = {
- 5000, 49000,
- AFMT_STEREO | AFMT_U8 | AFMT_S16_LE,
- AFMT_STEREO | AFMT_S16_LE
+static u_int32_t sb16x_fmt[] = {
+ AFMT_U8,
+ AFMT_STEREO | AFMT_U8,
+ AFMT_S16_LE,
+ AFMT_STEREO | AFMT_S16_LE,
+ 0
};
+static pcmchan_caps sb16x_caps = {5000, 49000, sb16x_fmt, 0};
static pcm_channel sb_chantemplate = {
sbchan_init,
diff --git a/sys/dev/sound/isa/sb16.c b/sys/dev/sound/isa/sb16.c
index f984d5c..d975311 100644
--- a/sys/dev/sound/isa/sb16.c
+++ b/sys/dev/sound/isa/sb16.c
@@ -49,47 +49,54 @@ static int sbchan_trigger(void *data, int go);
static int sbchan_getptr(void *data);
static pcmchan_caps *sbchan_getcaps(void *data);
-static pcmchan_caps sb_playcaps = {
- 4000, 22050,
+static u_int32_t sb_playfmt[] = {
AFMT_U8,
- AFMT_U8
+ 0
};
+static pcmchan_caps sb_playcaps = {4000, 22050, sb_playfmt, 0};
-static pcmchan_caps sb_reccaps = {
- 4000, 13000,
+static u_int32_t sb_recfmt[] = {
AFMT_U8,
- AFMT_U8
+ 0
};
+static pcmchan_caps sb_reccaps = {4000, 13000, sb_recfmt, 0};
-static pcmchan_caps sbpro_playcaps = {
- 4000, 45000,
+static u_int32_t sbpro_playfmt[] = {
+ AFMT_U8,
AFMT_STEREO | AFMT_U8,
- AFMT_STEREO | AFMT_U8
+ 0
};
+static pcmchan_caps sbpro_playcaps = {4000, 45000, sbpro_playfmt, 0};
-static pcmchan_caps sbpro_reccaps = {
- 4000, 15000,
+static u_int32_t sbpro_recfmt[] = {
+ AFMT_U8,
AFMT_STEREO | AFMT_U8,
- AFMT_STEREO | AFMT_U8
+ 0
};
+static pcmchan_caps sbpro_reccaps = {4000, 15000, sbpro_recfmt, 0};
-static pcmchan_caps sb16_hcaps = {
- 5000, 45000,
+static u_int32_t sb16_hfmt[] = {
+ AFMT_S16_LE,
AFMT_STEREO | AFMT_S16_LE,
- AFMT_STEREO | AFMT_S16_LE
+ 0
};
+static pcmchan_caps sb16_hcaps = {5000, 45000, sb16_hfmt, 0};
-static pcmchan_caps sb16_lcaps = {
- 5000, 45000,
+static u_int32_t sb16_lfmt[] = {
+ AFMT_U8,
AFMT_STEREO | AFMT_U8,
- AFMT_STEREO | AFMT_U8
+ 0
};
+static pcmchan_caps sb16_lcaps = {5000, 45000, sb16_lfmt, 0};
-static pcmchan_caps sb16x_caps = {
- 5000, 49000,
- AFMT_STEREO | AFMT_U8 | AFMT_S16_LE,
- AFMT_STEREO | AFMT_S16_LE
+static u_int32_t sb16x_fmt[] = {
+ AFMT_U8,
+ AFMT_STEREO | AFMT_U8,
+ AFMT_S16_LE,
+ AFMT_STEREO | AFMT_S16_LE,
+ 0
};
+static pcmchan_caps sb16x_caps = {5000, 49000, sb16x_fmt, 0};
static pcm_channel sb_chantemplate = {
sbchan_init,
diff --git a/sys/dev/sound/isa/sb8.c b/sys/dev/sound/isa/sb8.c
index f984d5c..d975311 100644
--- a/sys/dev/sound/isa/sb8.c
+++ b/sys/dev/sound/isa/sb8.c
@@ -49,47 +49,54 @@ static int sbchan_trigger(void *data, int go);
static int sbchan_getptr(void *data);
static pcmchan_caps *sbchan_getcaps(void *data);
-static pcmchan_caps sb_playcaps = {
- 4000, 22050,
+static u_int32_t sb_playfmt[] = {
AFMT_U8,
- AFMT_U8
+ 0
};
+static pcmchan_caps sb_playcaps = {4000, 22050, sb_playfmt, 0};
-static pcmchan_caps sb_reccaps = {
- 4000, 13000,
+static u_int32_t sb_recfmt[] = {
AFMT_U8,
- AFMT_U8
+ 0
};
+static pcmchan_caps sb_reccaps = {4000, 13000, sb_recfmt, 0};
-static pcmchan_caps sbpro_playcaps = {
- 4000, 45000,
+static u_int32_t sbpro_playfmt[] = {
+ AFMT_U8,
AFMT_STEREO | AFMT_U8,
- AFMT_STEREO | AFMT_U8
+ 0
};
+static pcmchan_caps sbpro_playcaps = {4000, 45000, sbpro_playfmt, 0};
-static pcmchan_caps sbpro_reccaps = {
- 4000, 15000,
+static u_int32_t sbpro_recfmt[] = {
+ AFMT_U8,
AFMT_STEREO | AFMT_U8,
- AFMT_STEREO | AFMT_U8
+ 0
};
+static pcmchan_caps sbpro_reccaps = {4000, 15000, sbpro_recfmt, 0};
-static pcmchan_caps sb16_hcaps = {
- 5000, 45000,
+static u_int32_t sb16_hfmt[] = {
+ AFMT_S16_LE,
AFMT_STEREO | AFMT_S16_LE,
- AFMT_STEREO | AFMT_S16_LE
+ 0
};
+static pcmchan_caps sb16_hcaps = {5000, 45000, sb16_hfmt, 0};
-static pcmchan_caps sb16_lcaps = {
- 5000, 45000,
+static u_int32_t sb16_lfmt[] = {
+ AFMT_U8,
AFMT_STEREO | AFMT_U8,
- AFMT_STEREO | AFMT_U8
+ 0
};
+static pcmchan_caps sb16_lcaps = {5000, 45000, sb16_lfmt, 0};
-static pcmchan_caps sb16x_caps = {
- 5000, 49000,
- AFMT_STEREO | AFMT_U8 | AFMT_S16_LE,
- AFMT_STEREO | AFMT_S16_LE
+static u_int32_t sb16x_fmt[] = {
+ AFMT_U8,
+ AFMT_STEREO | AFMT_U8,
+ AFMT_S16_LE,
+ AFMT_STEREO | AFMT_S16_LE,
+ 0
};
+static pcmchan_caps sb16x_caps = {5000, 49000, sb16x_fmt, 0};
static pcm_channel sb_chantemplate = {
sbchan_init,
OpenPOWER on IntegriCloud