[О блоге] [наверх] [пред] [2019-01-05 16:12:51+03:00] [acbd6a153fbb4fb375be43d87a2ad055b80681e3]
Темы: [hard][music][tip]

Включение bitperfect звука в USB звуковухах

Долгие годы у меня была только одна USB-звуковуха, которая всегда при
подключении имела один и тот же "адрес" в sysctl дереве и делать
включение bitperfect-а в ней было тривиально:

    % cat /etc/devd/myaudio.conf
    attach 20 {
           device-name "uaudio[0-9]";
           action "/sbin/sysctl dev.pcm.3.bitperfect=1";
    };

теперь у меня появилась и USB-гарнитура, которая bitperfect не требует,
а порядок подключения может быть самый разный. Пока сделал вот такое
решение чтобы только ASUS звуковуху обрабатывать:

    % cat /etc/devd/myaudio.conf
    attach 20 {
            device-name "uaudio[0-9]";
            match "vendor" "^0x0b05$";
            match "product" "^0x17f3$";
            action "/etc/devd/myaudio-asus.sh $vendor $product";
    };

    % cat /etc/devd/myaudio-asus.sh
    #!/bin/sh

    [ $# -eq 2 ] || exit 1
    vendor=$1
    product=$2

    uaudio=$(sysctl dev.uaudio | sed -n "s/^dev\.uaudio\.\([^.]*\)\..*vendor=$vendor product=$product.*\$/\1/p")
    pcm=$(sysctl dev.pcm | sed -n "s/^dev\.pcm\.\([^.]*\)\.%parent: uaudio$uaudio\$/\1/p")
    /sbin/sysctl dev.pcm.$pcm.bitperfect=1

Конечно, читается не просто, но задача выполнена за короткий срок и
вполне себе работает. Я за такое решение, пускай не очень элегантное,
вместо того чтобы иметь невероятный по размерам и сложности framework
в виде поделий Поттеринга.

    [оставить комментарий]