FreeBSD kernel sound device code
channel_if.m File Reference
Include dependency graph for channel_if.m:

Go to the source code of this file.

Variables

INTERFACE channel
 
 CODE
 
METHOD void * init
 
void * devinfo
 
struct snd_dbufb
 
struct pcm_channelc
 
int dir
 
METHOD int free
 
void * data
 
DEFAULT channel_nofree
 
METHOD int reset
 
DEFAULT channel_noreset
 
METHOD int resetdone
 
DEFAULT channel_noresetdone
 
METHOD int setformat
 
u_int32_t format
 
METHOD u_int32_t setspeed
 
u_int32_t speed
 
METHOD u_int32_t setblocksize
 
u_int32_t blocksize
 
METHOD int setfragments
 
u_int32_t blockcount
 
DEFAULT channel_nosetfragments
 
METHOD int trigger
 
int go
 
METHOD u_int32_t getptr
 
DEFAULT channel_nogetptr
 
METHOD struct pcmchan_capsgetcaps
 
METHOD int notify
 
u_int32_t changed
 
DEFAULT channel_nonotify
 
METHOD int getpeaks
 Retrieve channel peak values. More...
 
int * lpeak
 
int * rpeak
 
DEFAULT channel_nogetpeaks
 
METHOD int getrates
 Retrieve discrete supported sample rates. More...
 
int ** rates
 
DEFAULT channel_nogetrates
 
METHOD struct pcmchan_matrixgetmatrix
 
DEFAULT channel_nogetmatrix
 
METHOD int setmatrix
 
struct pcmchan_matrixm
 
DEFAULT channel_nosetmatrix
 

Variable Documentation

◆ b

struct snd_dbuf* b

Definition at line 105 of file channel_if.m.

Referenced by ad1816chan_init(), alschan_init(), aoa_chan_init(), atiixp_chan_init(), audio_soc_chan_init(), chn_abort(), chn_dmaupdate(), chn_flush(), chn_init(), chn_kill(), chn_rdfeed(), chn_resetbuf(), chn_resizebuf(), chn_start(), chn_sync(), chn_trigger(), chn_wrfeed(), cmi_mwrite(), cmichan_init(), cs4281chan_init(), csachan_init(), csamidi_mwrite(), dsp_ioctl(), emu_mwrite(), emu_vinit(), emufxrchan_init(), emupchan_init(), emurchan_init(), envy24chan_init(), envy24htchan_init(), eschan_init(), eschan_trigger(), esschan_init(), feed_eq_feed(), feed_format_feed(), feed_matrix_feed(), feed_mixer_feed(), feed_mixer_rec(), feed_volume_feed(), fm801ch_init(), gcd(), hdaa_channel_init(), hdspechan_init(), ichchan_init(), lcm(), m3_pchan_init(), m3_rchan_init(), mpu401_intr(), msschan_init(), nmchan_init(), sb16chan_init(), sb_reset_dsp(), sbchan_init(), sndbuf_acquire(), sndbuf_alloc(), sndbuf_clear(), sndbuf_clearshadow(), sndbuf_create(), sndbuf_destroy(), sndbuf_dispose(), sndbuf_dma(), sndbuf_dmabounce(), sndbuf_dmaptr(), sndbuf_dmasetdir(), sndbuf_dmasetup(), sndbuf_dump(), sndbuf_fillsilence(), sndbuf_fillsilence_rl(), sndbuf_free(), sndbuf_getalign(), sndbuf_getallocsize(), sndbuf_getblkcnt(), sndbuf_getblksz(), sndbuf_getblocks(), sndbuf_getbps(), sndbuf_getbuf(), sndbuf_getbufofs(), sndbuf_getflags(), sndbuf_getfmt(), sndbuf_getfree(), sndbuf_getfreeptr(), sndbuf_gethwptr(), sndbuf_getmaxsize(), sndbuf_getprevblocks(), sndbuf_getprevtotal(), sndbuf_getready(), sndbuf_getreadyptr(), sndbuf_getsel(), sndbuf_getsize(), sndbuf_getspd(), sndbuf_gettotal(), sndbuf_getxrun(), sndbuf_remalloc(), sndbuf_reset(), sndbuf_resize(), sndbuf_runsz(), sndbuf_setblkcnt(), sndbuf_setblksz(), sndbuf_setflags(), sndbuf_setfmt(), sndbuf_sethwptr(), sndbuf_setmap(), sndbuf_setrun(), sndbuf_setspd(), sndbuf_setup(), sndbuf_setxrun(), sndbuf_softreset(), sndbuf_updateprevtotal(), svchan_init(), trpchan_init(), trrchan_init(), ua_chan_init(), uaudio_chan_init(), umidi_convert_to_usb(), via8233dxs_init(), via8233msgd_init(), via8233wr_init(), viachan_init(), z_resampler_feed(), and z_resampler_feed_internal().

