Hello everyone.
I have Grandstream GXP1610 VoIP phone.
I need to start voice record on it. The file system is read only, i can whrite only in /tmp/ directory. Comand
arecord /tmp/test.wav return
arecord: main:683: audio open error: No such file or directory
Command arecord -Dplughw:0,1 /tmp/test.wav creating a void file, and whrite nothing
Command arecord -Dplughw:0,2 /tmp/test.wav create file and whriting silence
Any help?
I have Grandstream GXP1610 VoIP phone.
Linux gxp1610_000b82e333e1 3.4.20-rt31-dvf-v1.3.1.2-rc1 #326 PREEMPT Wed May 30 12:10:10 PDT 2018 armv5tejl GNU/Linux
arecord /tmp/test.wav return
arecord: main:683: audio open error: No such file or directory
**** List of CAPTURE Hardware Devices ****
card 0: dspgdvf99css [dspg-dvf99-css], device 1: PCMFD PCMFD_codec_dai-1 []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: dspgdvf99css [dspg-dvf99-css], device 2: TRACE1 TRACE1_codec_dai-2 []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: dspgdvf99css [dspg-dvf99-css], device 3: CSS_USB_plug USB_plug-3 []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: dspgdvf99css [dspg-dvf99-css], device 4: TRACE2 TRACE2_codec_dai-4 []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: dspgdvf99css [dspg-dvf99-css], device 5: ANYFD ANYFD_codec_dai-5 []
Subdevices: 1/1
Subdevice #0: subdevice #0
User defined signal 1
card 0: dspgdvf99css [dspg-dvf99-css], device 1: PCMFD PCMFD_codec_dai-1 []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: dspgdvf99css [dspg-dvf99-css], device 2: TRACE1 TRACE1_codec_dai-2 []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: dspgdvf99css [dspg-dvf99-css], device 3: CSS_USB_plug USB_plug-3 []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: dspgdvf99css [dspg-dvf99-css], device 4: TRACE2 TRACE2_codec_dai-4 []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: dspgdvf99css [dspg-dvf99-css], device 5: ANYFD ANYFD_codec_dai-5 []
Subdevices: 1/1
Subdevice #0: subdevice #0
User defined signal 1
null
Discard all samples (playback) or generate zero samples (capture)
User defined signal 1
Discard all samples (playback) or generate zero samples (capture)
User defined signal 1
pcm.!default {
type hw
card 0
device 0
}
pcm.CssPlaybackHandset {
type hooks
slave.pcm {
type hw
card 0
device 0
}
hooks.0 {
type ctl_elems
hook_args [
{ name 'Output Mux0' value DAC0}
{ name 'Output Mux1' value DAC0_INV}
{ name 'Output1_diff Gain' value 4}
{ name 'Output0_diff Gain' value 4}
]
}
}
pcm.CssPlaybackHeadset {
type hooks
slave.pcm {
type hw
card 0
device 0
}
hooks.0 {
type ctl_elems
hook_args [
{ name 'Output Mux0' value DAC1}
{ name 'Output Mux1' value DAC1_INV}
{ name 'Output1_diff Gain' value 4}
{ name 'Output0_diff Gain' value 4}
]
}
}
pcm.CssPlaybackHandsfree {
type hooks
slave.pcm {
type hw
card 0
device 7
}
hooks.0 {
type ctl_elems
hook_args [
{ name 'DCLASS_EN' value on}
{ name 'DCLASS_SUP_MODE' value 1}
]
}
}
pcm.CssCaptureHandset {
type hooks
slave.pcm {
type hw
card 0
device 1
}
hooks.0 {
type ctl_elems
hook_args [
{ name 'Input Mux0' value DIFFIN1 }
{ name 'Input Mux1' value DIFFIN1 }
{ name 'DIFFIN1 Gain' value 16 }
{ name 'VREF_EN' value on }
{ name 'MICPWR1_EN' value on }
]
}
}
pcm.CssCaptureHandsfree {
type hooks
slave.pcm {
type hw
card 0
device 1
}
hooks.0 {
type ctl_elems
hook_args [
{ name 'Input Mux0' value DIFFIN0 }
{ name 'Input Mux1' value DIFFIN0 }
{ name 'DIFFIN0 Gain' value 16 }
{ name 'VREF_EN' value on }
{ name 'MICPWR1_EN' value on }
]
}
}
pcm.CssCaptureHeadset {
type hooks
slave.pcm {
type hw
card 0
device 1
}
hooks.0 {
type ctl_elems
hook_args [
{ name 'Input Mux0' value SINGIN0-SINGIN1 }
{ name 'Input Mux1' value SINGIN0-SINGIN1 }
{ name 'VREF_EN' value on }
{ name 'MICPWR0_EN' value on }
]
}
}
pcm.CssTrace {
type plug
slave.pcm {
type hw
card 0
device 2
}
}
pcm.CSR_Playback_Bluetooth {
type hooks
slave.pcm {
type hw
card 1
device 0
rate 48000
}
hooks.0 {
type ctl_elems
hook_args [
]
}
}
pcm.CSR_Playback_Bluetooth_incall {
type hooks
slave.pcm {
type hw
card 1
device 0
rate 8000
}
hooks.0 {
type ctl_elems
hook_args [
{ name 'Telephony' value On }
]
}
}
pcm.CSR_Bluetooth-A2DP {
type hooks
slave.pcm {
type hw
card 1
device 0
rate 48000
}
hooks.0 {
type ctl_elems
hook_args [
]
}
}
pcm.CSR_Capture_Bluetooth {
type hooks
slave.pcm {
type hw
card 1
device 0
}
hooks.0 {
type ctl_elems
hook_args [
]
}
}
type hw
card 0
device 0
}
pcm.CssPlaybackHandset {
type hooks
slave.pcm {
type hw
card 0
device 0
}
hooks.0 {
type ctl_elems
hook_args [
{ name 'Output Mux0' value DAC0}
{ name 'Output Mux1' value DAC0_INV}
{ name 'Output1_diff Gain' value 4}
{ name 'Output0_diff Gain' value 4}
]
}
}
pcm.CssPlaybackHeadset {
type hooks
slave.pcm {
type hw
card 0
device 0
}
hooks.0 {
type ctl_elems
hook_args [
{ name 'Output Mux0' value DAC1}
{ name 'Output Mux1' value DAC1_INV}
{ name 'Output1_diff Gain' value 4}
{ name 'Output0_diff Gain' value 4}
]
}
}
pcm.CssPlaybackHandsfree {
type hooks
slave.pcm {
type hw
card 0
device 7
}
hooks.0 {
type ctl_elems
hook_args [
{ name 'DCLASS_EN' value on}
{ name 'DCLASS_SUP_MODE' value 1}
]
}
}
pcm.CssCaptureHandset {
type hooks
slave.pcm {
type hw
card 0
device 1
}
hooks.0 {
type ctl_elems
hook_args [
{ name 'Input Mux0' value DIFFIN1 }
{ name 'Input Mux1' value DIFFIN1 }
{ name 'DIFFIN1 Gain' value 16 }
{ name 'VREF_EN' value on }
{ name 'MICPWR1_EN' value on }
]
}
}
pcm.CssCaptureHandsfree {
type hooks
slave.pcm {
type hw
card 0
device 1
}
hooks.0 {
type ctl_elems
hook_args [
{ name 'Input Mux0' value DIFFIN0 }
{ name 'Input Mux1' value DIFFIN0 }
{ name 'DIFFIN0 Gain' value 16 }
{ name 'VREF_EN' value on }
{ name 'MICPWR1_EN' value on }
]
}
}
pcm.CssCaptureHeadset {
type hooks
slave.pcm {
type hw
card 0
device 1
}
hooks.0 {
type ctl_elems
hook_args [
{ name 'Input Mux0' value SINGIN0-SINGIN1 }
{ name 'Input Mux1' value SINGIN0-SINGIN1 }
{ name 'VREF_EN' value on }
{ name 'MICPWR0_EN' value on }
]
}
}
pcm.CssTrace {
type plug
slave.pcm {
type hw
card 0
device 2
}
}
pcm.CSR_Playback_Bluetooth {
type hooks
slave.pcm {
type hw
card 1
device 0
rate 48000
}
hooks.0 {
type ctl_elems
hook_args [
]
}
}
pcm.CSR_Playback_Bluetooth_incall {
type hooks
slave.pcm {
type hw
card 1
device 0
rate 8000
}
hooks.0 {
type ctl_elems
hook_args [
{ name 'Telephony' value On }
]
}
}
pcm.CSR_Bluetooth-A2DP {
type hooks
slave.pcm {
type hw
card 1
device 0
rate 48000
}
hooks.0 {
type ctl_elems
hook_args [
]
}
}
pcm.CSR_Capture_Bluetooth {
type hooks
slave.pcm {
type hw
card 1
device 0
}
hooks.0 {
type ctl_elems
hook_args [
]
}
}
# ALSA library configuration file
#
# pre-load the configuration files
@hooks [
{
func load
files [
{
@func concat
strings [
{ @func datadir }
"/alsa.conf.d/"
]
}
"/etc/asound.conf"
"~/.asoundrc"
]
errors false
}
]
# load card-specific configuration files (on request)
cards.@hooks [
{
func load
files [
{
@func concat
strings [
{ @func datadir }
"/cards/aliases.conf"
]
}
]
}
{
func load_for_all_cards
files [
{
@func concat
strings [
{ @func datadir }
"/cards/"
{ @func private_string }
".conf"
]
}
]
errors false
}
]
#
# defaults
#
# show all name hints also for definitions without hint {} section
defaults.namehint.showall off
# show just basic name hints
defaults.namehint.basic on
# show extended name hints
defaults.namehint.extended off
#
defaults.ctl.card 0
defaults.pcm.card 0
defaults.pcm.device 0
defaults.pcm.subdevice -1
defaults.pcm.nonblock 1
defaults.pcm.compat 0
defaults.pcm.minperiodtime 5000 # in us
defaults.pcm.ipc_key 5678293
defaults.pcm.ipc_gid audio
defaults.pcm.ipc_perm 0660
defaults.pcm.dmix.max_periods 0
defaults.pcm.dmix.rate 48000
defaults.pcm.dmix.format "unchanged"
defaults.pcm.dmix.card defaults.pcm.card
defaults.pcm.dmix.device defaults.pcm.device
defaults.pcm.dsnoop.card defaults.pcm.card
defaults.pcm.dsnoop.device defaults.pcm.device
defaults.pcm.front.card defaults.pcm.card
defaults.pcm.front.device defaults.pcm.device
defaults.pcm.rear.card defaults.pcm.card
defaults.pcm.rear.device defaults.pcm.device
defaults.pcm.center_lfe.card defaults.pcm.card
defaults.pcm.center_lfe.device defaults.pcm.device
defaults.pcm.side.card defaults.pcm.card
defaults.pcm.side.device defaults.pcm.device
defaults.pcm.surround40.card defaults.pcm.card
defaults.pcm.surround40.device defaults.pcm.device
defaults.pcm.surround41.card defaults.pcm.card
defaults.pcm.surround41.device defaults.pcm.device
defaults.pcm.surround50.card defaults.pcm.card
defaults.pcm.surround50.device defaults.pcm.device
defaults.pcm.surround51.card defaults.pcm.card
defaults.pcm.surround51.device defaults.pcm.device
defaults.pcm.surround71.card defaults.pcm.card
defaults.pcm.surround71.device defaults.pcm.device
defaults.pcm.iec958.card defaults.pcm.card
defaults.pcm.iec958.device defaults.pcm.device
defaults.pcm.modem.card defaults.pcm.card
defaults.pcm.modem.device defaults.pcm.device
# truncate files via file or tee PCM
defaults.pcm.file_format "raw"
defaults.pcm.file_truncate true
defaults.rawmidi.card 0
defaults.rawmidi.device 0
defaults.rawmidi.subdevice -1
defaults.hwdep.card 0
defaults.hwdep.device 0
defaults.timer.class 2
defaults.timer.sclass 0
defaults.timer.card 0
defaults.timer.device 0
defaults.timer.subdevice 0
#
# PCM interface
#
# redirect to load-on-demand extended pcm definitions
pcm.cards cards.pcm
pcm.default cards.pcm.default
pcm.sysdefault cards.pcm.default
pcm.front cards.pcm.front
pcm.rear cards.pcm.rear
pcm.center_lfe cards.pcm.center_lfe
pcm.side cards.pcm.side
pcm.surround40 cards.pcm.surround40
pcm.surround41 cards.pcm.surround41
pcm.surround50 cards.pcm.surround50
pcm.surround51 cards.pcm.surround51
pcm.surround71 cards.pcm.surround71
pcm.iec958 cards.pcm.iec958
pcm.spdif iec958
pcm.hdmi cards.pcm.hdmi
pcm.dmix cards.pcm.dmix
pcm.dsnoop cards.pcm.dsnoop
pcm.modem cards.pcm.modem
pcm.phoneline cards.pcm.phoneline
pcm.hw {
@args [ CARD DEV SUBDEV ]
@args.CARD {
type string
default {
@func getenv
vars [
ALSA_PCM_CARD
ALSA_CARD
]
default {
@func refer
name defaults.pcm.card
}
}
}
@args.DEV {
type integer
default {
@func igetenv
vars [
ALSA_PCM_DEVICE
]
default {
@func refer
name defaults.pcm.device
}
}
}
@args.SUBDEV {
type integer
default {
@func refer
name defaults.pcm.subdevice
}
}
type hw
card $CARD
device $DEV
subdevice $SUBDEV
hint {
show {
@func refer
name defaults.namehint.extended
}
description "Direct hardware device without any conversions"
}
}
pcm.plughw {
@args [ CARD DEV SUBDEV ]
@args.CARD {
type string
default {
@func getenv
vars [
ALSA_PCM_CARD
ALSA_CARD
]
default {
@func refer
name defaults.pcm.card
}
}
}
@args.DEV {
type integer
default {
@func igetenv
vars [
ALSA_PCM_DEVICE
]
default {
@func refer
name defaults.pcm.device
}
}
}
@args.SUBDEV {
type integer
default {
@func refer
name defaults.pcm.subdevice
}
}
type plug
slave.pcm {
type hw
card $CARD
device $DEV
subdevice $SUBDEV
}
hint {
show {
@func refer
name defaults.namehint.extended
}
description "Hardware device with all software conversions"
}
}
pcm.plug {
@args [ SLAVE ]
@args.SLAVE {
type string
}
type plug
slave.pcm $SLAVE
}
pcm.shm {
@args [ SOCKET PCM ]
@args.SOCKET {
type string
}
@args.PCM {
type string
}
type shm
server $SOCKET
pcm $PCM
}
pcm.tee {
@args [ SLAVE FILE FORMAT ]
@args.SLAVE {
type string
}
@args.FILE {
type string
}
@args.FORMAT {
type string
default {
@func refer
name defaults.pcm.file_format
}
}
type file
slave.pcm $SLAVE
file $FILE
format $FORMAT
truncate {
@func refer
name defaults.pcm.file_truncate
}
}
pcm.file {
@args [ FILE FORMAT ]
@args.FILE {
type string
}
@args.FORMAT {
type string
default {
@func refer
name defaults.pcm.file_format
}
}
type file
slave.pcm null
file $FILE
format $FORMAT
truncate {
@func refer
name defaults.pcm.file_truncate
}
}
pcm.null {
type null
hint {
show {
@func refer
name defaults.namehint.basic
}
description "Discard all samples (playback) or generate zero samples (capture)"
}
}
#
# Control interface
#
ctl.sysdefault {
type hw
card {
@func getenv
vars [
ALSA_CTL_CARD
ALSA_CARD
]
default {
@func refer
name defaults.ctl.card
}
}
}
ctl.default ctl.sysdefault
ctl.hw {
@args [ CARD ]
@args.CARD {
type string
default {
@func getenv
vars [
ALSA_CTL_CARD
ALSA_CARD
]
default {
@func refer
name defaults.ctl.card
}
}
}
type hw
card $CARD
}
ctl.shm {
@args [ SOCKET CTL ]
@args.SOCKET {
type string
}
@args.CTL {
type string
}
type shm
server $SOCKET
ctl $CTL
}
#
# RawMidi interface
#
rawmidi.default {
type hw
card {
@func getenv
vars [
ALSA_RAWMIDI_CARD
ALSA_CARD
]
default {
@func refer
name defaults.rawmidi.card
}
}
device {
@func igetenv
vars [
ALSA_RAWMIDI_DEVICE
]
default {
@func refer
name defaults.rawmidi.device
}
}
}
rawmidi.hw {
@args [ CARD DEV SUBDEV ]
@args.CARD {
type string
default {
@func getenv
vars [
ALSA_RAWMIDI_CARD
ALSA_CARD
]
default {
@func refer
name defaults.rawmidi.card
}
}
}
@args.DEV {
type integer
default {
@func igetenv
vars [
ALSA_RAWMIDI_DEVICE
]
default {
@func refer
name defaults.rawmidi.device
}
}
}
@args.SUBDEV {
type integer
default -1
}
type hw
card $CARD
device $DEV
subdevice $SUBDEV
hint {
description "Direct rawmidi driver device"
device $DEV
}
}
rawmidi.virtual {
@args [ MERGE ]
@args.MERGE {
type string
default 1
}
type virtual
merge $MERGE
}
#
# Sequencer interface
#
seq.default {
type hw
}
seq.hw {
type hw
}
#
# HwDep interface
#
hwdep.default {
type hw
card {
@func getenv
vars [
ALSA_HWDEP_CARD
ALSA_CARD
]
default {
@func refer
name defaults.hwdep.card
}
}
device {
@func igetenv
vars [
ALSA_HWDEP_DEVICE
]
default {
@func refer
name defaults.hwdep.device
}
}
}
hwdep.hw {
@args [ CARD DEV ]
@args.CARD {
type string
default {
@func getenv
vars [
ALSA_HWDEP_CARD
ALSA_CARD
]
default {
@func refer
name defaults.hwdep.card
}
}
}
@args.DEV {
type integer
default {
@func igetenv
vars [
ALSA_HWDEP_DEVICE
]
default {
@func refer
name defaults.hwdep.device
}
}
}
type hw
card $CARD
device $DEV
}
#
# Timer interface
#
timer_query.default {
type hw
}
timer_query.hw {
type hw
}
timer.default {
type hw
class {
@func refer
name defaults.timer.class
}
sclass {
@func refer
name defaults.timer.sclass
}
card {
@func refer
name defaults.timer.card
}
device {
@func refer
name defaults.timer.device
}
subdevice {
@func refer
name defaults.timer.subdevice
}
hint.description "Default direct hardware timer device"
}
timer.hw {
@args [ CLASS SCLASS CARD DEV SUBDEV ]
@args.CLASS {
type integer
default {
@func refer
name defaults.timer.class
}
}
@args.SCLASS {
type integer
default {
@func refer
name defaults.timer.sclass
}
}
@args.CARD {
type string
default {
@func refer
name defaults.timer.card
}
}
@args.DEV {
type integer
default {
@func refer
name defaults.timer.device
}
}
@args.SUBDEV {
type integer
default {
@func refer
name defaults.timer.subdevice
}
}
type hw
class $CLASS
sclass $SCLASS
card $CARD
device $DEV
subdevice $SUBDEV
}
#
# pre-load the configuration files
@hooks [
{
func load
files [
{
@func concat
strings [
{ @func datadir }
"/alsa.conf.d/"
]
}
"/etc/asound.conf"
"~/.asoundrc"
]
errors false
}
]
# load card-specific configuration files (on request)
cards.@hooks [
{
func load
files [
{
@func concat
strings [
{ @func datadir }
"/cards/aliases.conf"
]
}
]
}
{
func load_for_all_cards
files [
{
@func concat
strings [
{ @func datadir }
"/cards/"
{ @func private_string }
".conf"
]
}
]
errors false
}
]
#
# defaults
#
# show all name hints also for definitions without hint {} section
defaults.namehint.showall off
# show just basic name hints
defaults.namehint.basic on
# show extended name hints
defaults.namehint.extended off
#
defaults.ctl.card 0
defaults.pcm.card 0
defaults.pcm.device 0
defaults.pcm.subdevice -1
defaults.pcm.nonblock 1
defaults.pcm.compat 0
defaults.pcm.minperiodtime 5000 # in us
defaults.pcm.ipc_key 5678293
defaults.pcm.ipc_gid audio
defaults.pcm.ipc_perm 0660
defaults.pcm.dmix.max_periods 0
defaults.pcm.dmix.rate 48000
defaults.pcm.dmix.format "unchanged"
defaults.pcm.dmix.card defaults.pcm.card
defaults.pcm.dmix.device defaults.pcm.device
defaults.pcm.dsnoop.card defaults.pcm.card
defaults.pcm.dsnoop.device defaults.pcm.device
defaults.pcm.front.card defaults.pcm.card
defaults.pcm.front.device defaults.pcm.device
defaults.pcm.rear.card defaults.pcm.card
defaults.pcm.rear.device defaults.pcm.device
defaults.pcm.center_lfe.card defaults.pcm.card
defaults.pcm.center_lfe.device defaults.pcm.device
defaults.pcm.side.card defaults.pcm.card
defaults.pcm.side.device defaults.pcm.device
defaults.pcm.surround40.card defaults.pcm.card
defaults.pcm.surround40.device defaults.pcm.device
defaults.pcm.surround41.card defaults.pcm.card
defaults.pcm.surround41.device defaults.pcm.device
defaults.pcm.surround50.card defaults.pcm.card
defaults.pcm.surround50.device defaults.pcm.device
defaults.pcm.surround51.card defaults.pcm.card
defaults.pcm.surround51.device defaults.pcm.device
defaults.pcm.surround71.card defaults.pcm.card
defaults.pcm.surround71.device defaults.pcm.device
defaults.pcm.iec958.card defaults.pcm.card
defaults.pcm.iec958.device defaults.pcm.device
defaults.pcm.modem.card defaults.pcm.card
defaults.pcm.modem.device defaults.pcm.device
# truncate files via file or tee PCM
defaults.pcm.file_format "raw"
defaults.pcm.file_truncate true
defaults.rawmidi.card 0
defaults.rawmidi.device 0
defaults.rawmidi.subdevice -1
defaults.hwdep.card 0
defaults.hwdep.device 0
defaults.timer.class 2
defaults.timer.sclass 0
defaults.timer.card 0
defaults.timer.device 0
defaults.timer.subdevice 0
#
# PCM interface
#
# redirect to load-on-demand extended pcm definitions
pcm.cards cards.pcm
pcm.default cards.pcm.default
pcm.sysdefault cards.pcm.default
pcm.front cards.pcm.front
pcm.rear cards.pcm.rear
pcm.center_lfe cards.pcm.center_lfe
pcm.side cards.pcm.side
pcm.surround40 cards.pcm.surround40
pcm.surround41 cards.pcm.surround41
pcm.surround50 cards.pcm.surround50
pcm.surround51 cards.pcm.surround51
pcm.surround71 cards.pcm.surround71
pcm.iec958 cards.pcm.iec958
pcm.spdif iec958
pcm.hdmi cards.pcm.hdmi
pcm.dmix cards.pcm.dmix
pcm.dsnoop cards.pcm.dsnoop
pcm.modem cards.pcm.modem
pcm.phoneline cards.pcm.phoneline
pcm.hw {
@args [ CARD DEV SUBDEV ]
@args.CARD {
type string
default {
@func getenv
vars [
ALSA_PCM_CARD
ALSA_CARD
]
default {
@func refer
name defaults.pcm.card
}
}
}
@args.DEV {
type integer
default {
@func igetenv
vars [
ALSA_PCM_DEVICE
]
default {
@func refer
name defaults.pcm.device
}
}
}
@args.SUBDEV {
type integer
default {
@func refer
name defaults.pcm.subdevice
}
}
type hw
card $CARD
device $DEV
subdevice $SUBDEV
hint {
show {
@func refer
name defaults.namehint.extended
}
description "Direct hardware device without any conversions"
}
}
pcm.plughw {
@args [ CARD DEV SUBDEV ]
@args.CARD {
type string
default {
@func getenv
vars [
ALSA_PCM_CARD
ALSA_CARD
]
default {
@func refer
name defaults.pcm.card
}
}
}
@args.DEV {
type integer
default {
@func igetenv
vars [
ALSA_PCM_DEVICE
]
default {
@func refer
name defaults.pcm.device
}
}
}
@args.SUBDEV {
type integer
default {
@func refer
name defaults.pcm.subdevice
}
}
type plug
slave.pcm {
type hw
card $CARD
device $DEV
subdevice $SUBDEV
}
hint {
show {
@func refer
name defaults.namehint.extended
}
description "Hardware device with all software conversions"
}
}
pcm.plug {
@args [ SLAVE ]
@args.SLAVE {
type string
}
type plug
slave.pcm $SLAVE
}
pcm.shm {
@args [ SOCKET PCM ]
@args.SOCKET {
type string
}
@args.PCM {
type string
}
type shm
server $SOCKET
pcm $PCM
}
pcm.tee {
@args [ SLAVE FILE FORMAT ]
@args.SLAVE {
type string
}
@args.FILE {
type string
}
@args.FORMAT {
type string
default {
@func refer
name defaults.pcm.file_format
}
}
type file
slave.pcm $SLAVE
file $FILE
format $FORMAT
truncate {
@func refer
name defaults.pcm.file_truncate
}
}
pcm.file {
@args [ FILE FORMAT ]
@args.FILE {
type string
}
@args.FORMAT {
type string
default {
@func refer
name defaults.pcm.file_format
}
}
type file
slave.pcm null
file $FILE
format $FORMAT
truncate {
@func refer
name defaults.pcm.file_truncate
}
}
pcm.null {
type null
hint {
show {
@func refer
name defaults.namehint.basic
}
description "Discard all samples (playback) or generate zero samples (capture)"
}
}
#
# Control interface
#
ctl.sysdefault {
type hw
card {
@func getenv
vars [
ALSA_CTL_CARD
ALSA_CARD
]
default {
@func refer
name defaults.ctl.card
}
}
}
ctl.default ctl.sysdefault
ctl.hw {
@args [ CARD ]
@args.CARD {
type string
default {
@func getenv
vars [
ALSA_CTL_CARD
ALSA_CARD
]
default {
@func refer
name defaults.ctl.card
}
}
}
type hw
card $CARD
}
ctl.shm {
@args [ SOCKET CTL ]
@args.SOCKET {
type string
}
@args.CTL {
type string
}
type shm
server $SOCKET
ctl $CTL
}
#
# RawMidi interface
#
rawmidi.default {
type hw
card {
@func getenv
vars [
ALSA_RAWMIDI_CARD
ALSA_CARD
]
default {
@func refer
name defaults.rawmidi.card
}
}
device {
@func igetenv
vars [
ALSA_RAWMIDI_DEVICE
]
default {
@func refer
name defaults.rawmidi.device
}
}
}
rawmidi.hw {
@args [ CARD DEV SUBDEV ]
@args.CARD {
type string
default {
@func getenv
vars [
ALSA_RAWMIDI_CARD
ALSA_CARD
]
default {
@func refer
name defaults.rawmidi.card
}
}
}
@args.DEV {
type integer
default {
@func igetenv
vars [
ALSA_RAWMIDI_DEVICE
]
default {
@func refer
name defaults.rawmidi.device
}
}
}
@args.SUBDEV {
type integer
default -1
}
type hw
card $CARD
device $DEV
subdevice $SUBDEV
hint {
description "Direct rawmidi driver device"
device $DEV
}
}
rawmidi.virtual {
@args [ MERGE ]
@args.MERGE {
type string
default 1
}
type virtual
merge $MERGE
}
#
# Sequencer interface
#
seq.default {
type hw
}
seq.hw {
type hw
}
#
# HwDep interface
#
hwdep.default {
type hw
card {
@func getenv
vars [
ALSA_HWDEP_CARD
ALSA_CARD
]
default {
@func refer
name defaults.hwdep.card
}
}
device {
@func igetenv
vars [
ALSA_HWDEP_DEVICE
]
default {
@func refer
name defaults.hwdep.device
}
}
}
hwdep.hw {
@args [ CARD DEV ]
@args.CARD {
type string
default {
@func getenv
vars [
ALSA_HWDEP_CARD
ALSA_CARD
]
default {
@func refer
name defaults.hwdep.card
}
}
}
@args.DEV {
type integer
default {
@func igetenv
vars [
ALSA_HWDEP_DEVICE
]
default {
@func refer
name defaults.hwdep.device
}
}
}
type hw
card $CARD
device $DEV
}
#
# Timer interface
#
timer_query.default {
type hw
}
timer_query.hw {
type hw
}
timer.default {
type hw
class {
@func refer
name defaults.timer.class
}
sclass {
@func refer
name defaults.timer.sclass
}
card {
@func refer
name defaults.timer.card
}
device {
@func refer
name defaults.timer.device
}
subdevice {
@func refer
name defaults.timer.subdevice
}
hint.description "Default direct hardware timer device"
}
timer.hw {
@args [ CLASS SCLASS CARD DEV SUBDEV ]
@args.CLASS {
type integer
default {
@func refer
name defaults.timer.class
}
}
@args.SCLASS {
type integer
default {
@func refer
name defaults.timer.sclass
}
}
@args.CARD {
type string
default {
@func refer
name defaults.timer.card
}
}
@args.DEV {
type integer
default {
@func refer
name defaults.timer.device
}
}
@args.SUBDEV {
type integer
default {
@func refer
name defaults.timer.subdevice
}
}
type hw
class $CLASS
sclass $SCLASS
card $CARD
device $DEV
subdevice $SUBDEV
}
Speaker: Off
Earpiece2: Off
Earpiece1: Off
Onboard-Mic: Off
Headset-Mic: Off
Handset-Mic: Off
DCLASS: Off
DAC1: Off
DAC0: Off
ADC0: On
AMPOUT3_PGA: Off
AMPOUT2_PGA: Off
AMPOUT1_PGA: Off
AMPOUT0_PGA: Off
DIFFIN1_PGA: Off
DIFFIN0_PGA: Off
SINGIN1_PGA: Off
SINGIN0_PGA: On
Mic1 Bias: Off
Mic0 Bias: Off
PM State: On
Earpiece2: Off
Earpiece1: Off
Onboard-Mic: Off
Headset-Mic: Off
Handset-Mic: Off
DCLASS: Off
DAC1: Off
DAC0: Off
ADC0: On
AMPOUT3_PGA: Off
AMPOUT2_PGA: Off
AMPOUT1_PGA: Off
AMPOUT0_PGA: Off
DIFFIN1_PGA: Off
DIFFIN0_PGA: Off
SINGIN1_PGA: Off
SINGIN0_PGA: On
Mic1 Bias: Off
Mic0 Bias: Off
PM State: On
Speaker: Off
Earpiece2: Off
Earpiece1: Off
Onboard-Mic: Off
Headset-Mic: Off
Handset-Mic: Off
DCLASS: Off
DAC1: Off
DAC0: Off
ADC0: Off
AMPOUT3_PGA: Off
AMPOUT2_PGA: Off
AMPOUT1_PGA: Off
AMPOUT0_PGA: Off
DIFFIN1_PGA: Off
DIFFIN0_PGA: Off
SINGIN1_PGA: Off
SINGIN0_PGA: Off
Mic1 Bias: Off
Mic0 Bias: Off
PM State: On
Earpiece2: Off
Earpiece1: Off
Onboard-Mic: Off
Headset-Mic: Off
Handset-Mic: Off
DCLASS: Off
DAC1: Off
DAC0: Off
ADC0: Off
AMPOUT3_PGA: Off
AMPOUT2_PGA: Off
AMPOUT1_PGA: Off
AMPOUT0_PGA: Off
DIFFIN1_PGA: Off
DIFFIN0_PGA: Off
SINGIN1_PGA: Off
SINGIN0_PGA: Off
Mic1 Bias: Off
Mic0 Bias: Off
PM State: On