/* * Copyright (C) 2023 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ syntax = "proto2"; package com.android.car.audio; option java_multiple_files = true; message CarAudioDumpProto { message CarAudioConfiguration { optional bool use_dynamic_routing = 1; optional bool use_core_audio_volume = 2; optional bool use_core_audio_routing = 3; optional bool patch_api_enabled = 4; optional bool persist_master_mute_state = 5; optional bool use_hal_ducking_signals = 6; optional int32 key_event_timeout_ms = 7; optional string car_audio_configuration_path = 8; optional bool use_car_volume_group_muting = 9; optional bool use_car_volume_group_events = 10; optional bool use_fade_manager_configuration = 11; optional bool use_min_max_activation_volume = 12; optional bool use_isolated_focus_for_dynamic_devices = 13; } message CarAudioState { optional bool master_muted = 1; optional bool audio_enabled = 2; } optional CarAudioConfiguration configuration = 1; optional CarAudioState current_state = 2; message CarAudioAttributesProto { optional int32 usage = 1; optional int32 content_type = 2; } message CarAudioContextInfoProto { optional string name = 1; optional int32 id = 2; repeated CarAudioAttributesProto attributes = 3; } message CarVolumeProto { message CarAudioContextPriority { repeated CarAudioContextInfoProto contexts = 1; optional int32 priority = 2; } optional int32 audio_volume_adjustment_contexts_version = 1; optional int32 volume_key_event_timeout_ms = 2; repeated CarAudioContextPriority audio_context_priorities = 3; } optional CarVolumeProto car_volume = 3; message CarAudioContextProto { repeated CarAudioContextInfoProto car_audio_context_infos = 1; } optional CarAudioContextProto car_audio_context = 4; message CarVolumeGain { optional int32 min_gain_index = 1; optional int32 max_gain_index = 2; optional int32 default_gain_index = 3; optional int32 current_gain_index = 4; optional int32 min_activation_gain_index = 5; optional int32 max_activation_gain_index = 6; optional int32 activation_invocation_type = 7; } message CarAudioDeviceInfoProto { optional string address = 1; optional bool can_be_routed_with_dynamic_policy_mix_rule = 2; optional int32 sample_rate = 3; optional int32 encoding_format = 4; optional int32 channel_count = 5; optional CarVolumeGain volume_gain = 6; optional bool is_active = 7; } message CarVolumeGroupProto { message GainInfo { optional bool blocked = 1; optional bool blocked_gain_index = 2; optional bool limited = 3; optional bool limited_gain_index = 4; optional bool attenuated = 5; optional bool attenuated_gain_index = 6; optional bool hal_muted = 7; optional bool is_active = 8; } message ContextToAddress { optional string context = 1; optional string address = 2; } optional int32 id = 1; optional string name = 2; optional int32 zone_id = 3; optional int32 config_id = 4; optional bool muted = 5; optional int32 user_id = 6; optional bool persist_volume_group_mute_enabled = 7; optional CarVolumeGain volume_gain = 8; repeated ContextToAddress context_to_address_mappings = 9; repeated CarAudioDeviceInfoProto car_audio_device_infos = 10; repeated string reported_reasons = 11; optional GainInfo gain_infos = 12; } message CarAudioZoneConfigProto { optional string name = 1; optional int32 id = 2; optional int32 zone_id = 3; optional bool default = 4; repeated CarVolumeGroupProto volume_groups = 5; optional bool is_active = 6; optional bool is_selected = 7; optional bool is_fade_manager_config_enabled = 8; optional CarAudioFadeConfigurationProto default_car_audio_fade_configuration = 9; repeated AttrToCarAudioFadeConfiguration attr_to_car_audio_fade_configuration = 10; message AttrToCarAudioFadeConfiguration { optional CarAudioAttributesProto attributes = 1; optional CarAudioFadeConfigurationProto car_audio_fade_configuration = 2; } } message CarAudioZoneProto { optional string name = 1; optional int32 id = 2; optional bool primary_zone = 3; optional int32 current_zone_config_id = 4; repeated string input_audio_device_addresses = 5; repeated CarAudioZoneConfigProto zone_configs = 6; } repeated CarAudioZoneProto car_audio_zones = 5; message UserIdToAudioZone { optional int32 user_id = 1; optional int32 audio_zone_id = 2; } repeated UserIdToAudioZone user_id_to_audio_zone_mappings = 6; message AudioZoneToOccupantZone { optional int32 audio_zone_id = 1; optional int32 occupant_zone_id = 2; } repeated AudioZoneToOccupantZone audio_zone_to_occupant_zone_mappings = 7; message UidToAudioZone { optional int32 uid = 1; optional int32 audio_zone_id = 2; } repeated UidToAudioZone uid_to_audio_zone_mappings = 8; message CarAudioZoneFocusProto { message CarAudioFocusProto { message FocusInteractionProto { optional bool reject_navigation_on_call = 1; } message FocusEntryProto { optional string client_id = 1; optional CarAudioAttributesProto attributes = 2; optional bool receives_duck_events = 3; optional bool wants_pause_instead_of_ducking = 4; optional bool is_ducked = 5; optional bool is_unblocked = 6; repeated FocusEntryProto blockers = 7; } optional int32 zone_id = 1; optional bool focus_restricted = 2; optional bool external_focus_enabled = 3; optional FocusInteractionProto focus_interaction = 4; repeated FocusEntryProto focus_holders = 5; repeated FocusEntryProto focus_losers = 6; optional string delayed_focus = 7; } optional bool hasFocusCallback = 1; repeated CarAudioFocusProto car_audio_focuses = 2; } optional CarAudioZoneFocusProto focus_handler = 9; message HalAudioFocusProto { message HalFocusRequestsByZoneAndAttributes { optional int32 zone_id = 1; repeated string hal_focus_requests_by_attributes = 2; } repeated HalFocusRequestsByZoneAndAttributes hal_focus_requests_by_zone_and_attributes = 1; } optional HalAudioFocusProto hal_audio_focus = 10; message CarDuckingProto { repeated string tags = 1; message CarDuckingInfoProto { message PlaybackTrackMetaData { optional string usage = 1; optional int32 content_type = 2; repeated string tags = 3; } optional int32 zone_id = 1; repeated string addresses_to_duck = 2; repeated string addresses_to_unduck = 3; repeated PlaybackTrackMetaData playback_meta_data_holding_focus = 4; } repeated CarDuckingInfoProto current_ducking_infos = 2; } optional CarDuckingProto car_ducking = 11; message CarVolumeGroupMutingProto { message CarMutingInfo { optional int32 zone_id = 1; repeated string device_addresses_to_mute = 2; repeated string device_addresses_to_unmute = 3; } optional bool is_muting_restricted = 1; repeated CarMutingInfo last_muting_information = 2; } optional CarVolumeGroupMutingProto car_volume_group_muting = 12; message CarAudioPlaybackCallbackProto { message ZoneAudioPlaybackCallbackProto { message AudioDeviceAddressToConfig { optional string address = 1; optional string config = 2; } message AudioAttributesToStartTime { optional CarAudioAttributesProto audio_attributes = 1; optional int64 start_time = 2; } optional int32 zone_id = 1; repeated AudioDeviceAddressToConfig last_active_configs = 2; repeated AudioAttributesToStartTime audio_attributes_to_start_times = 3; } repeated ZoneAudioPlaybackCallbackProto zone_audio_playback_callbacks = 1; } optional CarAudioPlaybackCallbackProto car_audio_playback_callback = 13; message CarAudioMirrorRequestHandlerProto { message RequestIdToZones { optional int64 request_id = 1; repeated int32 zone_ids = 2; } message RequestIdToMirrorDevice { optional CarAudioDeviceInfoProto mirror_device = 1; optional int64 request_id = 2; } optional bool is_mirror_audio_enabled = 1; repeated CarAudioDeviceInfoProto mirror_device_infos = 2; optional int32 register_count = 3; repeated RequestIdToZones mirroring_configurations = 4; repeated RequestIdToMirrorDevice mirror_device_mappings = 5; } optional CarAudioMirrorRequestHandlerProto car_audio_mirror_request_handler = 14; message MediaRequestHandlerProto { message MediaRequestIdToCallback { optional int64 request_id = 1; optional string callback = 2; } message MediaRequestIdToApprover { optional int64 request_id = 1; optional string approver = 2; } optional int32 media_request_callback_count = 1; repeated string media_request_callbacks = 2; repeated string assigned_occupants = 3; repeated MediaRequestIdToCallback request_id_to_callback_mappings = 4; repeated MediaRequestIdToApprover request_id_to_approver_mappings = 5; } optional MediaRequestHandlerProto media_request_handler = 15; repeated CarAudioFadeConfigurationProto available_car_fade_configurations = 16; message CarAudioFadeConfigurationProto { message FadeManagerConfigurationProto { message VolumeShaperConfiguration { optional int32 duration = 1; } message UsagesToVolumeShaperConfiguration { optional int32 usage = 1; optional VolumeShaperConfiguration fade_out_vol_shaper_config = 2; optional VolumeShaperConfiguration fade_in_vol_shaper_config = 3; } message AttributeToVolumeShaperConfiguration { optional CarAudioAttributesProto attributes = 1; optional VolumeShaperConfiguration fade_out_vol_shaper_config = 2; optional VolumeShaperConfiguration fade_in_vol_shaper_config = 3; } optional int32 state = 1; repeated int32 fadeable_usages = 2; repeated int32 unfadeable_content_types = 3; repeated int32 unfadeable_uids = 4; repeated CarAudioAttributesProto unfadeable_attributes = 5; repeated UsagesToVolumeShaperConfiguration usages_to_volume_shaper_config = 6; repeated AttributeToVolumeShaperConfiguration attr_to_volume_shaper_config = 7; } optional string name = 1; optional FadeManagerConfigurationProto fade_manager_configuration = 2; } }