◆ blockcount

u_int32_t blockcount

Definition at line 147 of file channel_if.m.

Referenced by ua_chan_setfragments(), and uaudio_chan_play_callback().

◆ blocksize

◆ c

struct pcm_channel* c

Definition at line 106 of file channel_if.m.

Referenced by ad1816_intr(), ad1816chan_init(), alschan_init(), aoa_chan_init(), atiixp_chan_init(), audio_soc_chan_init(), chn_abort(), chn_addfeeder(), chn_dmaupdate(), chn_findfeeder(), chn_flush(), chn_getcaps(), chn_getformats(), chn_getmatrix(), chn_getmute_matrix(), chn_getptr(), chn_getrates(), chn_getvolume_matrix(), chn_init(), chn_intr(), chn_intr_locked(), chn_kill(), chn_lockdestroy(), chn_lockinit(), chn_notify(), chn_oss_getmask(), chn_oss_getorder(), chn_oss_setorder(), chn_poll(), chn_pollreset(), chn_polltrigger(), chn_rdfeed(), chn_rdintr(), chn_read(), chn_removefeeder(), chn_reset(), chn_resetbuf(), chn_resizebuf(), chn_setblocksize(), chn_setformat(), chn_setlatency(), chn_setmatrix(), chn_setmute_matrix(), chn_setmute_multi(), chn_setparam(), chn_setspeed(), chn_setvolume(), chn_setvolume_matrix(), chn_setvolume_multi(), chn_sleep(), chn_start(), chn_sync(), chn_syncdestroy(), chn_syncstate(), chn_trigger(), chn_vpc_proc(), chn_vpc_reset(), chn_wakeup(), chn_wrfeed(), chn_wrintr(), chn_write(), cmichan_init(), cs4281chan_init(), csachan_init(), dsp_clone(), dsp_get_volume_channel(), dsp_mmap_single(), dsp_oss_syncstart(), dsp_stdclone(), emufxrchan_init(), emupchan_init(), emurchan_init(), envy24chan_init(), envy24htchan_init(), eschan_init(), esschan_init(), feed_eq_feed(), feed_format_feed(), feed_matrix_feed(), feed_mixer_feed(), feed_mixer_rec(), feed_volume_feed(), feeder_build_eq(), feeder_build_format(), feeder_build_formatne(), feeder_build_matrix(), feeder_build_mixer(), feeder_build_rate(), feeder_build_root(), feeder_build_volume(), feeder_chain(), fm801ch_init(), gcd(), hdaa_audio_setup(), hdaa_chan_formula(), hdaa_channel_init(), hdspechan_init(), ichchan_init(), m3_pchan_init(), m3_rchan_init(), midisynth_bender(), midisynth_controller(), midisynth_killnote(), midisynth_setinstr(), midisynth_startnote(), mixer_ioctl_channel(), mixer_set_eq(), mixer_set_softpcmvol(), mss_intr(), msschan_init(), nmchan_init(), opti931_intr(), opti_detect(), pcm_chnalloc(), pcm_chnref(), pcm_chnrelease(), pcm_getparentchannel(), pcm_setvchans(), sb16chan_init(), sb_intr(), sbchan_init(), snd_c2unit(), snd_clone_alloc(), snd_clone_busy(), snd_clone_create(), snd_clone_destroy(), snd_clone_disable(), snd_clone_enable(), snd_clone_gc(), snd_clone_getdeadline(), snd_clone_getflags(), snd_clone_getmaxunit(), snd_clone_getsize(), snd_clone_ref(), snd_clone_setdeadline(), snd_clone_setflags(), snd_clone_setmaxunit(), snd_clone_unref(), snd_max_c(), snd_mkunit(), snd_unit2c(), sndstat_get_caps(), sound_oss_sysinfo(), svchan_init(), sysctl_dev_pcm_eq(), sysctl_dev_pcm_eq_preamp(), sysctl_dev_pcm_vchanformat(), sysctl_dev_pcm_vchanmode(), sysctl_dev_pcm_vchanrate(), sysctl_hw_snd_feeder_rate_quality(), trpchan_init(), trrchan_init(), ua_chan_init(), uaudio20_mixer_add_mixer(), uaudio_chan_init(), uaudio_mixer_add_mixer(), vchan_destroy(), vchan_getcaps(), vchan_init(), vchan_sync(), vchan_trigger(), via8233dxs_init(), via8233msgd_init(), via8233wr_init(), viachan_init(), z_resampler_build_polyphase(), z_resampler_feed(), z_resampler_feed_internal(), and z_resampler_sinc_len().

