all repos — mgba @ 2f1cb61d0197893cf0c3861e9130ff1aeaefb0b0

mGBA Game Boy Advance Emulator

src/feature/commandline.h (view raw)

 1/* Copyright (c) 2013-2014 Jeffrey Pfau
 2 *
 3 * This Source Code Form is subject to the terms of the Mozilla Public
 4 * License, v. 2.0. If a copy of the MPL was not distributed with this
 5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 6#ifndef COMMAND_LINE_H
 7#define COMMAND_LINE_H
 8
 9#include "util/common.h"
10
11CXX_GUARD_START
12
13#include "debugger/debugger.h"
14
15struct mArguments {
16	char* fname;
17	char* patch;
18	char* cheatsFile;
19	char* movie;
20	char* bios;
21	int logLevel;
22	int frameskip;
23
24	enum mDebuggerType debuggerType;
25	bool debugAtStart;
26	bool showHelp;
27	bool showVersion;
28};
29
30struct mCoreConfig;
31struct mSubParser {
32	const char* usage;
33	bool (*parse)(struct mSubParser* parser, int option, const char* arg);
34	void (*apply)(struct mSubParser* parser, struct mCoreConfig* config);
35	const char* extraOptions;
36	void* opts;
37};
38
39struct mGraphicsOpts {
40	int multiplier;
41	bool fullscreen;
42};
43
44bool parseArguments(struct mArguments* args, int argc, char* const* argv,
45                    struct mSubParser* subparser);
46void applyArguments(const struct mArguments* args, struct mSubParser* subparser, struct mCoreConfig* config);
47void freeArguments(struct mArguments* args);
48
49void usage(const char* arg0, const char* extraOptions);
50void version(const char* arg0);
51
52void initParserForGraphics(struct mSubParser* parser, struct mGraphicsOpts* opts);
53
54CXX_GUARD_END
55
56#endif