Access Flags

The access flag is the bitmask which specifies the access type of the given control. The default access type is SNDRV_CTL_ELEM_ACCESS_READWRITE, which means both read and write are allowed to this control. When the access flag is omitted (i.e. = 0), it is considered as READWRITE access as default.

When the control is read-only, pass SNDRV_CTL_ELEM_ACCESS_READ instead. In this case, you don't have to define the put callback. Similarly, when the control is write-only (although it's a rare case), you can use the WRITE flag instead, and you don't need the get callback.

If the control value changes frequently (e.g. the VU meter), VOLATILE flag should be given. This means that the control may be changed without notification. Applications should poll such a control constantly.

When the control is inactive, set the INACTIVE flag, too. There are LOCK and OWNER flags to change the write permissions.