int snd_ctl_elem_info_is_locked(const snd_ctl_elem_info_t *obj);
+int snd_ctl_elem_info_is_owner(const snd_ctl_elem_info_t *obj);
+
int snd_ctl_elem_info_is_indirect(const snd_ctl_elem_info_t *obj);
+pid_t snd_ctl_elem_info_get_owner(const snd_ctl_elem_info_t *obj);
+
unsigned int snd_ctl_elem_info_get_count(const snd_ctl_elem_info_t *obj);
long snd_ctl_elem_info_get_min(const snd_ctl_elem_info_t *obj);
}
/**
- * \brief Get info about status from a CTL element id/info
+ * \brief Get info whether an element is locked
* \param obj CTL element id/info
* \return 0 if element value is currently changeable, 1 if it's locked by another application
*/
}
/**
+ * \brief Get info if I own an element
+ * \param obj CTL element id/info
+ * \return 0 if element value is currently changeable, 1 if it's locked by another application
+ */
+int snd_ctl_elem_info_is_owner(const snd_ctl_elem_info_t *obj)
+{
+ assert(obj);
+ return !!(obj->access & SNDRV_CTL_ELEM_ACCESS_OWNER);
+}
+
+/**
* \brief Get info about values passing policy from a CTL element id/info
* \param obj CTL element id/info
* \return 0 if element value need to be passed by contents, 1 if need to be passed with a pointer
}
/**
+ * \brief Get owner of a locked element
+ * \param obj CTL element id/info
+ * \return value entries count
+ */
+pid_t snd_ctl_elem_info_get_owner(const snd_ctl_elem_info_t *obj)
+{
+ assert(obj);
+ return obj->owner;
+}
+
+/**
* \brief Get number of value entries from a CTL element id/info
* \param obj CTL element id/info
* \return value entries count