◆ changed

u_int32_t changed

Definition at line 169 of file channel_if.m.

◆ channel

◆ channel_nofree

DEFAULT channel_nofree

Definition at line 113 of file channel_if.m.

◆ channel_nogetmatrix

DEFAULT channel_nogetmatrix

Definition at line 227 of file channel_if.m.

◆ channel_nogetpeaks

DEFAULT channel_nogetpeaks

Definition at line 197 of file channel_if.m.

◆ channel_nogetptr

DEFAULT channel_nogetptr

Definition at line 159 of file channel_if.m.

◆ channel_nogetrates

DEFAULT channel_nogetrates

Definition at line 221 of file channel_if.m.

◆ channel_nonotify

DEFAULT channel_nonotify

Definition at line 170 of file channel_if.m.

◆ channel_noreset

DEFAULT channel_noreset

Definition at line 118 of file channel_if.m.

◆ channel_noresetdone

DEFAULT channel_noresetdone

Definition at line 123 of file channel_if.m.

◆ channel_nosetfragments

DEFAULT channel_nosetfragments

Definition at line 148 of file channel_if.m.

◆ channel_nosetmatrix

DEFAULT channel_nosetmatrix

Definition at line 233 of file channel_if.m.

◆ CODE

CODE

Definition at line 37 of file channel_if.m.

◆ data

void* data

Definition at line 112 of file channel_if.m.

◆ devinfo

void* devinfo

Definition at line 104 of file channel_if.m.

◆ dir

int dir

Definition at line 107 of file channel_if.m.

◆ format

u_int32_t format

Definition at line 128 of file channel_if.m.

◆ free

