audio: use vendor properties

This commit is contained in:
Konsta
2025-04-01 02:07:56 +03:00
parent d10016b71d
commit 6456ba251c
7 changed files with 18 additions and 8 deletions

View File

@@ -93,7 +93,7 @@ static int probe_pcm_out_card() {
char card_id[16]; char card_id[16];
char card_prop[PROPERTY_VALUE_MAX]; char card_prop[PROPERTY_VALUE_MAX];
property_get("persist.audio.device", card_prop, ""); property_get("persist.vendor.audio.device", card_prop, "");
for (int i = 0; i < 5; i++) { for (int i = 0; i < 5; i++) {
snprintf(card_node, sizeof(card_node), "/proc/asound/card%d/id", i); snprintf(card_node, sizeof(card_node), "/proc/asound/card%d/id", i);
@@ -121,18 +121,18 @@ static int probe_pcm_out_card() {
static int get_pcm_card() static int get_pcm_card()
{ {
char card[PROPERTY_VALUE_MAX]; char card[PROPERTY_VALUE_MAX];
property_get("persist.audio.pcm.card.auto", card, "false"); property_get("persist.vendor.audio.pcm.card.auto", card, "false");
if (!strcmp(card, "true")) if (!strcmp(card, "true"))
return probe_pcm_out_card(); return probe_pcm_out_card();
property_get("persist.audio.pcm.card", card, "0"); property_get("persist.vendor.audio.pcm.card", card, "0");
return atoi(card); return atoi(card);
} }
static int get_pcm_device() static int get_pcm_device()
{ {
char device[PROPERTY_VALUE_MAX]; char device[PROPERTY_VALUE_MAX];
property_get("persist.audio.pcm.device", device, "0"); property_get("persist.vendor.audio.pcm.device", device, "0");
return atoi(device); return atoi(device);
} }

View File

@@ -89,7 +89,7 @@ struct alsa_stream_out {
static void get_alsa_device_name(char *name) { static void get_alsa_device_name(char *name) {
char hdmi_device[PROPERTY_VALUE_MAX]; char hdmi_device[PROPERTY_VALUE_MAX];
property_get("persist.audio.hdmi.device", hdmi_device, "vc4hdmi0"); property_get("persist.vendor.audio.hdmi.device", hdmi_device, "vc4hdmi0");
// use card configured in vc4-hdmi.conf to get IEC958 subframe conversion // use card configured in vc4-hdmi.conf to get IEC958 subframe conversion
sprintf(name, "default:CARD=%s", hdmi_device); sprintf(name, "default:CARD=%s", hdmi_device);

View File

@@ -0,0 +1 @@
get_prop(hal_audio_default, vendor_audio_config_prop)

View File

@@ -1 +1,2 @@
vendor_internal_prop(vendor_audio_config_prop)
vendor_internal_prop(vendor_hdmi_config_prop) vendor_internal_prop(vendor_hdmi_config_prop)

View File

@@ -1,2 +1,9 @@
# Audio
persist.vendor.audio.device u:object_r:vendor_audio_config_prop:s0
persist.vendor.audio.hdmi.device u:object_r:vendor_audio_config_prop:s0
persist.vendor.audio.pcm.card.auto u:object_r:vendor_audio_config_prop:s0
persist.vendor.audio.pcm.card u:object_r:vendor_audio_config_prop:s0
persist.vendor.audio.pcm.device u:object_r:vendor_audio_config_prop:s0
# CEC # CEC
persist.vendor.hdmi.cec_device u:object_r:vendor_hdmi_config_prop:s0 persist.vendor.hdmi.cec_device u:object_r:vendor_hdmi_config_prop:s0

1
sepolicy/vendor_init.te Normal file
View File

@@ -0,0 +1 @@
set_prop(vendor_init, vendor_audio_config_prop)

View File

@@ -1,7 +1,7 @@
# Audio # Audio
persist.audio.device=jack persist.vendor.audio.device=jack
persist.audio.hdmi.device=vc4hdmi0 persist.vendor.audio.hdmi.device=vc4hdmi0
persist.audio.pcm.card.auto=true persist.vendor.audio.pcm.card.auto=true
ro.config.media_vol_default=20 ro.config.media_vol_default=20
ro.config.media_vol_steps=25 ro.config.media_vol_steps=25
ro.hardware.audio.primary=rpi ro.hardware.audio.primary=rpi