fprintf(fp, "access : %s\n", assoc(pcm->access, snd_pcm_access_names));
fprintf(fp, "format : %s\n", assoc(pcm->format, snd_pcm_format_names));
fprintf(fp, "subformat : %s\n", assoc(pcm->subformat, snd_pcm_subformat_names));
- fprintf(fp, "channels : %d\n", pcm->channels);
- fprintf(fp, "rate : %d\n", pcm->rate);
- fprintf(fp, "exact rate : %g (%d/%d)\n", (double) pcm->rate_num / pcm->rate_den, pcm->rate_num, pcm->rate_den);
- fprintf(fp, "msbits : %d\n", pcm->msbits);
- fprintf(fp, "fragment_size: %ld\n", (long)pcm->fragment_size);
- fprintf(fp, "fragments : %d\n", pcm->fragments);
+ fprintf(fp, "channels : %u\n", pcm->channels);
+ fprintf(fp, "rate : %u\n", pcm->rate);
+ fprintf(fp, "exact rate : %g (%u/%u)\n", (double) pcm->rate_num / pcm->rate_den, pcm->rate_num, pcm->rate_den);
+ fprintf(fp, "msbits : %u\n", pcm->msbits);
+ fprintf(fp, "fragment_size: %lu\n", (long)pcm->fragment_size);
+ fprintf(fp, "fragments : %u\n", pcm->fragments);
return 0;
}
fprintf(fp, "subformat: %s\n", assoc(params->subformat, snd_pcm_subformat_names));
break;
case SND_PCM_HW_PARAM_CHANNELS:
- fprintf(fp, "channels: %d\n", params->channels);
+ fprintf(fp, "channels: %u\n", params->channels);
break;
case SND_PCM_HW_PARAM_RATE:
- fprintf(fp, "rate: %d\n", params->rate);
+ fprintf(fp, "rate: %u\n", params->rate);
break;
case SND_PCM_HW_PARAM_FRAGMENT_SIZE:
- fprintf(fp, "fragment_size: %ld\n", (long)params->fragment_size);
+ fprintf(fp, "fragment_size: %lu\n", (long)params->fragment_size);
break;
case SND_PCM_HW_PARAM_FRAGMENTS:
- fprintf(fp, "fragments: %d\n", params->fragments);
+ fprintf(fp, "fragments: %u\n", params->fragments);
break;
default:
assert(0);
{
unsigned int min, max;
snd_pcm_hw_info_par_get_minmax(info, param, &min, &max);
- printf("%d - %d", min, max);
+ if (min == max)
+ printf("%u", min);
+ else
+ printf("%u - %u", min, max);
break;
}
default:
int err;
params->fail_mask = 0;
- if (pcm->setup && pcm->mmap_channels &&
- (pcm->mmap_rw ||
- (pcm->access == SND_PCM_ACCESS_MMAP_INTERLEAVED ||
- pcm->access == SND_PCM_ACCESS_MMAP_NONINTERLEAVED ||
- pcm->access == SND_PCM_ACCESS_MMAP_COMPLEX))) {
+ if (pcm->mmap_channels) {
err = snd_pcm_munmap(pcm);
if (err < 0)
return err;
assert(sinfo.channels_min == sinfo.channels_max);
sparams.channels = sinfo.channels_min;
+ snd_pcm_plug_clear(pcm);
err = snd_pcm_plug_insert_plugins(pcm, params, &sparams);
if (err < 0)
return err;
return snd_pcm_channel_info(plug->slave, info);
}
-static int snd_pcm_plug_mmap(snd_pcm_t *pcm)
+static int snd_pcm_plug_mmap(snd_pcm_t *pcm ATTRIBUTE_UNUSED)
{
+#if 0
snd_pcm_plugin_t *plug = pcm->private;
return snd_pcm_mmap(plug->slave);
+#endif
+ return 0;
}
-static int snd_pcm_plug_munmap(snd_pcm_t *pcm)
+static int snd_pcm_plug_munmap(snd_pcm_t *pcm ATTRIBUTE_UNUSED)
{
+#if 0
snd_pcm_plugin_t *plug = pcm->private;
return snd_pcm_munmap(plug->slave);
+#endif
+ return 0;
}
static void snd_pcm_plug_dump(snd_pcm_t *pcm, FILE *fp)