Lines Matching full:matrix
37 * + very generic and compact, provided that the supplied matrix map is in a
43 * + 'matrix' is kind of 0x7a69, due to prolong mental block.
80 } matrix[SND_CHN_T_MAX + 1]; member
132 for (i = 0; info->matrix[i].chn[0] != SND_CHN_T_EOF; \
134 if (info->matrix[i].chn[0] == SND_CHN_T_NULL) { \
139 } else if (info->matrix[i].chn[1] == \
142 src + info->matrix[i].chn[0]); \
151 info->matrix[i].chn[j] != SND_CHN_T_EOF; \
154 src + info->matrix[i].chn[j]); \
158 accum = (accum * info->matrix[i].mul) >> \
159 info->matrix[i].shift; \
233 for (i = 0; i < nitems(info->matrix); i++) { in feed_matrix_reset()
235 j < (sizeof(info->matrix[i].chn) / in feed_matrix_reset()
236 sizeof(info->matrix[i].chn[0])); j++) { in feed_matrix_reset()
237 info->matrix[i].chn[j] = SND_CHN_T_EOF; in feed_matrix_reset()
239 info->matrix[i].mul = 1; in feed_matrix_reset()
240 info->matrix[i].shift = 0; in feed_matrix_reset()
254 for (i = 0; info->matrix[i].chn[0] != SND_CHN_T_EOF; in feed_matrix_apply_generic()
256 if (info->matrix[i].chn[0] == SND_CHN_T_NULL) { in feed_matrix_apply_generic()
260 } else if (info->matrix[i].chn[1] == in feed_matrix_apply_generic()
262 v = info->rd(src + info->matrix[i].chn[0]); in feed_matrix_apply_generic()
270 info->matrix[i].chn[j] != SND_CHN_T_EOF; in feed_matrix_apply_generic()
272 v = info->rd(src + info->matrix[i].chn[j]); in feed_matrix_apply_generic()
276 accum = (accum * info->matrix[i].mul) >> in feed_matrix_apply_generic()
277 info->matrix[i].shift; in feed_matrix_apply_generic()
308 * If both in and out are part of standard matrix and identical, skip in feed_matrix_setup()
316 * Special case for mono input matrix. If the output supports in feed_matrix_setup()
335 info->matrix[ch].chn[0] = SND_CHN_T_NULL; in feed_matrix_setup()
345 info->matrix[ch].chn[j++] = in feed_matrix_setup()
348 info->matrix[ch].chn[j++] = in feed_matrix_setup()
369 info->matrix[ch].mul = mul; in feed_matrix_setup()
370 info->matrix[ch].shift = shift; in feed_matrix_setup()
377 for (i = 0; info->matrix[i].chn[0] != SND_CHN_T_EOF; i++) { in feed_matrix_setup()
379 for (j = 0; info->matrix[i].chn[j] != SND_CHN_T_EOF; j++) { in feed_matrix_setup()
383 (info->matrix[i].chn[j] == SND_CHN_T_NULL) ? in feed_matrix_setup()
384 0xffffffff : info->matrix[i].chn[j] / info->bps); in feed_matrix_setup()
387 info->matrix[i].mul, info->matrix[i].shift); in feed_matrix_setup()
474 if (info->matrix[0].chn[0] == SND_CHN_T_EOF) in feed_matrix_feed()
569 * feeder_matrix_default_channel_map(): Ditto, but return matrix map
586 * matrix.
613 * feeder_matrix_format_id(): For a given audio format, return its matrix
634 * feeder_matrix_format_map(): For a given audio format, return its matrix
655 * feeder_matrix_id_map(): For a given matrix id, return its matrix map.
802 /* channel not exist in matrix */ in feeder_matrix_oss_set_channel_order()