Support unregistering plugins
[jpcrr.git] / streamtools / rawtoaudio.cpp
blobea7a9db565cdff67d3015e0a80f75362471ebd43
1 #include "audioconvert.hpp"
2 #include <cstdio>
3 #include <cstdlib>
4 #include <cstring>
6 static FILE* out_open(void* opaque)
8 char* name = (char*)opaque;
9 FILE* out = fopen(name, "wb");
10 if(!out) {
11 fprintf(stderr, "Error: Can't open output file '%s'.\n", name);
12 exit(1);
14 return out;
17 int main(int argc, char** argv)
19 struct converter_parameters params;
21 params.next_out = out_open;
22 params.output_type = OUTPUT_TYPE_RAW;
23 params.output_max = OUTPUT_MAX_UNLIMITED;
25 if(argc != 5) {
26 fprintf(stderr, "Syntax: %s <in> <out> <samplerate> <fm/pcm>\n", argv[0]);
27 return 1;
30 if(!strcmp(argv[4], "pcm")) {
31 params.input_type = INPUT_TYPE_PCM;
32 } else if(!strcmp(argv[4], "fm")) {
33 params.input_type = INPUT_TYPE_FM;
34 } else {
35 fprintf(stderr, "Invalid mode '%s'\n", argv[4]);
36 return 1;
39 params.output_rate = atoi(argv[3]);
40 if(params.output_rate <= 0 || params.output_rate > 1000000000) {
41 fprintf(stderr, "Error: Bad rate %s\n", argv[3]);
42 return 1;
45 params.in = fopen(argv[1], "rb");
46 params.opaque = argv[2];
47 if(!params.in) {
48 fprintf(stderr, "Error: Can't open input %s.\n", argv[1]);
49 return 1;
52 audioconvert(&params);