simple-dmabuf-drm: use getopt_long

Signed-off-by: Guido Günther <agx@sigxcpu.org>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
This commit is contained in:
Guido Günther 2018-03-16 18:56:50 +01:00 committed by Pekka Paalanen
parent 2e24198974
commit 60970ec27c

View File

@ -38,6 +38,7 @@
#include <sys/mman.h> #include <sys/mman.h>
#include <signal.h> #include <signal.h>
#include <fcntl.h> #include <fcntl.h>
#include <getopt.h>
#include <xf86drm.h> #include <xf86drm.h>
@ -877,32 +878,34 @@ main(int argc, char **argv)
struct window *window; struct window *window;
int opts = 0; int opts = 0;
int import_format = DRM_FORMAT_XRGB8888; int import_format = DRM_FORMAT_XRGB8888;
int ret = 0, i = 0; int c, option_index, ret = 0;
if (argc > 1) { static struct option long_options[] = {
static const char import_mode[] = "--import-immediate="; {"import-format", required_argument, 0, 'f' },
static const char format[] = "--import-format="; {"import-immediate", required_argument, 0, 'i' },
static const char y_inverted[] = "--y-inverted="; {"y-inverted", required_argument, 0, 'y' },
for (i = 1; i < argc; i++) { {"help", no_argument , 0, 'h' },
if (!strncmp(argv[i], import_mode, {0, 0, 0, 0}
sizeof(import_mode) - 1)) { };
if (is_true(argv[i] + sizeof(import_mode) - 1))
while ((c = getopt_long(argc, argv, "hf:i:y:",
long_options, &option_index)) != -1) {
switch (c) {
case 'f':
import_format = parse_import_format(optarg);
break;
case 'i':
if (is_true(optarg))
opts |= OPT_IMMEDIATE; opts |= OPT_IMMEDIATE;
} break;
else if (!strncmp(argv[i], format, sizeof(format) - 1)) { case 'y':
import_format = parse_import_format(argv[i] if (is_true(optarg))
+ sizeof(format) - 1);
}
else if (!strncmp(argv[i], y_inverted,
sizeof(y_inverted) - 1)) {
if (is_true(argv[i] + sizeof(y_inverted) - 1))
opts |= OPT_Y_INVERTED; opts |= OPT_Y_INVERTED;
} break;
else { default:
print_usage_and_exit(); print_usage_and_exit();
} }
} }
}
display = create_display(opts, import_format); display = create_display(opts, import_format);
window = create_window(display, 256, 256, import_format, opts); window = create_window(display, 256, 256, import_format, opts);