From 7f14b60ba3a3a89797c32dee7329536340240e8b Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Tue, 5 Apr 2022 17:00:55 +0200 Subject: [PATCH] Log options --- cmd/main.c | 19 +++++++------------ hw/v4l2.c | 2 -- hw/v4l2.h | 14 ++------------ opts/log.h | 20 ++++++++++++++++++++ 4 files changed, 29 insertions(+), 26 deletions(-) create mode 100644 opts/log.h diff --git a/cmd/main.c b/cmd/main.c index 098c202..550efe0 100644 --- a/cmd/main.c +++ b/cmd/main.c @@ -36,6 +36,11 @@ http_server_options_t http_options = { .maxcons = 10 }; +log_options_t log_options = { + .debug = false, + .verbose = false +}; + option_t all_options[] = { DEFINE_OPTION_PTR(camera, path, "%s"), DEFINE_OPTION(camera, width, uint), @@ -46,6 +51,8 @@ option_t all_options[] = { DEFINE_OPTION(camera, allow_dma, bool), DEFINE_OPTION(http, port, uint), DEFINE_OPTION(http, maxcons, uint), + DEFINE_OPTION(log, debug, bool), + DEFINE_OPTION(log, verbose, bool), {} }; @@ -60,21 +67,9 @@ int main(int argc, char *argv[]) return -1; } - if (env = getenv("DEBUG")) { - log_debug = strstr(env, "1") ? 1 : 0; - } - camera_init(&camera); camera.options = camera_options; - // //camera.width = 1920; camera.height = 1080; - // strcpy(camera.options.path, "/dev/video2"); camera.options.width = 2328; camera.options.height = 1748; camera.options.format = V4L2_PIX_FMT_SRGGB10P; // 1164x874 - // //camera.width = 4656; camera.height = 3496; - // //camera.width = 3840; camera.height = 2160; - // //camera.width = 1280; camera.height = 720; - // strcpy(camera.options.path, "/dev/video0"); camera.options.width = 1920; camera.options.height = 1080; camera.options.format = V4L2_PIX_FMT_YUYV; camera.options.format = V4L2_PIX_FMT_MJPEG; camera.options.allow_dma = false; - // camera.options.nbufs = 1; - if (camera_open(&camera) < 0) { goto error; } diff --git a/hw/v4l2.c b/hw/v4l2.c index 396e729..964b6f5 100644 --- a/hw/v4l2.c +++ b/hw/v4l2.c @@ -1,7 +1,5 @@ #include "hw/v4l2.h" -int log_debug = 0; - int xioctl(const char *name, int fd, int request, void *arg) { int retries = XIOCTL_RETRIES; diff --git a/hw/v4l2.h b/hw/v4l2.h index ba45c8f..fc0867a 100644 --- a/hw/v4l2.h +++ b/hw/v4l2.h @@ -18,23 +18,13 @@ #include +#include "opts/log.h" + #ifndef CFG_XIOCTL_RETRIES # define CFG_XIOCTL_RETRIES 4 #endif #define XIOCTL_RETRIES ((unsigned)(CFG_XIOCTL_RETRIES)) -#define __FILENAME__ (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__) - -extern int log_debug; - -// assumes that name is first item -#define dev_name(dev) (dev ? *(const char**)dev : "?") -#define E_LOG_ERROR(dev, _msg, ...) do { fprintf(stderr, "%s: %s: " _msg "\n", __FILENAME__, dev_name(dev), ##__VA_ARGS__); goto error; } while(0) -#define E_LOG_PERROR(dev, _msg, ...) do { fprintf(stderr, "%s: %s: " _msg "\n", __FILENAME__, dev_name(dev), ##__VA_ARGS__); exit(-1); } while(0) -#define E_LOG_INFO(dev, _msg, ...) do { fprintf(stderr, "%s: %s: " _msg "\n", __FILENAME__, dev_name(dev), ##__VA_ARGS__); } while(0) -#define E_LOG_VERBOSE(dev, _msg, ...) do { fprintf(stderr, "%s: %s: " _msg "\n", __FILENAME__, dev_name(dev), ##__VA_ARGS__); } while(0) -#define E_LOG_DEBUG(dev, _msg, ...) do { if (log_debug) { fprintf(stderr, "%s: %s: " _msg "\n", __FILENAME__, dev_name(dev), ##__VA_ARGS__); } } while(0) - typedef struct { char buf[10]; } fourcc_string; diff --git a/opts/log.h b/opts/log.h new file mode 100644 index 0000000..75a86b1 --- /dev/null +++ b/opts/log.h @@ -0,0 +1,20 @@ +#pragma once + +#include + +#define __FILENAME__ (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__) + +typedef struct log_options_s { + bool debug; + bool verbose; +} log_options_t; + +extern log_options_t log_options; + +// assumes that name is first item +#define dev_name(dev) (dev ? *(const char**)dev : "?") +#define E_LOG_ERROR(dev, _msg, ...) do { fprintf(stderr, "%s: %s: " _msg "\n", __FILENAME__, dev_name(dev), ##__VA_ARGS__); goto error; } while(0) +#define E_LOG_PERROR(dev, _msg, ...) do { fprintf(stderr, "%s: %s: " _msg "\n", __FILENAME__, dev_name(dev), ##__VA_ARGS__); exit(-1); } while(0) +#define E_LOG_INFO(dev, _msg, ...) do { fprintf(stderr, "%s: %s: " _msg "\n", __FILENAME__, dev_name(dev), ##__VA_ARGS__); } while(0) +#define E_LOG_VERBOSE(dev, _msg, ...) do { if (log_options.debug || log_options.verbose) { fprintf(stderr, "%s: %s: " _msg "\n", __FILENAME__, dev_name(dev), ##__VA_ARGS__); } } while(0) +#define E_LOG_DEBUG(dev, _msg, ...) do { if (log_options.debug) { fprintf(stderr, "%s: %s: " _msg "\n", __FILENAME__, dev_name(dev), ##__VA_ARGS__); } } while(0)