FreeBSD kernel sound device code
|
Go to the source code of this file.
Data Structures | |
struct | feedertab_entry |
Macros | |
#define | MAXFEEDERS 256 |
#define | score_signeq(s1, s2) (((s1) & 0x1) == ((s2) & 0x1)) |
#define | score_endianeq(s1, s2) (((s1) & 0x2) == ((s2) & 0x2)) |
#define | score_cheq(s1, s2) (((s1) & 0xfc) == ((s2) & 0xfc)) |
#define | score_chgt(s1, s2) (((s1) & 0xfc) > ((s2) & 0xfc)) |
#define | score_chlt(s1, s2) (((s1) & 0xfc) < ((s2) & 0xfc)) |
#define | score_val(s1) ((s1) & 0x3f00) |
#define | score_cse(s1) ((s1) & 0x7f) |
Functions | |
SND_DECLARE_FILE ("$FreeBSD$") | |
static | MALLOC_DEFINE (M_FEEDER, "feeder", "pcm feeder") |
static | SLIST_HEAD (feedertab_entry) |
static void | feeder_unregisterall (void *p) |
static int | cmpdesc (struct pcm_feederdesc *n, struct pcm_feederdesc *m) |
static void | feeder_destroy (struct pcm_feeder *f) |
static struct pcm_feeder * | feeder_create (struct feeder_class *fc, struct pcm_feederdesc *desc) |
struct feeder_class * | feeder_getclass (struct pcm_feederdesc *desc) |
int | chn_addfeeder (struct pcm_channel *c, struct feeder_class *fc, struct pcm_feederdesc *desc) |
int | chn_removefeeder (struct pcm_channel *c) |
struct pcm_feeder * | chn_findfeeder (struct pcm_channel *c, u_int32_t type) |
u_int32_t | snd_fmtscore (u_int32_t fmt) |
static u_int32_t | snd_fmtbestfunc (u_int32_t fmt, u_int32_t *fmts, int cheq) |
u_int32_t | snd_fmtbestbit (u_int32_t fmt, u_int32_t *fmts) |
u_int32_t | snd_fmtbestchannel (u_int32_t fmt, u_int32_t *fmts) |
u_int32_t | snd_fmtbest (u_int32_t fmt, u_int32_t *fmts) |
void | feeder_printchain (struct pcm_feeder *head) |
static int | feed_root (struct pcm_feeder *feeder, struct pcm_channel *ch, u_int8_t *buffer, u_int32_t count, void *source) |
SYSINIT (feeder_root, SI_SUB_DRIVERS, SI_ORDER_FIRST, feeder_register, &feeder_root_class) | |
SYSUNINIT (feeder_root, SI_SUB_DRIVERS, SI_ORDER_FIRST, feeder_unregisterall, NULL) | |
Variables | |
static kobj_method_t | feeder_root_methods [] |
static struct feeder_class | feeder_root_class |
#define score_cheq | ( | s1, | |
s2 | |||
) | (((s1) & 0xfc) == ((s2) & 0xfc)) |
#define score_chgt | ( | s1, | |
s2 | |||
) | (((s1) & 0xfc) > ((s2) & 0xfc)) |
#define score_chlt | ( | s1, | |
s2 | |||
) | (((s1) & 0xfc) < ((s2) & 0xfc)) |
#define score_endianeq | ( | s1, | |
s2 | |||
) | (((s1) & 0x2) == ((s2) & 0x2)) |
#define score_signeq | ( | s1, | |
s2 | |||
) | (((s1) & 0x1) == ((s2) & 0x1)) |
int chn_addfeeder | ( | struct pcm_channel * | c, |
struct feeder_class * | fc, | ||
struct pcm_feederdesc * | desc | ||
) |
Definition at line 238 of file feeder.c.
References c, desc, pcm_channel::feeder, feeder_create(), pcm_feeder::parent, and pcm_feeder::source.
Referenced by chn_init(), feeder_build_eq(), feeder_build_format(), feeder_build_matrix(), feeder_build_mixer(), feeder_build_rate(), feeder_build_root(), and feeder_build_volume().
struct pcm_feeder * chn_findfeeder | ( | struct pcm_channel * | c, |
u_int32_t | type | ||
) |
Definition at line 270 of file feeder.c.
References c, pcm_feeder::desc, pcm_channel::feeder, pcm_feeder::source, type, and pcm_feederdesc::type.
Referenced by chn_syncstate(), mixer_set_eq(), sysctl_dev_pcm_eq(), sysctl_dev_pcm_eq_preamp(), and sysctl_hw_snd_feeder_rate_quality().
int chn_removefeeder | ( | struct pcm_channel * | c | ) |
Definition at line 256 of file feeder.c.
References c, pcm_channel::feeder, feeder_destroy(), and pcm_feeder::source.
Referenced by chn_kill(), and feeder_chain().
|
static |
Definition at line 171 of file feeder.c.
References m, n, and pcmchan_matrix::type.
Referenced by feeder_getclass().
|
static |
Definition at line 458 of file feeder.c.
References buffer, CHN_F_CLOSING, CHN_F_VIRTUAL, count, pcm_channel::direction, pcm_channel::feedcount, pcm_channel::flags, offset, PCMDIR_REC, snd_verbose, sndbuf_dispose(), sndbuf_getfmt(), sndbuf_getready(), sndbuf_zerodata(), source, src, and pcm_channel::xruns.
|
static |
Definition at line 187 of file feeder.c.
References pcm_feeder::class, feeder_class::data, pcm_feeder::data, desc, pcm_feeder::desc, pcm_feeder::desc_static, feeder_destroy(), FEEDER_ROOT, pcm_feederdesc::flags, pcm_feederdesc::idx, pcm_feederdesc::in, pcm_feederdesc::out, pcm_feeder::parent, pcm_feeder::source, and pcm_feederdesc::type.
Referenced by chn_addfeeder().
|
static |
Definition at line 180 of file feeder.c.
Referenced by chn_removefeeder(), and feeder_create().
struct feeder_class * feeder_getclass | ( | struct pcm_feederdesc * | desc | ) |
Definition at line 224 of file feeder.c.
References cmpdesc(), and desc.
Referenced by chn_init(), feeder_build_eq(), feeder_build_format(), feeder_build_matrix(), feeder_build_mixer(), feeder_build_rate(), feeder_build_root(), and feeder_build_volume().
void feeder_printchain | ( | struct pcm_feeder * | head | ) |
Definition at line 442 of file feeder.c.
References pcm_feeder::class, pcm_feeder::desc, pcm_feederdesc::idx, and pcm_feeder::source.
|
static |
|
static |
|
static |
Definition at line 52 of file feeder.c.
References chn_latency, CHN_LATENCY_DEFAULT, CHN_LATENCY_MAX, CHN_LATENCY_MIN, chn_latency_profile, CHN_LATENCY_PROFILE_DEFAULT, CHN_LATENCY_PROFILE_MAX, CHN_LATENCY_PROFILE_MIN, feeder_class::desc, feeder_rate_max, feeder_rate_min, feeder_rate_round, FEEDRATE_MAX, FEEDRATE_MIN, FEEDRATE_RATEMAX, FEEDRATE_RATEMIN, FEEDRATE_ROUNDHZ, FEEDRATE_ROUNDHZ_MAX, FEEDRATE_ROUNDHZ_MIN, pcm_feederdesc::in, MAXFEEDERS, pcm_feederdesc::out, pcm_veto_load, PCMMAXUNIT, snd_maxautovchans, SND_MAXVCHANS, snd_unit, snd_unit_init(), snd_verbose, and pcm_feederdesc::type.
SND_DECLARE_FILE | ( | "$FreeBSD$" | ) |
u_int32_t snd_fmtbest | ( | u_int32_t | fmt, |
u_int32_t * | fmts | ||
) |
Definition at line 408 of file feeder.c.
References AFMT_CHANNEL, fmt, fmts, score_val, snd_fmtbestbit(), snd_fmtbestchannel(), snd_fmtscore(), and snd_fmtvalid().
Referenced by chn_notify(), and feeder_chain().
u_int32_t snd_fmtbestbit | ( | u_int32_t | fmt, |
u_int32_t * | fmts | ||
) |
Definition at line 396 of file feeder.c.
References fmt, fmts, and snd_fmtbestfunc().
Referenced by snd_fmtbest().
u_int32_t snd_fmtbestchannel | ( | u_int32_t | fmt, |
u_int32_t * | fmts | ||
) |
Definition at line 402 of file feeder.c.
References fmt, fmts, and snd_fmtbestfunc().
Referenced by snd_fmtbest().
|
static |
Definition at line 351 of file feeder.c.
References fmt, fmts, score_cheq, score_chgt, score_chlt, score_cse, score_endianeq, score_signeq, score_val, snd_fmtscore(), and snd_fmtvalid().
Referenced by snd_fmtbestbit(), and snd_fmtbestchannel().
u_int32_t snd_fmtscore | ( | u_int32_t | fmt | ) |
Definition at line 320 of file feeder.c.
References AFMT_16BIT, AFMT_24BIT, AFMT_32BIT, AFMT_8BIT, AFMT_BIGENDIAN, AFMT_CHANNEL, AFMT_SIGNED, and fmt.
Referenced by snd_fmtbest(), and snd_fmtbestfunc().
SYSINIT | ( | feeder_root | , |
SI_SUB_DRIVERS | , | ||
SI_ORDER_FIRST | , | ||
feeder_register | , | ||
& | feeder_root_class | ||
) |
SYSUNINIT | ( | feeder_root | , |
SI_SUB_DRIVERS | , | ||
SI_ORDER_FIRST | , | ||
feeder_unregisterall | , | ||
NULL | |||
) |
|
static |
|
static |