# # Mixer kcontrol class. All attributes defined herein are namespaced # by alsatplg to "Object.Control.mixer.N.attribute_name" # # Usage: this component can be used by instantiating it in the parent object. i.e. # # Object.Control.mixer."N" { # index 1 # name "1 Master Playback Volume" # mas 32 # Object.Base.channel."fl" { # shift 0 # reg 0 # } # Object.Base.channel."fr" { # shift 1 # reg 1 # } # Object.Base.ops."ctl" { # info "volsw" # get "258" # put "258" # } # } # # Where N is the unique instance number for the buffer object within the same alsaconf node. # The mixer control object should also include the ops, channels and tlv objects in the object # instance Class.Control."mixer" { # # Pipeline ID for the mixer object # DefineAttribute."index" {} # # Instance of mixer object in the same alsaconf node # DefineAttribute."instance" {} # # Mixer name. A mixer object is included in the built topology only if it is given a # name # DefineAttribute."name" { type "string" } # # Max volume setting # DefineAttribute."max" {} DefineAttribute."invert" { type "string" constraints { !valid_values [ "true" "false" ] } } # use mute LED DefineAttribute."mute_led_use" { token_ref "sof_tkn_mute_led.word" } # LED direction DefineAttribute."mute_led_direction" { token_ref "sof_tkn_mute_led.word" } # # access control for mixer # DefineAttribute."access" { type "compound" constraints { !valid_values [ "read_write" "tlv_read_write" "read" "write" "volatile" "tlv_read" "tlv_write" "tlv_command" "inactive" "lock" "owner" "tlv_callback" ] } } attributes { # # The Mixer object name would be constructed using the index and instance arguments. # For ex: "mixer.1.1" or "mixer.10.2" etc. # !constructor [ "index" "instance" ] !mandatory [ "max" ] # # mixer control objects instantiated within the same alsaconf node must have unique # index attribute # unique "instance" } # Default attribute values for mixer control invert "false" mute_led_use 0 mute_led_direction 0 }