📄 main.c
字号:
return false; option_values.debug.disable_constant_subframes = false; option_values.debug.disable_fixed_subframes = false; option_values.debug.disable_verbatim_subframes = false; return true;}int parse_options(int argc, char *argv[]){ int short_option; int option_index = 1; FLAC__bool had_error = false; const char *short_opts = "0123456789ab:cdefFhHl:mMo:pP:q:r:sS:tT:vV"; while ((short_option = share__getopt_long(argc, argv, short_opts, long_options_, &option_index)) != -1) { switch (short_option) { case 0: /* long option with no equivalent short option */ had_error |= (parse_option(short_option, long_options_[option_index].name, share__optarg) != 0); break; case '?': case ':': had_error = true; break; default: /* short option */ had_error |= (parse_option(short_option, 0, share__optarg) != 0); break; } } if(had_error) { return 1; } FLAC__ASSERT(share__optind <= argc); option_values.num_files = argc - share__optind; if(option_values.num_files > 0) { unsigned i = 0; if(0 == (option_values.filenames = (char**)malloc(sizeof(char*) * option_values.num_files))) die("out of memory allocating space for file names list"); while(share__optind < argc) option_values.filenames[i++] = local_strdup(argv[share__optind++]); } return 0;}int parse_option(int short_option, const char *long_option, const char *option_argument){ char *p; if(short_option == 0) { FLAC__ASSERT(0 != long_option); if(0 == strcmp(long_option, "totally-silent")) { flac__utils_verbosity_ = 0; } else if(0 == strcmp(long_option, "delete-input-file")) { option_values.delete_input = true; } else if(0 == strcmp(long_option, "output-prefix")) { FLAC__ASSERT(0 != option_argument); option_values.output_prefix = option_argument; } else if(0 == strcmp(long_option, "skip")) { FLAC__ASSERT(0 != option_argument); option_values.skip_specification = option_argument; } else if(0 == strcmp(long_option, "until")) { FLAC__ASSERT(0 != option_argument); option_values.until_specification = option_argument; } else if(0 == strcmp(long_option, "input-size")) { FLAC__ASSERT(0 != option_argument); option_values.format_input_size = atol(option_argument); } else if(0 == strcmp(long_option, "cue")) { FLAC__ASSERT(0 != option_argument); option_values.cue_specification = option_argument; } else if(0 == strcmp(long_option, "apply-replaygain-which-is-not-lossless")) { option_values.replaygain_synthesis_spec.apply = true; if (0 != option_argument) { char *p; option_values.replaygain_synthesis_spec.limiter = RGSS_LIMIT__NONE; option_values.replaygain_synthesis_spec.noise_shaping = NOISE_SHAPING_NONE; option_values.replaygain_synthesis_spec.preamp = strtod(option_argument, &p); for ( ; *p; p++) { if (*p == 'a') option_values.replaygain_synthesis_spec.use_album_gain = true; else if (*p == 't') option_values.replaygain_synthesis_spec.use_album_gain = false; else if (*p == 'l') option_values.replaygain_synthesis_spec.limiter = RGSS_LIMIT__PEAK; else if (*p == 'L') option_values.replaygain_synthesis_spec.limiter = RGSS_LIMIT__HARD; else if (*p == 'n' && p[1] >= '0' && p[1] <= '3') { option_values.replaygain_synthesis_spec.noise_shaping = p[1] - '0'; p++; } else return usage_error("ERROR: bad specification string \"%s\" for --%s\n", option_argument, long_option); } } } else if(0 == strcmp(long_option, "cuesheet")) { FLAC__ASSERT(0 != option_argument); option_values.cuesheet_filename = option_argument; } else if(0 == strcmp(long_option, "no-cued-seekpoints")) { option_values.cued_seekpoints = false; } else if(0 == strcmp(long_option, "super-secret-totally-impractical-compression-level")) { option_values.lax = true; option_values.do_exhaustive_model_search = true; option_values.do_escape_coding = true; option_values.do_mid_side = true; option_values.loose_mid_side = false; option_values.do_qlp_coeff_prec_search = true; option_values.min_residual_partition_order = 0; option_values.max_residual_partition_order = 16; option_values.rice_parameter_search_dist = 0; option_values.max_lpc_order = 32; } else if(0 == strcmp(long_option, "force-aiff-format")) { option_values.force_aiff_format = true; } else if(0 == strcmp(long_option, "force-raw-format")) { option_values.force_raw_format = true; } else if(0 == strcmp(long_option, "lax")) { option_values.lax = true; } else if(0 == strcmp(long_option, "replay-gain")) { option_values.replay_gain = true; } else if(0 == strcmp(long_option, "sector-align")) { option_values.sector_align = true; }#ifdef FLAC__HAS_OGG else if(0 == strcmp(long_option, "ogg")) { option_values.use_ogg = true; } else if(0 == strcmp(long_option, "serial-number")) { option_values.has_serial_number = true; option_values.serial_number = atol(option_argument); }#endif else if(0 == strcmp(long_option, "endian")) { FLAC__ASSERT(0 != option_argument); if(0 == strncmp(option_argument, "big", strlen(option_argument))) option_values.format_is_big_endian = true; else if(0 == strncmp(option_argument, "little", strlen(option_argument))) option_values.format_is_big_endian = false; else return usage_error("ERROR: argument to --endian must be \"big\" or \"little\"\n"); } else if(0 == strcmp(long_option, "channels")) { FLAC__ASSERT(0 != option_argument); option_values.format_channels = atoi(option_argument); } else if(0 == strcmp(long_option, "bps")) { FLAC__ASSERT(0 != option_argument); option_values.format_bps = atoi(option_argument); } else if(0 == strcmp(long_option, "sample-rate")) { FLAC__ASSERT(0 != option_argument); option_values.format_sample_rate = atoi(option_argument); } else if(0 == strcmp(long_option, "sign")) { FLAC__ASSERT(0 != option_argument); if(0 == strncmp(option_argument, "signed", strlen(option_argument))) option_values.format_is_unsigned_samples = false; else if(0 == strncmp(option_argument, "unsigned", strlen(option_argument))) option_values.format_is_unsigned_samples = true; else return usage_error("ERROR: argument to --sign must be \"signed\" or \"unsigned\"\n"); } else if(0 == strcmp(long_option, "residual-gnuplot")) { option_values.aopts.do_residual_gnuplot = true; } else if(0 == strcmp(long_option, "residual-text")) { option_values.aopts.do_residual_text = true; } /* * negatives */ else if(0 == strcmp(long_option, "no-decode-through-errors")) { option_values.continue_through_decode_errors = false; } else if(0 == strcmp(long_option, "no-silent")) { flac__utils_verbosity_ = 2; } else if(0 == strcmp(long_option, "no-force")) { option_values.force_file_overwrite = false; } else if(0 == strcmp(long_option, "no-seektable")) { option_values.num_requested_seek_points = 0; option_values.requested_seek_points[0] = '\0'; } else if(0 == strcmp(long_option, "no-delete-input-file")) { option_values.delete_input = false; } else if(0 == strcmp(long_option, "no-replay-gain")) { option_values.replay_gain = false; } else if(0 == strcmp(long_option, "no-sector-align")) { option_values.sector_align = false; } else if(0 == strcmp(long_option, "no-lax")) { option_values.lax = false; }#ifdef FLAC__HAS_OGG else if(0 == strcmp(long_option, "no-ogg")) { option_values.use_ogg = false; }#endif else if(0 == strcmp(long_option, "no-exhaustive-model-search")) { option_values.do_exhaustive_model_search = false; } else if(0 == strcmp(long_option, "no-mid-side")) { option_values.do_mid_side = option_values.loose_mid_side = false; } else if(0 == strcmp(long_option, "no-adaptive-mid-side")) { option_values.loose_mid_side = option_values.do_mid_side = false; } else if(0 == strcmp(long_option, "no-qlp-coeff-prec-search")) { option_values.do_qlp_coeff_prec_search = false; } else if(0 == strcmp(long_option, "no-padding")) { option_values.padding = -1; } else if(0 == strcmp(long_option, "no-verify")) { option_values.verify = false; } else if(0 == strcmp(long_option, "no-residual-gnuplot")) { option_values.aopts.do_residual_gnuplot = false; } else if(0 == strcmp(long_option, "no-residual-text")) { option_values.aopts.do_residual_text = false; } else if(0 == strcmp(long_option, "disable-constant-subframes")) { option_values.debug.disable_constant_subframes = true; } else if(0 == strcmp(long_option, "disable-fixed-subframes")) { option_values.debug.disable_fixed_subframes = true; } else if(0 == strcmp(long_option, "disable-verbatim-subframes")) { option_values.debug.disable_verbatim_subframes = true; } } else { const char *violation; switch(short_option) { case 'h': option_values.show_help = true; break; case 'H': option_values.show_explain = true; break; case 'v': option_values.show_version = true; break; case 'd': option_values.mode_decode = true; break; case 'a': option_values.mode_decode = true; option_values.analyze = true; break; case 't': option_values.mode_decode = true; option_values.test_only = true; break; case 'c': option_values.force_to_stdout = true; break; case 's': flac__utils_verbosity_ = 1; break; case 'f': option_values.force_file_overwrite = true; break; case 'o': FLAC__ASSERT(0 != option_argument); option_values.cmdline_forced_outfilename = option_argument; break; case 'F': option_values.continue_through_decode_errors = true; break; case 'T': FLAC__ASSERT(0 != option_argument); if(!flac__vorbiscomment_add(option_values.vorbis_comment, option_argument, &violation)) return usage_error("ERROR: (-T/--tag) %s\n", violation);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -