Lines Matching refs:params

826 static inline snd_mask_t *hw_param_mask(snd_pcm_hw_params_t *params,
829 return &params->masks[var - SND_PCM_HW_PARAM_FIRST_MASK];
832 static inline snd_interval_t *hw_param_interval(snd_pcm_hw_params_t *params,
835 return &params->intervals[var - SND_PCM_HW_PARAM_FIRST_INTERVAL];
838 static int hw_param_interval_refine_one(snd_pcm_hw_params_t *params,
844 if (!(params->rmask & (1<<var))) /* nothing to do? */
846 i = hw_param_interval(params, var);
852 params->cmask |= 1<<var;
856 static int hw_param_interval_refine_minmax(snd_pcm_hw_params_t *params,
866 return hw_param_interval_refine_one(params, var, &t);
894 int snd_pcm_direct_hw_refine(snd_pcm_t *pcm, snd_pcm_hw_params_t *params)
909 snd_pcm_hw_params_dump(params, log);
911 if (params->rmask & (1<<SND_PCM_HW_PARAM_ACCESS)) {
912 if (snd_mask_empty(hw_param_mask(params, SND_PCM_HW_PARAM_ACCESS))) {
916 if (snd_mask_refine(hw_param_mask(params, SND_PCM_HW_PARAM_ACCESS), &access))
917 params->cmask |= 1<<SND_PCM_HW_PARAM_ACCESS;
919 if (params->rmask & (1<<SND_PCM_HW_PARAM_FORMAT)) {
920 if (snd_mask_empty(hw_param_mask(params, SND_PCM_HW_PARAM_FORMAT))) {
924 if (snd_mask_refine_set(hw_param_mask(params, SND_PCM_HW_PARAM_FORMAT),
926 params->cmask |= 1<<SND_PCM_HW_PARAM_FORMAT;
928 //snd_mask_none(hw_param_mask(params, SND_PCM_HW_PARAM_SUBFORMAT));
929 if (params->rmask & (1<<SND_PCM_HW_PARAM_CHANNELS)) {
930 if (snd_interval_empty(hw_param_interval(params, SND_PCM_HW_PARAM_CHANNELS))) {
934 err = snd_interval_refine_set(hw_param_interval(params, SND_PCM_HW_PARAM_CHANNELS), dshare->channels);
938 err = hw_param_interval_refine_one(params, SND_PCM_HW_PARAM_RATE,
944 err = hw_param_interval_refine_one(params, SND_PCM_HW_PARAM_PERIOD_SIZE,
948 err = hw_param_interval_refine_one(params, SND_PCM_HW_PARAM_PERIOD_TIME,
952 err = hw_param_interval_refine_one(params, SND_PCM_HW_PARAM_BUFFER_SIZE,
956 err = hw_param_interval_refine_one(params, SND_PCM_HW_PARAM_BUFFER_TIME,
960 } else if (params->rmask & ((1<<SND_PCM_HW_PARAM_PERIODS)|
975 err = hw_param_interval_refine_minmax(params, SND_PCM_HW_PARAM_BUFFER_SIZE,
991 err = hw_param_interval_refine_one(params, SND_PCM_HW_PARAM_PERIOD_SIZE,
995 err = hw_param_interval_refine_one(params, SND_PCM_HW_PARAM_PERIOD_TIME,
1001 err = hw_param_interval_refine_minmax(params, SND_PCM_HW_PARAM_PERIODS,
1006 err = snd_pcm_hw_refine_soft(pcm, params);
1010 err = snd_interval_step(hw_param_interval(params, SND_PCM_HW_PARAM_PERIOD_SIZE),
1016 params->rmask |= (1 << SND_PCM_HW_PARAM_PERIOD_SIZE);
1019 dshare->timer_ticks = hw_param_interval(params, SND_PCM_HW_PARAM_PERIOD_SIZE)->max / dshare->slave_period_size;
1020 params->info = dshare->shmptr->s.info;
1023 snd_pcm_hw_params_dump(params, log);
1029 int snd_pcm_direct_hw_params(snd_pcm_t *pcm, snd_pcm_hw_params_t * params)
1033 params->info = dmix->shmptr->s.info;
1034 params->rate_num = dmix->shmptr->s.rate;
1035 params->rate_den = 1;
1036 params->fifo_size = 0;
1037 params->msbits = dmix->shmptr->s.msbits;
1047 int snd_pcm_direct_sw_params(snd_pcm_t *pcm, snd_pcm_sw_params_t *params)
1049 if (params->tstamp_type != pcm->tstamp_type)
1197 int snd_pcm_direct_initialize_slave(snd_pcm_direct_t *dmix, snd_pcm_t *spcm, struct slave_params *params)
1226 if (params->format == SND_PCM_FORMAT_UNKNOWN)
1230 params->format);
1262 params->format = format;
1265 (unsigned int *)&params->channels);
1271 (unsigned int *)&params->rate, 0);
1278 if (params->buffer_time > 0) {
1280 &hw_params, (unsigned int *)&params->buffer_time, 0);
1285 } else if (params->buffer_size > 0) {
1287 &hw_params, (snd_pcm_uframes_t *)&params->buffer_size);
1296 if (params->period_time > 0) {
1298 &hw_params, (unsigned int *)&params->period_time, 0);
1303 } else if (params->period_size > 0) {
1305 &hw_params, (snd_pcm_uframes_t *)&params->period_size,
1313 if (buffer_is_not_initialized && params->periods > 0) {
1314 unsigned int periods = params->periods;
1316 &hw_params, &params->periods, 0);
1321 if (params->periods == 1) {
1322 params->periods = periods;
1323 if (params->period_time > 0) {
1324 params->period_time /= 2;
1326 } else if (params->period_size > 0) {
1327 params->period_size /= 2;
1337 SNDERR("unable to install hw params");
1415 SNDERR("unable to install sw params (please upgrade to 0.9.0rc8+ driver)");
1632 struct slave_params *params ATTRIBUTE_UNUSED)
1656 snd_timer_params_t params = {0};
1660 snd_timer_params_set_auto_start(&params, 1);
1662 snd_timer_params_set_early_event(&params, 1);
1663 snd_timer_params_set_ticks(&params, dmix->timer_ticks);
1667 INTERNAL(snd_timer_params_set_filter)(&params, filter);
1669 ret = snd_timer_params(dmix->timer, &params);
1722 struct slave_params *params,
1774 if (schannel < 0 || schannel >= params->channels) {
2148 struct slave_params *params, snd_pcm_stream_t stream, int mode)
2158 ret = snd_pcm_direct_parse_bindings(dmix, params, opts->bindings);