vgmstream/cli/vgmstream_cli.h
2024-07-28 18:24:40 +02:00

75 lines
1.6 KiB
C

#ifndef _VGMSTREAM_CLI_H_
#define _VGMSTREAM_CLI_H_
#include "../src/api.h"
#include "../src/vgmstream.h"
#define CLI_PATH_LIMIT 4096
typedef struct {
char** infilenames;
int infilenames_count;
const char* infilename;
const char* outfilename_config;
const char* outfilename;
int sample_buffer_size;
// playback config
double loop_count;
double fade_time;
double fade_delay;
bool ignore_fade;
bool ignore_loop;
bool force_loop;
bool really_force_loop;
bool play_forever;
bool play_sdtout;
bool play_wreckless;
// subsongs
int subsong_index;
int subsong_end;
// wav config
bool write_lwav;
bool write_original_wav;
// print flags
bool print_metaonly;
bool print_adxencd;
bool print_oggenc;
bool print_batchvar;
bool print_title;
bool print_metajson;
const char* tag_filename;
// debug stuff
bool decode_only;
bool test_reset;
bool validate_extensions;
int seek_samples1;
int seek_samples2;
int downmix_channels;
int stereo_track;
/* not quite config but eh */
int lwav_loop_start;
int lwav_loop_end;
} cli_config_t;
void replace_filename(char* dst, size_t dstsize, cli_config_t* cfg, VGMSTREAM* vgmstream);
void print_info(VGMSTREAM* vgmstream, cli_config_t* cfg);
void print_tags(cli_config_t* cfg);
void print_title(VGMSTREAM* vgmstream, cli_config_t* cfg);
void print_json_version(const char* vgmstream_version);
void print_json_info(VGMSTREAM* vgm, cli_config_t* cfg, const char* vgmstream_version);
#endif