#!/bin/bash # SPDX-License-Identifier: Apache-2.0 # Copyright (C) 2021-present Fewtarius (https://github.com/fewtarius) . /etc/profile ### Set a custom device so we don't clobber it. set-audio set "CUSTOM (UNMANAGED)" set-audio esset "Master" cat </storage/.config/asound.conf pcm.!default { type plug slave.pcm "dmixer" } pcm.dmixer { type dmix ipc_key 1024 slave { pcm "hw:0,0" period_time 0 period_size 4096 buffer_size 131072 rate 96000 } bindings { 0 0 1 1 } } EOF if [ ! -e "/storage/.config/asound.state" ] then cat </storage/.config/asound.state state.Ultra { control.1 { iface MIXER name 'Master Playback Volume' value.0 223 value.1 223 comment { access 'read write' type INTEGER count 2 range '0 - 252' dbmin -9500 dbmax 0 dbvalue.0 -1094 dbvalue.1 -1094 } } control.2 { iface MIXER name 'Master Capture Volume' value.0 226 value.1 226 comment { access 'read write' type INTEGER count 2 range '0 - 255' dbmin -9500 dbmax 0 dbvalue.0 -1081 dbvalue.1 -1081 } } control.3 { iface MIXER name 'Mic Capture Gain' value.0 6 value.1 6 comment { access 'read write' type INTEGER count 2 range '0 - 15' dbmin -1800 dbmax 2700 dbvalue.0 0 dbvalue.1 0 } } control.4 { iface MIXER name 'TDMOUT_B Lane 0 Volume' value.0 0 value.1 0 comment { access 'read write' type INTEGER count 2 range '0 - 255' } } control.5 { iface MIXER name 'TDMOUT_B Lane 1 Volume' value.0 0 value.1 0 comment { access 'read write' type INTEGER count 2 range '0 - 255' } } control.6 { iface MIXER name 'TDMOUT_B Lane 2 Volume' value.0 0 value.1 0 comment { access 'read write' type INTEGER count 2 range '0 - 255' } } control.7 { iface MIXER name 'TDMOUT_B Lane 3 Volume' value.0 0 value.1 0 comment { access 'read write' type INTEGER count 2 range '0 - 255' } } control.8 { iface MIXER name 'TDMOUT_B Gain Enable Switch' value false comment { access 'read write' type BOOLEAN count 1 } } control.9 { iface MIXER name 'FRDDR_A SRC 1 EN Switch' value true comment { access 'read write' type BOOLEAN count 1 } } control.10 { iface MIXER name 'FRDDR_A SRC 2 EN Switch' value false comment { access 'read write' type BOOLEAN count 1 } } control.11 { iface MIXER name 'FRDDR_A SRC 3 EN Switch' value false comment { access 'read write' type BOOLEAN count 1 } } control.12 { iface MIXER name 'FRDDR_A SINK 1 SEL' value 'OUT 1' comment { access 'read write' type ENUMERATED count 1 item.0 'OUT 0' item.1 'OUT 1' item.2 'OUT 2' item.3 'OUT 3' item.4 'OUT 4' item.5 'OUT 5' item.6 'OUT 6' item.7 'OUT 7' } } control.13 { iface MIXER name 'FRDDR_A SINK 2 SEL' value 'OUT 0' comment { access 'read write' type ENUMERATED count 1 item.0 'OUT 0' item.1 'OUT 1' item.2 'OUT 2' item.3 'OUT 3' item.4 'OUT 4' item.5 'OUT 5' item.6 'OUT 6' item.7 'OUT 7' } } control.14 { iface MIXER name 'FRDDR_A SINK 3 SEL' value 'OUT 0' comment { access 'read write' type ENUMERATED count 1 item.0 'OUT 0' item.1 'OUT 1' item.2 'OUT 2' item.3 'OUT 3' item.4 'OUT 4' item.5 'OUT 5' item.6 'OUT 6' item.7 'OUT 7' } } control.15 { iface MIXER name 'Playback Mux' value HP comment { access 'read write' type ENUMERATED count 1 item.0 HP item.1 SPK } } control.16 { iface MIXER name 'TDMOUT_B SRC SEL' value 'IN 0' comment { access 'read write' type ENUMERATED count 1 item.0 'IN 0' item.1 'IN 1' item.2 'IN 2' } } } EOF fi alsactl restore -f /storage/.config/asound.state amixer sset 'FRDDR_A SINK 1 SEL' 'OUT 1' amixer sset 'FRDDR_A SRC 1 EN' 'on' amixer sset 'TDMOUT_B SRC SEL' 'IN 0' amixer -c0 sset "Playback Mux" "${DEVICE_PLAYBACK_PATH_SPK}" alsactl store -f /storage/.config/asound.state