1159b3361Sopenharmony_ci/* $Id$ */
2159b3361Sopenharmony_ci
3159b3361Sopenharmony_ci#ifdef HAVE_CONFIG_H
4159b3361Sopenharmony_ci# include <config.h>
5159b3361Sopenharmony_ci#endif
6159b3361Sopenharmony_ci
7159b3361Sopenharmony_ci#include <stdio.h>
8159b3361Sopenharmony_ci
9159b3361Sopenharmony_ci#include "lame.h"
10159b3361Sopenharmony_ci#include "machine.h"
11159b3361Sopenharmony_ci#include "encoder.h"
12159b3361Sopenharmony_ci#include "lame-analysis.h"
13159b3361Sopenharmony_ci#include <gtk/gtk.h>
14159b3361Sopenharmony_ci#include "parse.h"
15159b3361Sopenharmony_ci#include "get_audio.h"
16159b3361Sopenharmony_ci#include "gtkanal.h"
17159b3361Sopenharmony_ci#include "lametime.h"
18159b3361Sopenharmony_ci
19159b3361Sopenharmony_ci#include "main.h"
20159b3361Sopenharmony_ci#include "console.h"
21159b3361Sopenharmony_ci
22159b3361Sopenharmony_ci
23159b3361Sopenharmony_ci/************************************************************************
24159b3361Sopenharmony_ci*
25159b3361Sopenharmony_ci* main
26159b3361Sopenharmony_ci*
27159b3361Sopenharmony_ci* PURPOSE:  MPEG-1,2 Layer III encoder with GPSYCHO
28159b3361Sopenharmony_ci* psychoacoustic model.
29159b3361Sopenharmony_ci*
30159b3361Sopenharmony_ci************************************************************************/
31159b3361Sopenharmony_ciint
32159b3361Sopenharmony_cilame_main(lame_t gf, int argc, char **argv)
33159b3361Sopenharmony_ci{
34159b3361Sopenharmony_ci    unsigned char mp3buffer[LAME_MAXMP3BUFFER];
35159b3361Sopenharmony_ci    char    outPath[PATH_MAX + 1];
36159b3361Sopenharmony_ci    char    inPath[PATH_MAX + 1];
37159b3361Sopenharmony_ci    int     ret;
38159b3361Sopenharmony_ci
39159b3361Sopenharmony_ci    lame_set_errorf(gf, &frontend_errorf);
40159b3361Sopenharmony_ci    lame_set_debugf(gf, &frontend_debugf);
41159b3361Sopenharmony_ci    lame_set_msgf(gf, &frontend_msgf);
42159b3361Sopenharmony_ci    if (argc <= 1) {
43159b3361Sopenharmony_ci        usage(stderr, argv[0]); /* no command-line args  */
44159b3361Sopenharmony_ci        return -1;
45159b3361Sopenharmony_ci    }
46159b3361Sopenharmony_ci    ret = parse_args(gf, argc, argv, inPath, outPath, NULL, NULL);
47159b3361Sopenharmony_ci    if (ret < 0) {
48159b3361Sopenharmony_ci        return ret == -2 ? 0 : 1;
49159b3361Sopenharmony_ci    }
50159b3361Sopenharmony_ci    (void) lame_set_analysis(gf, 1);
51159b3361Sopenharmony_ci
52159b3361Sopenharmony_ci    if (init_infile(gf, inPath) < 0) {
53159b3361Sopenharmony_ci        error_printf("Can't init infile '%s'\n", inPath);
54159b3361Sopenharmony_ci        return 1;
55159b3361Sopenharmony_ci    }
56159b3361Sopenharmony_ci    lame_init_params(gf);
57159b3361Sopenharmony_ci    lame_print_config(gf);
58159b3361Sopenharmony_ci
59159b3361Sopenharmony_ci    gtk_init(&argc, &argv);
60159b3361Sopenharmony_ci    gtkcontrol(gf, inPath);
61159b3361Sopenharmony_ci
62159b3361Sopenharmony_ci    lame_encode_flush(gf, mp3buffer, sizeof(mp3buffer));
63159b3361Sopenharmony_ci    close_infile();
64159b3361Sopenharmony_ci    return 0;
65159b3361Sopenharmony_ci}
66