FreeBSD kernel sound device code
|
Go to the source code of this file.
Data Structures | |
struct | feeder_chain_state |
struct | feeder_chain_desc |
Macros | |
#define | FEEDER_CHAIN_LEAN 0 |
#define | FEEDER_CHAIN_16 1 |
#define | FEEDER_CHAIN_32 2 |
#define | FEEDER_CHAIN_MULTI 3 |
#define | FEEDER_CHAIN_FULLMULTI 4 |
#define | FEEDER_CHAIN_LAST 5 |
#define | FEEDER_CHAIN_DEFAULT FEEDER_CHAIN_LEAN |
#define | FEEDER_BW(c, t) ((c)->t.matrix->channels * (c)->t.rate) |
#define | FEEDRATE_UP(c) ((c)->target.rate > (c)->current.rate) |
#define | FEEDRATE_DOWN(c) ((c)->target.rate < (c)->current.rate) |
#define | FEEDRATE_REQUIRED(c) (FEEDRATE_UP(c) || FEEDRATE_DOWN(c)) |
#define | FEEDMATRIX_UP(c) |
#define | FEEDMATRIX_DOWN(c) |
#define | FEEDMATRIX_REQUIRED(c) |
#define | FEEDFORMAT_REQUIRED(c) |
#define | FEEDVOLUME_REQUIRED(c) ((c)->use_volume != 0) |
#define | FEEDEQ_VALIDRATE(c, t) (feeder_eq_validrate((c)->t.rate) != 0) |
#define | FEEDEQ_ECONOMY(c) (FEEDER_BW(c, current) < FEEDER_BW(c, target)) |
#define | FEEDEQ_REQUIRED(c) |
#define | FEEDFORMAT_NE_REQUIRED(c) |
#define | VCHAN_PASSTHROUGH(c) |
#define | FEEDER_BUILD(t) |
Functions | |
SND_DECLARE_FILE ("$FreeBSD$") | |
static int | feeder_build_format (struct pcm_channel *c, struct feeder_chain_desc *cdesc) |
static int | feeder_build_formatne (struct pcm_channel *c, struct feeder_chain_desc *cdesc) |
static int | feeder_build_rate (struct pcm_channel *c, struct feeder_chain_desc *cdesc) |
static int | feeder_build_matrix (struct pcm_channel *c, struct feeder_chain_desc *cdesc) |
static int | feeder_build_volume (struct pcm_channel *c, struct feeder_chain_desc *cdesc) |
static int | feeder_build_eq (struct pcm_channel *c, struct feeder_chain_desc *cdesc) |
static int | feeder_build_root (struct pcm_channel *c, struct feeder_chain_desc *cdesc) |
static int | feeder_build_mixer (struct pcm_channel *c, struct feeder_chain_desc *cdesc) |
static void | feeder_default_matrix (struct pcmchan_matrix *m, uint32_t fmt, int id) |
int | feeder_chain (struct pcm_channel *c) |
Variables | |
static uint32_t | feeder_chain_formats_lean [] |
static uint32_t | feeder_chain_formats_16 [] |
static uint32_t | feeder_chain_formats_32 [] |
static uint32_t | feeder_chain_formats_multi [] |
static uint32_t | feeder_chain_formats_fullmulti [] |
static uint32_t * | feeder_chain_formats [FEEDER_CHAIN_LAST] |
static int | feeder_chain_mode = FEEDER_CHAIN_DEFAULT |
Definition at line 550 of file feeder_chain.c.
#define FEEDEQ_REQUIRED | ( | c | ) |
Definition at line 551 of file feeder_chain.c.
#define FEEDEQ_VALIDRATE | ( | c, | |
t | |||
) | (feeder_eq_validrate((c)->t.rate) != 0) |
Definition at line 549 of file feeder_chain.c.
#define FEEDER_BUILD | ( | t | ) |
Definition at line 531 of file feeder_chain.c.
#define FEEDER_CHAIN_16 1 |
Definition at line 65 of file feeder_chain.c.
#define FEEDER_CHAIN_32 2 |
Definition at line 66 of file feeder_chain.c.
#define FEEDER_CHAIN_DEFAULT FEEDER_CHAIN_LEAN |
Definition at line 76 of file feeder_chain.c.
#define FEEDER_CHAIN_FULLMULTI 4 |
Definition at line 68 of file feeder_chain.c.
#define FEEDER_CHAIN_LAST 5 |
Definition at line 69 of file feeder_chain.c.
#define FEEDER_CHAIN_LEAN 0 |
Definition at line 64 of file feeder_chain.c.
#define FEEDER_CHAIN_MULTI 3 |
Definition at line 67 of file feeder_chain.c.
#define FEEDFORMAT_NE_REQUIRED | ( | c | ) |
Definition at line 554 of file feeder_chain.c.
#define FEEDFORMAT_REQUIRED | ( | c | ) |
Definition at line 544 of file feeder_chain.c.
#define FEEDMATRIX_DOWN | ( | c | ) |
Definition at line 539 of file feeder_chain.c.
#define FEEDMATRIX_REQUIRED | ( | c | ) |
Definition at line 541 of file feeder_chain.c.
#define FEEDMATRIX_UP | ( | c | ) |
Definition at line 537 of file feeder_chain.c.
#define FEEDRATE_DOWN | ( | c | ) | ((c)->target.rate < (c)->current.rate) |
Definition at line 534 of file feeder_chain.c.
#define FEEDRATE_REQUIRED | ( | c | ) | (FEEDRATE_UP(c) || FEEDRATE_DOWN(c)) |
Definition at line 535 of file feeder_chain.c.
#define FEEDRATE_UP | ( | c | ) | ((c)->target.rate > (c)->current.rate) |
Definition at line 533 of file feeder_chain.c.
Definition at line 547 of file feeder_chain.c.
#define VCHAN_PASSTHROUGH | ( | c | ) |
|
static |
Definition at line 411 of file feeder_chain.c.
References feeder_chain_state::afmt, c, chn_addfeeder(), feeder_chain_desc::current, desc, feeder_chain_desc::desc, pcm_channel::dev, FEEDEQ_RATE, pcm_channel::feeder, feeder_build_formatne(), FEEDER_EQ, feeder_getclass(), pcm_channel::feederflags, feeder_chain_state::rate, and feeder_chain_desc::use_eq.
|
static |
Definition at line 140 of file feeder_chain.c.
References feeder_chain_state::afmt, c, chn_addfeeder(), feeder_chain_desc::current, desc, feeder_chain_desc::desc, pcm_channel::dev, FEEDER_FORMAT, feeder_getclass(), pcm_channel::feederflags, and feeder_chain_desc::target.
Referenced by feeder_build_formatne().
|
static |
Definition at line 181 of file feeder_chain.c.
References feeder_chain_state::afmt, AFMT_ENCODING, feeder_chain_desc::afmt_ne, c, pcmchan_matrix::channels, feeder_chain_desc::current, pcmchan_matrix::ext, feeder_build_format(), feeder_chain_state::matrix, SND_FORMAT, and feeder_chain_desc::target.
Referenced by feeder_build_eq(), feeder_build_matrix(), feeder_build_rate(), and feeder_build_volume().
|
static |
Definition at line 286 of file feeder_chain.c.
References feeder_chain_state::afmt, c, pcmchan_matrix::channels, chn_addfeeder(), feeder_chain_desc::current, desc, feeder_chain_desc::desc, pcm_channel::dev, pcmchan_matrix::ext, pcm_channel::feeder, feeder_build_formatne(), feeder_getclass(), FEEDER_MATRIX, feeder_matrix_setup(), pcm_channel::feederflags, feeder_chain_state::matrix, SND_FORMAT, feeder_chain_desc::target, and feeder_chain_desc::use_matrix.
|
static |
Definition at line 496 of file feeder_chain.c.
References feeder_chain_state::afmt, c, chn_addfeeder(), feeder_chain_desc::current, desc, feeder_chain_desc::desc, pcm_channel::dev, feeder_getclass(), FEEDER_MIXER, and pcm_channel::feederflags.
|
static |
Definition at line 208 of file feeder_chain.c.
References feeder_chain_state::afmt, c, chn_addfeeder(), feeder_chain_desc::current, desc, feeder_chain_desc::desc, pcm_channel::dev, feeder_chain_desc::dummy, pcm_channel::feeder, feeder_build_formatne(), feeder_getclass(), FEEDER_RATE, pcm_channel::feederflags, FEEDRATE_DST, FEEDRATE_QUALITY, FEEDRATE_SRC, feeder_chain_state::rate, and feeder_chain_desc::target.
|
static |
Definition at line 465 of file feeder_chain.c.
References feeder_chain_state::afmt, c, chn_addfeeder(), feeder_chain_desc::current, pcm_feeder::desc, pcm_channel::dev, pcm_channel::feeder, feeder_getclass(), FEEDER_ROOT, pcm_channel::feederflags, pcm_feederdesc::in, and pcm_feederdesc::out.
|
static |
Definition at line 343 of file feeder_chain.c.
References feeder_chain_state::afmt, c, chn_addfeeder(), feeder_chain_desc::current, desc, feeder_chain_desc::desc, pcm_channel::dev, feeder_chain_desc::dummy, pcm_channel::feeder, feeder_build_formatne(), feeder_getclass(), FEEDER_VOLUME, feeder_volume_apply_matrix(), pcm_channel::feederflags, FEEDVOLUME_BYPASS, FEEDVOLUME_STATE, feeder_chain_state::matrix, and feeder_chain_desc::use_volume.
int feeder_chain | ( | struct pcm_channel * | c | ) |
Definition at line 581 of file feeder_chain.c.
References feeder_chain_state::afmt, AFMT_24BIT, AFMT_32BIT, AFMT_CHANNEL, AFMT_CONVERTIBLE, AFMT_ENCODING, AFMT_EXTCHANNEL, feeder_chain_desc::afmt_ne, AFMT_PASSTHROUGH, pcm_channel::bufhard, pcm_channel::bufsoft, c, pcmchan_caps::caps, pcmchan_matrix::channels, CHN_BITPERFECT, CHN_DIRSTR, CHN_F_HAS_VCHAN, CHN_F_VIRTUAL, chn_getcaps(), CHN_LOCKASSERT, chn_removefeeder(), chn_syncstate(), feeder_chain_desc::current, pcm_channel::dev, pcm_channel::devinfo, pcm_channel::direction, feeder_chain_desc::dummy, feeder_chain_desc::expensive, pcmchan_matrix::ext, FEEDEQ_ECONOMY, FEEDEQ_REQUIRED, FEEDEQ_VALIDRATE, pcm_channel::feeder, FEEDER_BUILD, FEEDER_CHAIN_16, FEEDER_CHAIN_32, FEEDER_CHAIN_DEFAULT, feeder_chain_formats, FEEDER_CHAIN_FULLMULTI, FEEDER_CHAIN_LEAN, feeder_chain_mode, FEEDER_CHAIN_MULTI, feeder_default_matrix(), feeder_matrix_compare(), feeder_matrix_format_map(), pcm_channel::feederflags, FEEDFORMAT_NE_REQUIRED, FEEDFORMAT_REQUIRED, FEEDMATRIX_DOWN, FEEDMATRIX_REQUIRED, FEEDMATRIX_UP, FEEDRATE_DOWN, FEEDRATE_REQUIRED, FEEDRATE_UP, FEEDVOLUME_REQUIRED, pcm_channel::flags, snddev_info::flags, pcmchan_caps::fmtlist, format, pcm_channel::format, pcmchan_matrix::id, pcm_channel::matrix, feeder_chain_state::matrix, pcm_channel::matrix_scratch, pcm_channel::methods, mixer, feeder_chain_desc::mode, feeder_chain_desc::origin, pcm_channel::parentchannel, pcm_channel::parentsnddev, PCMDIR_PLAY, PCMDIR_REC, rate, feeder_chain_state::rate, SD_F_EQ, SD_F_EQ_PC, SD_F_SOFTPCMVOL, SD_F_VPC, SND_CHN_MATRIX_PCMCHANNEL, SND_CHN_MATRIX_UNKNOWN, snd_fmtbest(), snd_fmtvalid(), SND_FORMAT, sndbuf_getspd(), sndbuf_setfmt(), sndbuf_setspd(), pcm_channel::speed, feeder_chain_desc::target, feeder_chain_desc::use_eq, feeder_chain_desc::use_matrix, feeder_chain_desc::use_volume, and VCHAN_PASSTHROUGH.
Referenced by chn_setparam(), and vchan_sync().
|
static |
Definition at line 567 of file feeder_chain.c.
References AFMT_CHANNEL, AFMT_EXTCHANNEL, pcmchan_matrix::channels, pcmchan_matrix::ext, fmt, id, pcmchan_matrix::id, m, pcmchan_matrix::offset, and SND_CHN_T_MAX.
Referenced by feeder_chain().
SND_DECLARE_FILE | ( | "$FreeBSD$" | ) |
|
static |
Definition at line 119 of file feeder_chain.c.
Referenced by feeder_chain().
|
static |
Definition at line 91 of file feeder_chain.c.
|
static |
Definition at line 97 of file feeder_chain.c.
|
static |
Definition at line 111 of file feeder_chain.c.
|
static |
Definition at line 85 of file feeder_chain.c.
|
static |
Definition at line 103 of file feeder_chain.c.
|
static |
Definition at line 127 of file feeder_chain.c.
Referenced by feeder_chain().