Пример #1
0
static int getopts(sox_effect_t * effp, int argc, char **argv)
{
  priv_t * p = (priv_t *)effp->priv;
  int c;

  p->time_constant = .05;
  p->scale = 1;
  while ((c = lsx_getopt(argc, argv, "+x:b:w:s:")) != -1) switch (c) {
    GETOPT_NUMERIC('x', hex_bits      ,  2 , 32)
    GETOPT_NUMERIC('b', scale_bits    ,  2 , 32)
    GETOPT_NUMERIC('w', time_constant ,  .01 , 10)
    GETOPT_NUMERIC('s', scale         ,  -99, 99)
    default: lsx_fail("invalid option `-%c'", optopt); return lsx_usage(effp);
  }
  if (p->hex_bits)
    p->scale_bits = p->hex_bits;
  return lsx_optind != argc? lsx_usage(effp) : SOX_SUCCESS;
}
Пример #2
0
static int create(sox_effect_t * effp, int argc, char * * argv)
{
  priv_t * p = (priv_t *)effp->priv;
  dft_filter_priv_t * b = &p->base;
  char * parse_ptr = argv[0];
  int i = 0;

  b->filter_ptr = &b->filter;
  p->phase = 50;
  p->beta = -1;
  while (i < 2) {
    int c = 1;
    while (c && (c = lsx_getopt(argc, argv, "+ra:b:p:MILt:n:")) != -1) switch (c) {
      char * parse_ptr;
      case 'r': p->round = sox_true; break;
      GETOPT_NUMERIC('a', att,  40 , 180)
      GETOPT_NUMERIC('b', beta,  0 , 256)
      GETOPT_NUMERIC('p', phase, 0, 100)
      case 'M': p->phase =  0; break;
      case 'I': p->phase = 25; break;
      case 'L': p->phase = 50; break;
      GETOPT_NUMERIC('n', num_taps[1], 11, 32767)
      case 't': p->tbw1 = lsx_parse_frequency(lsx_optarg, &parse_ptr);
        if (p->tbw1 < 1 || *parse_ptr) return lsx_usage(effp);
        break;
      default: c = 0;
    }
    if ((p->att && p->beta >= 0) || (p->tbw1 && p->num_taps[1]))
      return lsx_usage(effp);
    if (!i || !p->Fc1)
      p->tbw0 = p->tbw1, p->num_taps[0] = p->num_taps[1];
    if (!i++ && lsx_optind < argc) {
      if (*(parse_ptr = argv[lsx_optind++]) != '-')
        p->Fc0 = lsx_parse_frequency(parse_ptr, &parse_ptr);
      if (*parse_ptr == '-')
        p->Fc1 = lsx_parse_frequency(parse_ptr + 1, &parse_ptr);
    }
  }
  return lsx_optind != argc || p->Fc0 < 0 || p->Fc1 < 0 || *parse_ptr ?
      lsx_usage(effp) : SOX_SUCCESS;
}
Пример #3
0
static int create(sox_effect_t * effp, int argc, char **argv)
{
  priv_t *p = (priv_t *) effp->priv;
  char const * opts = "f:o:";
  int c;
  lsx_getopt_t optstate;
  lsx_getopt_init(argc, argv, opts, NULL, lsx_getopt_flag_none, 1, &optstate);

  p->frame_rate = 25;
  p->ovsamp = 16;
  while ((c = lsx_getopt(&optstate)) != -1) switch (c) {
    GETOPT_NUMERIC(optstate, 'f', frame_rate, 10 , 80)
    GETOPT_NUMERIC(optstate, 'o', ovsamp,  4 , 32)
    default: lsx_fail("unknown option `-%c'", optstate.opt); return lsx_usage(effp);
  }
  argc -= optstate.ind, argv += optstate.ind;

  p->nbends = argc;
  p->bends = lsx_calloc(p->nbends, sizeof(*p->bends));
  return parse(effp, argv, 0.);     /* No rate yet; parse with dummy */
}