FreeBSD kernel sound device code
|
Go to the source code of this file.
Macros | |
#define | VCHAN_SYNC_REQUIRED(c) |
#define | VCHAN_DEFAULT_FORMAT SND_FORMAT(AFMT_S16_LE, 2, 0) |
#define | VCHAN_DEFAULT_RATE 48000 |
#define | VCHAN_PLAY 0 |
#define | VCHAN_REC 1 |
#define | VCHAN_SYSCTL_DATA(x, y) |
#define | VCHAN_SYSCTL_DATA_SIZE sizeof(void *) |
#define | VCHAN_SYSCTL_UNIT(x) ((int)(((intptr_t)(x) >> 2) & 0xfff) - 1) |
#define | VCHAN_SYSCTL_DIR(x) ((int)((intptr_t)(x) & 0x3) - 1) |
Functions | |
int | vchan_create (struct pcm_channel *, int) |
int | vchan_destroy (struct pcm_channel *) |
int | vchan_sync (struct pcm_channel *) |
void | vchan_initsys (device_t) |
#define VCHAN_DEFAULT_FORMAT SND_FORMAT(AFMT_S16_LE, 2, 0) |
#define VCHAN_SYNC_REQUIRED | ( | c | ) |
#define VCHAN_SYSCTL_DATA | ( | x, | |
y | |||
) |
#define VCHAN_SYSCTL_DIR | ( | x | ) | ((int)((intptr_t)(x) & 0x3) - 1) |
#define VCHAN_SYSCTL_UNIT | ( | x | ) | ((int)(((intptr_t)(x) >> 2) & 0xfff) - 1) |
int vchan_create | ( | struct pcm_channel * | parent, |
int | num | ||
) |
Definition at line 667 of file vchan.c.
References AFMT_PASSTHROUGH, AFMT_VCHAN, CHN_F_BUSY, CHN_F_HAS_VCHAN, CHN_F_VCHAN_PASSTHROUGH, chn_getcaps(), CHN_INSERT_SORT_DESCEND, CHN_LOCK, CHN_LOCKASSERT, CHN_REMOVE, chn_reset(), CHN_UNLOCK, pcm_channel::dev, pcm_channel::devinfo, pcm_channel::direction, feeder_rate_max, feeder_rate_min, feeder_rate_round, pcm_channel::flags, pcmchan_caps::fmtlist, pcm_channel::format, pcmchan_caps::maxspeed, pcm_channel::methods, pcmchan_caps::minspeed, pcm_channel::parentsnddev, PCM_BUSYASSERT, pcm_chn_add(), pcm_chn_create(), pcm_chn_destroy(), pcm_chn_remove(), PCM_LOCK, PCM_UNLOCK, PCMDIR_PLAY, PCMDIR_PLAY_VIRTUAL, PCMDIR_REC, PCMDIR_REC_VIRTUAL, snddev_info::pvchanformat, snddev_info::pvchanrate, r, RANGE, snddev_info::rvchanformat, snddev_info::rvchanrate, snd_fmtvalid(), snd_str2afmt(), pcm_channel::speed, VCHAN_DEFAULT_FORMAT, VCHAN_DEFAULT_RATE, VCHAN_FMT_HINT, and VCHAN_SPD_HINT.
Referenced by pcm_setvchans().
int vchan_destroy | ( | struct pcm_channel * | c | ) |
Definition at line 852 of file vchan.c.
References c, CHN_EMPTY, CHN_F_BUSY, CHN_F_HAS_VCHAN, CHN_LOCK, CHN_LOCKASSERT, CHN_REMOVE, chn_reset(), CHN_UNLOCK, pcm_channel::flags, pcm_channel::format, pcm_channel::parentchannel, pcm_channel::parentsnddev, PCM_BUSYASSERT, pcm_chn_destroy(), pcm_chn_remove(), PCM_LOCK, PCM_UNLOCK, and pcm_channel::speed.
Referenced by pcm_setvchans().
void vchan_initsys | ( | device_t | dev | ) |
Definition at line 940 of file vchan.c.
References dev, snddev_info::play_sysctl_tree, snddev_info::rec_sysctl_ctx, snddev_info::rec_sysctl_tree, sysctl_dev_pcm_vchanformat(), sysctl_dev_pcm_vchanmode(), sysctl_dev_pcm_vchanrate(), sysctl_dev_pcm_vchans(), VCHAN_SYSCTL_DATA, and VCHAN_SYSCTL_DATA_SIZE.
Referenced by pcm_sysinit().
int vchan_sync | ( | struct pcm_channel * | c | ) |
Definition at line 906 of file vchan.c.
References buf, pcm_channel::bufhard, c, CHN_F_DIRTY, CHN_F_PASSTHROUGH, CHN_F_VIRTUAL, CHN_LOCKASSERT, CHN_NAMELEN, pcm_channel::comm, pcm_channel::dev, dsp_unit2name(), feeder_chain(), pcm_channel::flags, pcm_channel::parentchannel, sndbuf_setspd(), pcm_channel::speed, and pcm_channel::unit.
Referenced by chn_notify(), feed_mixer_feed(), feed_mixer_rec(), sysctl_dev_pcm_vchanformat(), sysctl_dev_pcm_vchanrate(), and vchan_trigger().