• Home
  • Raw
  • Download

Lines Matching refs:cmd

40 struct cmd {  struct
51 void cmd_init(struct cmd *cmd) in cmd_init() argument
53 cmd->filename = NULL; in cmd_init()
54 cmd->filetype = NULL; in cmd_init()
55 cmd->card = 0; in cmd_init()
56 cmd->device = 0; in cmd_init()
57 cmd->flags = PCM_OUT; in cmd_init()
58 cmd->config.period_size = 1024; in cmd_init()
59 cmd->config.period_count = 2; in cmd_init()
60 cmd->config.channels = 2; in cmd_init()
61 cmd->config.rate = 48000; in cmd_init()
62 cmd->config.format = PCM_FORMAT_S16_LE; in cmd_init()
63 cmd->config.silence_threshold = cmd->config.period_size * cmd->config.period_count; in cmd_init()
64 cmd->config.silence_size = 0; in cmd_init()
65 cmd->config.stop_threshold = cmd->config.period_size * cmd->config.period_count; in cmd_init()
66 cmd->config.start_threshold = cmd->config.period_size; in cmd_init()
67 cmd->bits = 16; in cmd_init()
68 cmd->is_float = false; in cmd_init()
130 static int ctx_init(struct ctx* ctx, struct cmd *cmd) in ctx_init() argument
132 unsigned int bits = cmd->bits; in ctx_init()
133 struct pcm_config *config = &cmd->config; in ctx_init()
134 bool is_float = cmd->is_float; in ctx_init()
136 if (cmd->filename == NULL) { in ctx_init()
140 if (strcmp(cmd->filename, "-") == 0) { in ctx_init()
143 ctx->file = fopen(cmd->filename, "rb"); in ctx_init()
147 fprintf(stderr, "failed to open '%s'\n", cmd->filename); in ctx_init()
151 if (is_wave_file(cmd->filetype)) { in ctx_init()
153 fprintf(stderr, "error: '%s' does not contain a riff/wave header\n", cmd->filename); in ctx_init()
159 fprintf(stderr, "error: '%s' is not a riff/wave file\n", cmd->filename); in ctx_init()
166 fprintf(stderr, "error: '%s' does not contain a data chunk\n", cmd->filename); in ctx_init()
173 fprintf(stderr, "error: '%s' has incomplete format chunk\n", cmd->filename); in ctx_init()
207 ctx->pcm = pcm_open(cmd->card, in ctx_init()
208 cmd->device, in ctx_init()
209 cmd->flags, in ctx_init()
213 cmd->card, cmd->device, in ctx_init()
266 struct cmd cmd; in main() local
289 cmd_init(&cmd); in main()
294 if (sscanf(opts.optarg, "%u", &cmd.card) != 1) { in main()
300 if (sscanf(opts.optarg, "%u", &cmd.device) != 1) { in main()
306 if (sscanf(opts.optarg, "%u", &cmd.config.period_size) != 1) { in main()
312 if (sscanf(opts.optarg, "%u", &cmd.config.period_count) != 1) { in main()
318 if (sscanf(opts.optarg, "%u", &cmd.config.channels) != 1) { in main()
324 if (sscanf(opts.optarg, "%u", &cmd.config.rate) != 1) { in main()
330 cmd.filetype = opts.optarg; in main()
333 if (sscanf(opts.optarg, "%u", &cmd.bits) != 1) { in main()
339 cmd.is_float = true; in main()
342 cmd.flags |= PCM_MMAP; in main()
352 cmd.filename = optparse_arg(&opts); in main()
354 if (cmd.filename != NULL && cmd.filetype == NULL && in main()
355 (cmd.filetype = strrchr(cmd.filename, '.')) != NULL) { in main()
356 cmd.filetype++; in main()
359 cmd.config.silence_threshold = cmd.config.period_size * cmd.config.period_count; in main()
360 cmd.config.stop_threshold = cmd.config.period_size * cmd.config.period_count; in main()
361 cmd.config.start_threshold = cmd.config.period_size; in main()
363 if (ctx_init(&ctx, &cmd) < 0) { in main()
367 printf("playing '%s': %u ch, %u hz, %u-bit ", cmd.filename, cmd.config.channels, in main()
368 cmd.config.rate, pcm_format_to_bits(cmd.config.format)); in main()
369 if (cmd.config.format == PCM_FORMAT_FLOAT_LE) { in main()
408 int sample_is_playable(const struct cmd *cmd) in sample_is_playable() argument
413 params = pcm_params_get(cmd->card, cmd->device, PCM_OUT); in sample_is_playable()
415 fprintf(stderr, "unable to open PCM %u,%u\n", cmd->card, cmd->device); in sample_is_playable()
419 can_play = check_param(params, PCM_PARAM_RATE, cmd->config.rate, "sample rate", "hz"); in sample_is_playable()
420 … can_play &= check_param(params, PCM_PARAM_CHANNELS, cmd->config.channels, "sample", " channels"); in sample_is_playable()
421 can_play &= check_param(params, PCM_PARAM_SAMPLE_BITS, cmd->bits, "bits", " bits"); in sample_is_playable()
422 can_play &= check_param(params, PCM_PARAM_PERIOD_SIZE, cmd->config.period_size, "period size", in sample_is_playable()
424 can_play &= check_param(params, PCM_PARAM_PERIODS, cmd->config.period_count, "period count", in sample_is_playable()