[alsa-devel] [PATCH 3/6] topology: Parse flags for PCM
Lin, Mengdong
mengdong.lin at intel.com
Sat Nov 5 17:54:02 CET 2016
> -----Original Message-----
> From: Takashi Iwai [mailto:tiwai at suse.de]
> Sent: Saturday, November 5, 2016 11:46 PM
> >
> > +/* parse a flag bit of the given mask */ static int
> > +parse_flag(snd_config_t *n, unsigned int mask_in,
> > + unsigned int *mask, unsigned int *flags) {
> > + const char *val = NULL;
> > +
> > + if (snd_config_get_string(n, &val) < 0)
> > + return -EINVAL;
> > +
> > + *mask |= mask_in;
> > + if (strcmp(val, "true") == 0)
> > + *flags |= mask_in;
> > + else
> > + *flags &= ~mask_in;
>
> This can be simplified with snd_config_get_bool().
Okay, I'll fix it in my later patches. Thank you so much for the review!
There will be ~15 patches left for topology user space. I'll split into 2 series.
Regards
Mengdong
>
>
> thanks,
>
> Takashi
>
> > +
> > + return 0;
> > +}
> > +
> > /* Parse pcm (for front end DAI & DAI link) */ int
> > tplg_parse_pcm(snd_tplg_t *tplg,
> > snd_config_t *cfg, void *private ATTRIBUTE_UNUSED) @@ -430,6
> +448,34
> > @@ int tplg_parse_pcm(snd_tplg_t *tplg,
> > return err;
> > continue;
> > }
> > +
> > + /* flags */
> > + if (strcmp(id, "symmetric_rates") == 0) {
> > + err = parse_flag(n,
> > +
> SND_SOC_TPLG_LNK_FLGBIT_SYMMETRIC_RATES,
> > + &pcm->flag_mask, &pcm->flags);
> > + if (err < 0)
> > + return err;
> > + continue;
> > + }
> > +
> > + if (strcmp(id, "symmetric_channels") == 0) {
> > + err = parse_flag(n,
> > +
> SND_SOC_TPLG_LNK_FLGBIT_SYMMETRIC_CHANNELS,
> > + &pcm->flag_mask, &pcm->flags);
> > + if (err < 0)
> > + return err;
> > + continue;
> > + }
> > +
> > + if (strcmp(id, "symmetric_sample_bits") == 0) {
> > + err = parse_flag(n,
> > +
> SND_SOC_TPLG_LNK_FLGBIT_SYMMETRIC_SAMPLEBITS,
> > + &pcm->flag_mask, &pcm->flags);
> > + if (err < 0)
> > + return err;
> > + continue;
> > + }
> > }
> >
> > return 0;
> > @@ -610,6 +656,9 @@ int tplg_add_pcm_object(snd_tplg_t *tplg,
> snd_tplg_obj_template_t *t)
> > tplg_add_stream_caps(&pcm->caps[i], pcm_tpl-
> >caps[i]);
> > }
> >
> > + pcm->flag_mask = pcm_tpl->flag_mask;
> > + pcm->flags = pcm_tpl->flags;
> > +
> > pcm->num_streams = pcm_tpl->num_streams;
> > for (i = 0; i < pcm_tpl->num_streams; i++)
> > tplg_add_stream_object(&pcm->stream[i], &pcm_tpl-
> >stream[i]);
> > --
> > 2.7.4
> >
More information about the Alsa-devel
mailing list