Initial Import
[profile/ivi/alsa-lib.git] / src / pcm / pcm_ext_parm.h
1 /* hw_params */
2 struct snd_ext_parm {
3         unsigned int min, max;
4         unsigned int num_list;
5         unsigned int *list;
6         unsigned int active: 1;
7         unsigned int integer: 1;
8 };
9
10 static inline snd_mask_t *hw_param_mask(snd_pcm_hw_params_t *params,
11                                         snd_pcm_hw_param_t var)
12 {
13         return &params->masks[var - SND_PCM_HW_PARAM_FIRST_MASK];
14 }
15
16 static inline snd_interval_t *hw_param_interval(snd_pcm_hw_params_t *params,
17                                                 snd_pcm_hw_param_t var)
18 {
19         return &params->intervals[var - SND_PCM_HW_PARAM_FIRST_INTERVAL];
20 }
21
22 /* make local functions really local */
23 #define snd_ext_parm_set_minmax \
24         snd1_ext_parm_set_minmax
25 #define snd_ext_parm_set_list \
26         snd1_ext_parm_set_list
27 #define snd_ext_parm_clear \
28         snd1_ext_parm_clear
29 #define snd_interval_list \
30         snd1_interval_list
31 #define snd_ext_parm_interval_refine \
32         snd1_ext_parm_interval_refine
33 #define snd_ext_parm_mask_refine \
34         snd1_ext_parm_mask_refine
35
36 int snd_ext_parm_set_minmax(struct snd_ext_parm *parm, unsigned int min, unsigned int max);
37 int snd_ext_parm_set_list(struct snd_ext_parm *parm, unsigned int num_list, const unsigned int *list);
38 void snd_ext_parm_clear(struct snd_ext_parm *parm);
39 int snd_interval_list(snd_interval_t *ival, int num_list, unsigned int *list);
40 int snd_ext_parm_interval_refine(snd_interval_t *ival, struct snd_ext_parm *parm, int type);
41 int snd_ext_parm_mask_refine(snd_mask_t *mask, struct snd_ext_parm *parm, int type);