METHOD int free
Initial value:
{
kobj_t obj

Definition at line 110 of file channel_if.m.

Referenced by ac97_destroy(), ad1816_release_resources(), als_pci_attach(), als_pci_detach(), aoa_dma_delete(), atiixp_release_resource(), audio_soc_chan_free(), audio_soc_chan_init(), audio_soc_detach(), chn_syncdestroy(), clkrun_hack(), cmi_attach(), cmi_detach(), cs4281_pci_attach(), cs4281_pci_detach(), csa_detach(), csa_releaseres(), dsp_cdevinfo_flush(), dsp_cdevinfo_free(), dsp_oss_syncgroup(), dsp_oss_syncstart(), emu_memalloc(), emu_memfree(), emu_pci_attach(), emu_pci_detach(), emu_pcm_attach(), emu_pcm_detach(), emu_rm_uninit(), envy24_cfgfree(), envy24_delta_ak4524_create(), envy24_delta_ak4524_destroy(), envy24_pci_attach(), envy24_pci_detach(), envy24chan_free(), envy24ht_cfgfree(), envy24ht_pci_attach(), envy24ht_pci_detach(), envy24ht_spi_create(), envy24ht_spi_destroy(), envy24htchan_free(), es_pci_attach(), es_pci_detach(), ess_release_resources(), feed_eq_free(), feed_format_free(), feed_matrix_free(), feed_matrix_init(), feed_volume_free(), feed_volume_init(), feeder_unregisterall(), fm801_pci_attach(), fm801_pci_detach(), hdaa_audio_bind_as(), hdaa_detach(), hdaa_eld_handler(), hdaa_unconfigure(), hdac_attach(), hdac_detach(), hdacc_detach(), hdacc_pindump(), hdspe_intr(), hdspe_running(), hdspechan_free(), i2s_postattach(), ich_pci_attach(), ich_pci_detach(), m3_pci_attach(), m3_pci_detach(), midi_destroy(), midi_init(), mpu401_init(), mpu401_uninit(), mss_release_resources(), nm_pci_attach(), nm_pci_detach(), nm_pci_probe(), pcm_chn_create(), pcm_chn_destroy(), pnpmss_attach(), sb16_release_resources(), sb_release_resources(), seq_addunit(), seq_delunit(), snd_clone_destroy(), snd_clone_gc(), snd_mtxfree(), sndbuf_destroy(), sndbuf_free(), sndbuf_remalloc(), sndbuf_resize(), sndstat_close(), sndstat_get_devs(), sndstat_line2userdev(), sndstat_open(), sndstat_refresh_devs(), sndstat_remove_all_userdevs(), sndstat_unpack_user_nvlbuf(), sndstat_unregister(), sndstat_unregisterfile(), spicds_destroy(), sv_detach(), sysctl_hdac_pindump(), tr_pci_attach(), tr_pci_detach(), uaudio_chan_free(), uaudio_hid_probe(), uaudio_mixer_ctl_free(), uaudio_mixer_fill_info(), vchan_free(), via_attach(), via_detach(), z_resampler_build_polyphase(), z_resampler_free(), z_resampler_init(), z_resampler_reset(), and z_resampler_setup().

◆ getcaps

METHOD struct pcmchan_caps* getcaps
Initial value:
{
kobj_t obj

Definition at line 161 of file channel_if.m.

◆ getmatrix

METHOD struct pcmchan_matrix* getmatrix
Initial value:
{
kobj_t obj

Definition at line 223 of file channel_if.m.

◆ getpeaks

METHOD int getpeaks
Initial value:
{
kobj_t obj

Retrieve channel peak values.

This function is intended to obtain peak volume values for samples played/recorded on a channel. Values are on a linear scale from 0 to

  1. If the channel is monaural, a single value should be recorded in lpeak.

If hardware support isn't available, the SNDCTL_DSP_GET[IO]PEAKS operation should return EINVAL. However, we may opt to provide software support that the user may toggle via sysctl/mixext.

Parameters
objstandard kobj object (usually channel->methods)
datadriver-specific data (usually channel->devinfo)
lpeakpointer to store left peak level
rpeakpointer to store right peak level
Return values
-1Error; usually operation isn't supported.
0success

Definition at line 192 of file channel_if.m.

◆ getptr

METHOD u_int32_t getptr
Initial value:
{
kobj_t obj

Definition at line 156 of file channel_if.m.

◆ getrates

METHOD int getrates
Initial value:
{
kobj_t obj

Retrieve discrete supported sample rates.

Some cards operate at fixed rates, and this call is intended to retrieve those rates primarily for when in-kernel rate adjustment is undesirable (e.g., application wants direct DMA access after setting a channel to run "uncooked").

The parameter rates is a double pointer which will be reset to point to an array of supported sample rates. The number of elements in the array is returned to the caller.

Parameters
objstandard kobj object (usually channel->methods)
datadriver-specific data (usually channel->devinfo)
ratesrate array pointer
Returns
Number of rates in the array

Definition at line 217 of file channel_if.m.

◆ go

int go

Definition at line 153 of file channel_if.m.

◆ init

METHOD void* init
Initial value:
{
kobj_t obj

Definition at line 102 of file channel_if.m.

◆ lpeak

int* lpeak

Definition at line 195 of file channel_if.m.

Referenced by dsp_ioctl().

◆ m

struct pcmchan_matrix* m

Definition at line 232 of file channel_if.m.

Referenced by ac97mix_init(), ac97mix_reinit(), ac97mix_set(), ac97mix_setrecsrc(), ac97mix_uninit(), ad1816mix_init(), ad1816mix_set(), ad1816mix_setrecsrc(), alsmix_init(), alsmix_set(), alsmix_setrecsrc(), aoagpio_probe(), burgundy_init(), burgundy_set(), chn_oss_getmask(), chn_oss_setorder(), chn_setmatrix(), chn_syncstate(), cmimix_init(), cmimix_set(), cmimix_setrecsrc(), cmpdesc(), dsp_ioctl(), emu_dspmixer_init(), emu_dspmixer_set(), emu_dspmixer_setrecsrc(), emu_dspmixer_uninit(), emu_efxmixer_init(), emu_vinit(), envy24htmixer_init(), envy24htmixer_reinit(), envy24htmixer_set(), envy24htmixer_setrecsrc(), envy24htmixer_uninit(), envy24mixer_init(), envy24mixer_reinit(), envy24mixer_set(), envy24mixer_setrecsrc(), envy24mixer_uninit(), es1370_mixinit(), es1370_mixset(), es1370_mixsetrecsrc(), essmix_init(), essmix_set(), essmix_setrecsrc(), feed_volume_init(), feed_volume_set(), feeder_default_matrix(), feeder_matrix_default_format(), feeder_matrix_oss_get_channel_order(), feeder_matrix_oss_set_channel_order(), feeder_volume_apply_matrix(), hdaa_audio_ctl_ossmixer_init(), hdaa_audio_ctl_ossmixer_set(), hdaa_audio_ctl_ossmixer_setrecsrc(), hdaa_audio_trace_adc(), hdaa_audio_trace_dac(), hdaa_channels_handler(), hdspemixer_init(), hdspemixer_set(), midi_close(), midi_destroy(), midi_in(), midi_init(), midi_open(), midi_out(), midi_poll(), midi_read(), midi_uninit(), midi_unload(), midi_write(), midimapper_fetch_synth(), midimapper_open(), midistat_prepare(), midisynth_close(), midisynth_open(), midisynth_writeraw(), mix_get(), mix_get_dev(), mix_get_locked(), mix_get_type(), mix_getchild(), mix_getdevinfo(), mix_getdevs(), mix_getmutedevs(), mix_getparent(), mix_getrecdevs(), mix_getrecsrc(), mix_set(), mix_set_locked(), mix_setdevs(), mix_setparentchild(), mix_setrealdev(), mix_setrecdevs(), mix_setrecsrc(), mixer_busy(), mixer_close(), mixer_create(), mixer_delete(), mixer_get_lock(), mixer_get_recroute(), mixer_hwvol_init(), mixer_hwvol_mute(), mixer_hwvol_mute_locked(), mixer_hwvol_step(), mixer_hwvol_step_locked(), mixer_init(), mixer_ioctl_channel(), mixer_ioctl_cmd(), mixer_mixerinfo(), mixer_obj_create(), mixer_open(), mixer_oss_mixerinfo(), mixer_reinit(), mixer_set(), mixer_set_eq(), mixer_set_recroute(), mixer_set_softpcmvol(), mixer_uninit(), mpu401_init(), mpu401_intr(), mpu401_mcallback(), mpu401_minit(), mpu401_muninit(), mpu401_timeout(), mpu401_uninit(), mss_trigger(), mssmix_init(), mssmix_set(), mssmix_setrecsrc(), onyx_init(), onyx_set(), sb16mix_init(), sb16mix_set(), sb16mix_setrecsrc(), sbmix_init(), sbmix_set(), sbpromix_init(), sbpromix_set(), sbpromix_setrecsrc(), screamer_init(), screamer_set(), seq_processevent(), seq_reset(), snapper_init(), snapper_set(), snd_mtxassert(), snd_mtxcreate(), snd_mtxfree(), sndstat_line2userdev(), sv_mix_init(), sv_mix_set(), sv_mix_setrecsrc(), sv_set_recspeed(), sysctl_es137x_single_pcm_mixer(), sysctl_hw_snd_hwvol_mixer(), tumbler_init(), tumbler_set(), ua_mixer_init(), ua_mixer_set(), ua_mixer_setrecsrc(), ua_mixer_uninit(), uaudio_chan_record_callback(), uaudio_hid_rx_callback(), uaudio_mixer_init_sub(), uaudio_mixer_set(), uaudio_mixer_setrecsrc(), uaudio_mixer_uninit_sub(), ymmix_init(), ymmix_set(), and ymmix_setrecsrc().

◆ notify

METHOD int notify
Initial value:
{
kobj_t obj

Definition at line 166 of file channel_if.m.

◆ rates

int** rates

◆ reset

METHOD int reset
Initial value:
{
kobj_t obj

Definition at line 115 of file channel_if.m.

◆ resetdone

METHOD int resetdone
Initial value:
{
kobj_t obj

Definition at line 120 of file channel_if.m.

◆ rpeak

int* rpeak

Definition at line 196 of file channel_if.m.

Referenced by dsp_ioctl().

◆ setblocksize

METHOD u_int32_t setblocksize
Initial value:
{
kobj_t obj

Definition at line 137 of file channel_if.m.

◆ setformat

METHOD int setformat
Initial value:
{
kobj_t obj

Definition at line 125 of file channel_if.m.

◆ setfragments

METHOD int setfragments
Initial value:
{
kobj_t obj

Definition at line 143 of file channel_if.m.

◆ setmatrix

METHOD int setmatrix
Initial value:
{
kobj_t obj

Definition at line 229 of file channel_if.m.

◆ setspeed

METHOD u_int32_t setspeed
Initial value:
{
kobj_t obj

Definition at line 131 of file channel_if.m.

◆ speed

u_int32_t speed

Definition at line 134 of file channel_if.m.

◆ trigger

METHOD int trigger
Initial value:
{
kobj_t obj

Definition at line 150 of file channel_if.m.