Можно использовать local_options
опция автоматически восстановить опции, когда функция выходит. Это только было бы соответствующим, если Ваша функция не вносит никакие другие изменения опции, которые Вы намереваетесь сохранить после того, как функция закончилась.
Таким образом Вы могли записать свою функцию как это:
do_something() {
setopt local_options extended_glob
⋮
}
Если у Вас есть некоторая другая опция, которую Вы хотите сохранить после того, как функция возвратилась, можно использовать options
ассоциативный массив (от zsh/parameter
модуль), чтобы легко проверить и управлять отдельными опциями:
do_something() {
local eg=$options[extended_glob]
setopt extended_glob
⋮
options[extended_glob]=$eg
}
Если этот модуль не доступен в Вашей установке, то можно использовать -o
тест:
do_something() {
local eg=no
[[ -o extended_glob ]] && eg=
setopt extended_glob
⋮
setopt ${eg}extended_glob
}
Если я понимаю правильно, Вы хотите воспроизведение на своей сборке в sondcard и получаете (микрофон) от внешнего USB-устройства.
Ваше внешнее устройство перечислено как карта 2: устройство 0 и Ваша сборка в звуковой карте как карта 0: устройство 0
Я думаю Ваш asound.conf
должен выглядеть примерно так:
pcm.!default
{
playback.pcm
{
type hw
card 0
device 0
}
playback.capture
{
type hw
card 2
device 0
}
}
plug:default:C-Media USB Audio Device
для USB-устройства иplug:default:HDA Intel PCH
для встроенного устройства. – AcId 21.05.2013, 12:51card
иdevice
строки должны быть удалены путем добавления тех строк право? – 21.05.2013, 13:03asound.conf
и именование устройств. – AcId 21.05.2013, 14:05