mirror of
https://github.com/pikvm/ustreamer.git
synced 2026-03-12 10:33:42 +00:00
global variables prefix
This commit is contained in:
@@ -151,12 +151,12 @@ int main(int argc, char *argv[]) {
|
|||||||
case _O_COUNT: OPT_NUMBER("--count", count, 0, LLONG_MAX, 0);
|
case _O_COUNT: OPT_NUMBER("--count", count, 0, LLONG_MAX, 0);
|
||||||
case _O_INTERVAL: OPT_LDOUBLE("--interval", interval, 0, 60);
|
case _O_INTERVAL: OPT_LDOUBLE("--interval", interval, 0, 60);
|
||||||
|
|
||||||
case _O_LOG_LEVEL: OPT_NUMBER("--log-level", us_log_level, US_LOG_LEVEL_INFO, US_LOG_LEVEL_DEBUG, 0);
|
case _O_LOG_LEVEL: OPT_NUMBER("--log-level", us_g_log_level, US_LOG_LEVEL_INFO, US_LOG_LEVEL_DEBUG, 0);
|
||||||
case _O_PERF: OPT_SET(us_log_level, US_LOG_LEVEL_PERF);
|
case _O_PERF: OPT_SET(us_g_log_level, US_LOG_LEVEL_PERF);
|
||||||
case _O_VERBOSE: OPT_SET(us_log_level, US_LOG_LEVEL_VERBOSE);
|
case _O_VERBOSE: OPT_SET(us_g_log_level, US_LOG_LEVEL_VERBOSE);
|
||||||
case _O_DEBUG: OPT_SET(us_log_level, US_LOG_LEVEL_DEBUG);
|
case _O_DEBUG: OPT_SET(us_g_log_level, US_LOG_LEVEL_DEBUG);
|
||||||
case _O_FORCE_LOG_COLORS: OPT_SET(us_log_colored, true);
|
case _O_FORCE_LOG_COLORS: OPT_SET(us_g_log_colored, true);
|
||||||
case _O_NO_LOG_COLORS: OPT_SET(us_log_colored, false);
|
case _O_NO_LOG_COLORS: OPT_SET(us_g_log_colored, false);
|
||||||
|
|
||||||
case _O_HELP: _help(stdout); return 0;
|
case _O_HELP: _help(stdout); return 0;
|
||||||
case _O_VERSION: puts(US_VERSION); return 0;
|
case _O_VERSION: puts(US_VERSION); return 0;
|
||||||
@@ -330,7 +330,7 @@ static void _help(FILE *fp) {
|
|||||||
SAY(" --log-level <N> ──── Verbosity level of messages from 0 (info) to 3 (debug).");
|
SAY(" --log-level <N> ──── Verbosity level of messages from 0 (info) to 3 (debug).");
|
||||||
SAY(" Enabling debugging messages can slow down the program.");
|
SAY(" Enabling debugging messages can slow down the program.");
|
||||||
SAY(" Available levels: 0 (info), 1 (performance), 2 (verbose), 3 (debug).");
|
SAY(" Available levels: 0 (info), 1 (performance), 2 (verbose), 3 (debug).");
|
||||||
SAY(" Default: %d.\n", us_log_level);
|
SAY(" Default: %d.\n", us_g_log_level);
|
||||||
SAY(" --perf ───────────── Enable performance messages (same as --log-level=1). Default: disabled.\n");
|
SAY(" --perf ───────────── Enable performance messages (same as --log-level=1). Default: disabled.\n");
|
||||||
SAY(" --verbose ────────── Enable verbose messages and lower (same as --log-level=2). Default: disabled.\n");
|
SAY(" --verbose ────────── Enable verbose messages and lower (same as --log-level=2). Default: disabled.\n");
|
||||||
SAY(" --debug ──────────── Enable debug messages and lower (same as --log-level=3). Default: disabled.\n");
|
SAY(" --debug ──────────── Enable debug messages and lower (same as --log-level=3). Default: disabled.\n");
|
||||||
|
|||||||
@@ -23,8 +23,8 @@
|
|||||||
#include "logging.h"
|
#include "logging.h"
|
||||||
|
|
||||||
|
|
||||||
enum us_log_level_t us_log_level;
|
enum us_log_level_t us_g_log_level;
|
||||||
|
|
||||||
bool us_log_colored;
|
bool us_g_log_colored;
|
||||||
|
|
||||||
pthread_mutex_t us_log_mutex;
|
pthread_mutex_t us_g_log_mutex;
|
||||||
|
|||||||
@@ -45,23 +45,23 @@ enum us_log_level_t {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
extern enum us_log_level_t us_log_level;
|
extern enum us_log_level_t us_g_log_level;
|
||||||
|
|
||||||
extern bool us_log_colored;
|
extern bool us_g_log_colored;
|
||||||
|
|
||||||
extern pthread_mutex_t us_log_mutex;
|
extern pthread_mutex_t us_g_log_mutex;
|
||||||
|
|
||||||
|
|
||||||
#define US_LOGGING_INIT { \
|
#define US_LOGGING_INIT { \
|
||||||
us_log_level = US_LOG_LEVEL_INFO; \
|
us_g_log_level = US_LOG_LEVEL_INFO; \
|
||||||
us_log_colored = isatty(2); \
|
us_g_log_colored = isatty(2); \
|
||||||
US_MUTEX_INIT(us_log_mutex); \
|
US_MUTEX_INIT(us_g_log_mutex); \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define US_LOGGING_DESTROY US_MUTEX_DESTROY(us_log_mutex)
|
#define US_LOGGING_DESTROY US_MUTEX_DESTROY(us_g_log_mutex)
|
||||||
|
|
||||||
#define US_LOGGING_LOCK US_MUTEX_LOCK(us_log_mutex)
|
#define US_LOGGING_LOCK US_MUTEX_LOCK(us_g_log_mutex)
|
||||||
#define US_LOGGING_UNLOCK US_MUTEX_UNLOCK(us_log_mutex)
|
#define US_LOGGING_UNLOCK US_MUTEX_UNLOCK(us_g_log_mutex)
|
||||||
|
|
||||||
|
|
||||||
#define US_COLOR_GRAY "\x1b[30;1m"
|
#define US_COLOR_GRAY "\x1b[30;1m"
|
||||||
@@ -84,7 +84,7 @@ extern pthread_mutex_t us_log_mutex;
|
|||||||
}
|
}
|
||||||
|
|
||||||
#define US_SEP_DEBUG(x_ch) { \
|
#define US_SEP_DEBUG(x_ch) { \
|
||||||
if (us_log_level >= US_LOG_LEVEL_DEBUG) { \
|
if (us_g_log_level >= US_LOG_LEVEL_DEBUG) { \
|
||||||
US_SEP_INFO(x_ch); \
|
US_SEP_INFO(x_ch); \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
@@ -93,7 +93,7 @@ extern pthread_mutex_t us_log_mutex;
|
|||||||
#define US_LOG_PRINTF_NOLOCK(x_label_color, x_label, x_msg_color, x_msg, ...) { \
|
#define US_LOG_PRINTF_NOLOCK(x_label_color, x_label, x_msg_color, x_msg, ...) { \
|
||||||
char m_tname_buf[US_MAX_THREAD_NAME] = {0}; \
|
char m_tname_buf[US_MAX_THREAD_NAME] = {0}; \
|
||||||
us_thread_get_name(m_tname_buf); \
|
us_thread_get_name(m_tname_buf); \
|
||||||
if (us_log_colored) { \
|
if (us_g_log_colored) { \
|
||||||
fprintf(stderr, US_COLOR_GRAY "-- " x_label_color x_label US_COLOR_GRAY \
|
fprintf(stderr, US_COLOR_GRAY "-- " x_label_color x_label US_COLOR_GRAY \
|
||||||
" [%.03Lf %9s]" " -- " US_COLOR_RESET x_msg_color x_msg US_COLOR_RESET, \
|
" [%.03Lf %9s]" " -- " US_COLOR_RESET x_msg_color x_msg US_COLOR_RESET, \
|
||||||
us_get_now_monotonic(), m_tname_buf, ##__VA_ARGS__); \
|
us_get_now_monotonic(), m_tname_buf, ##__VA_ARGS__); \
|
||||||
@@ -130,25 +130,25 @@ extern pthread_mutex_t us_log_mutex;
|
|||||||
}
|
}
|
||||||
|
|
||||||
#define US_LOG_PERF(x_msg, ...) { \
|
#define US_LOG_PERF(x_msg, ...) { \
|
||||||
if (us_log_level >= US_LOG_LEVEL_PERF) { \
|
if (us_g_log_level >= US_LOG_LEVEL_PERF) { \
|
||||||
US_LOG_PRINTF(US_COLOR_CYAN, "PERF ", US_COLOR_CYAN, x_msg, ##__VA_ARGS__); \
|
US_LOG_PRINTF(US_COLOR_CYAN, "PERF ", US_COLOR_CYAN, x_msg, ##__VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define US_LOG_PERF_FPS(x_msg, ...) { \
|
#define US_LOG_PERF_FPS(x_msg, ...) { \
|
||||||
if (us_log_level >= US_LOG_LEVEL_PERF) { \
|
if (us_g_log_level >= US_LOG_LEVEL_PERF) { \
|
||||||
US_LOG_PRINTF(US_COLOR_YELLOW, "PERF ", US_COLOR_YELLOW, x_msg, ##__VA_ARGS__); \
|
US_LOG_PRINTF(US_COLOR_YELLOW, "PERF ", US_COLOR_YELLOW, x_msg, ##__VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define US_LOG_VERBOSE(x_msg, ...) { \
|
#define US_LOG_VERBOSE(x_msg, ...) { \
|
||||||
if (us_log_level >= US_LOG_LEVEL_VERBOSE) { \
|
if (us_g_log_level >= US_LOG_LEVEL_VERBOSE) { \
|
||||||
US_LOG_PRINTF(US_COLOR_BLUE, "VERB ", US_COLOR_BLUE, x_msg, ##__VA_ARGS__); \
|
US_LOG_PRINTF(US_COLOR_BLUE, "VERB ", US_COLOR_BLUE, x_msg, ##__VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define US_LOG_VERBOSE_PERROR(x_msg, ...) { \
|
#define US_LOG_VERBOSE_PERROR(x_msg, ...) { \
|
||||||
if (us_log_level >= US_LOG_LEVEL_VERBOSE) { \
|
if (us_g_log_level >= US_LOG_LEVEL_VERBOSE) { \
|
||||||
char m_perror_buf[1024] = {0}; \
|
char m_perror_buf[1024] = {0}; \
|
||||||
char *m_perror_ptr = us_errno_to_string(errno, m_perror_buf, 1023); \
|
char *m_perror_ptr = us_errno_to_string(errno, m_perror_buf, 1023); \
|
||||||
US_LOG_PRINTF(US_COLOR_BLUE, "VERB ", US_COLOR_BLUE, x_msg ": %s", ##__VA_ARGS__, m_perror_ptr); \
|
US_LOG_PRINTF(US_COLOR_BLUE, "VERB ", US_COLOR_BLUE, x_msg ": %s", ##__VA_ARGS__, m_perror_ptr); \
|
||||||
@@ -156,7 +156,7 @@ extern pthread_mutex_t us_log_mutex;
|
|||||||
}
|
}
|
||||||
|
|
||||||
#define US_LOG_DEBUG(x_msg, ...) { \
|
#define US_LOG_DEBUG(x_msg, ...) { \
|
||||||
if (us_log_level >= US_LOG_LEVEL_DEBUG) { \
|
if (us_g_log_level >= US_LOG_LEVEL_DEBUG) { \
|
||||||
US_LOG_PRINTF(US_COLOR_GRAY, "DEBUG", US_COLOR_GRAY, x_msg, ##__VA_ARGS__); \
|
US_LOG_PRINTF(US_COLOR_GRAY, "DEBUG", US_COLOR_GRAY, x_msg, ##__VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
#include "gpio.h"
|
#include "gpio.h"
|
||||||
|
|
||||||
|
|
||||||
us_gpio_s us_gpio = {
|
us_gpio_s us_g_gpio = {
|
||||||
.path = "/dev/gpiochip0",
|
.path = "/dev/gpiochip0",
|
||||||
.consumer_prefix = "ustreamer",
|
.consumer_prefix = "ustreamer",
|
||||||
|
|
||||||
@@ -51,42 +51,42 @@ static void _gpio_output_destroy(us_gpio_output_s *output);
|
|||||||
|
|
||||||
|
|
||||||
void us_gpio_init(void) {
|
void us_gpio_init(void) {
|
||||||
assert(us_gpio.chip == NULL);
|
assert(us_g_gpio.chip == NULL);
|
||||||
if (
|
if (
|
||||||
us_gpio.prog_running.pin >= 0
|
us_g_gpio.prog_running.pin >= 0
|
||||||
|| us_gpio.stream_online.pin >= 0
|
|| us_g_gpio.stream_online.pin >= 0
|
||||||
|| us_gpio.has_http_clients.pin >= 0
|
|| us_g_gpio.has_http_clients.pin >= 0
|
||||||
) {
|
) {
|
||||||
US_MUTEX_INIT(us_gpio.mutex);
|
US_MUTEX_INIT(us_g_gpio.mutex);
|
||||||
US_LOG_INFO("GPIO: Using chip device: %s", us_gpio.path);
|
US_LOG_INFO("GPIO: Using chip device: %s", us_g_gpio.path);
|
||||||
if ((us_gpio.chip = gpiod_chip_open(us_gpio.path)) != NULL) {
|
if ((us_g_gpio.chip = gpiod_chip_open(us_g_gpio.path)) != NULL) {
|
||||||
_gpio_output_init(&us_gpio.prog_running);
|
_gpio_output_init(&us_g_gpio.prog_running);
|
||||||
_gpio_output_init(&us_gpio.stream_online);
|
_gpio_output_init(&us_g_gpio.stream_online);
|
||||||
_gpio_output_init(&us_gpio.has_http_clients);
|
_gpio_output_init(&us_g_gpio.has_http_clients);
|
||||||
} else {
|
} else {
|
||||||
US_LOG_PERROR("GPIO: Can't initialize chip device %s", us_gpio.path);
|
US_LOG_PERROR("GPIO: Can't initialize chip device %s", us_g_gpio.path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void us_gpio_destroy(void) {
|
void us_gpio_destroy(void) {
|
||||||
_gpio_output_destroy(&us_gpio.prog_running);
|
_gpio_output_destroy(&us_g_gpio.prog_running);
|
||||||
_gpio_output_destroy(&us_gpio.stream_online);
|
_gpio_output_destroy(&us_g_gpio.stream_online);
|
||||||
_gpio_output_destroy(&us_gpio.has_http_clients);
|
_gpio_output_destroy(&us_g_gpio.has_http_clients);
|
||||||
if (us_gpio.chip != NULL) {
|
if (us_g_gpio.chip != NULL) {
|
||||||
gpiod_chip_close(us_gpio.chip);
|
gpiod_chip_close(us_g_gpio.chip);
|
||||||
us_gpio.chip = NULL;
|
us_g_gpio.chip = NULL;
|
||||||
US_MUTEX_DESTROY(us_gpio.mutex);
|
US_MUTEX_DESTROY(us_g_gpio.mutex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int us_gpio_inner_set(us_gpio_output_s *output, bool state) {
|
int us_gpio_inner_set(us_gpio_output_s *output, bool state) {
|
||||||
int retval = 0;
|
int retval = 0;
|
||||||
|
|
||||||
assert(us_gpio.chip != NULL);
|
assert(us_g_gpio.chip != NULL);
|
||||||
assert(output->line != NULL);
|
assert(output->line != NULL);
|
||||||
assert(output->state != state); // Must be checked in macro for the performance
|
assert(output->state != state); // Must be checked in macro for the performance
|
||||||
US_MUTEX_LOCK(us_gpio.mutex);
|
US_MUTEX_LOCK(us_g_gpio.mutex);
|
||||||
|
|
||||||
if (gpiod_line_set_value(output->line, (int)state) < 0) { \
|
if (gpiod_line_set_value(output->line, (int)state) < 0) { \
|
||||||
US_LOG_PERROR("GPIO: Can't write value %d to line %s (will be disabled)", state, output->consumer); \
|
US_LOG_PERROR("GPIO: Can't write value %d to line %s (will be disabled)", state, output->consumer); \
|
||||||
@@ -94,18 +94,18 @@ int us_gpio_inner_set(us_gpio_output_s *output, bool state) {
|
|||||||
retval = -1;
|
retval = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
US_MUTEX_UNLOCK(us_gpio.mutex);
|
US_MUTEX_UNLOCK(us_g_gpio.mutex);
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void _gpio_output_init(us_gpio_output_s *output) {
|
static void _gpio_output_init(us_gpio_output_s *output) {
|
||||||
assert(us_gpio.chip != NULL);
|
assert(us_g_gpio.chip != NULL);
|
||||||
assert(output->line == NULL);
|
assert(output->line == NULL);
|
||||||
|
|
||||||
US_ASPRINTF(output->consumer, "%s::%s", us_gpio.consumer_prefix, output->role);
|
US_ASPRINTF(output->consumer, "%s::%s", us_g_gpio.consumer_prefix, output->role);
|
||||||
|
|
||||||
if (output->pin >= 0) {
|
if (output->pin >= 0) {
|
||||||
if ((output->line = gpiod_chip_get_line(us_gpio.chip, output->pin)) != NULL) {
|
if ((output->line = gpiod_chip_get_line(us_g_gpio.chip, output->pin)) != NULL) {
|
||||||
if (gpiod_line_request_output(output->line, output->consumer, 0) < 0) {
|
if (gpiod_line_request_output(output->line, output->consumer, 0) < 0) {
|
||||||
US_LOG_PERROR("GPIO: Can't request pin=%d as %s", output->pin, output->consumer);
|
US_LOG_PERROR("GPIO: Can't request pin=%d as %s", output->pin, output->consumer);
|
||||||
_gpio_output_destroy(output);
|
_gpio_output_destroy(output);
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ typedef struct {
|
|||||||
} us_gpio_s;
|
} us_gpio_s;
|
||||||
|
|
||||||
|
|
||||||
extern us_gpio_s us_gpio;
|
extern us_gpio_s us_g_gpio;
|
||||||
|
|
||||||
|
|
||||||
void us_gpio_init(void);
|
void us_gpio_init(void);
|
||||||
@@ -73,15 +73,15 @@ int us_gpio_inner_set(us_gpio_output_s *output, bool state);
|
|||||||
}
|
}
|
||||||
|
|
||||||
INLINE void us_gpio_set_prog_running(bool state) {
|
INLINE void us_gpio_set_prog_running(bool state) {
|
||||||
SET_STATE(us_gpio.prog_running, state);
|
SET_STATE(us_g_gpio.prog_running, state);
|
||||||
}
|
}
|
||||||
|
|
||||||
INLINE void us_gpio_set_stream_online(bool state) {
|
INLINE void us_gpio_set_stream_online(bool state) {
|
||||||
SET_STATE(us_gpio.stream_online, state);
|
SET_STATE(us_g_gpio.stream_online, state);
|
||||||
}
|
}
|
||||||
|
|
||||||
INLINE void us_gpio_set_has_http_clients(bool state) {
|
INLINE void us_gpio_set_has_http_clients(bool state) {
|
||||||
SET_STATE(us_gpio.has_http_clients, state);
|
SET_STATE(us_g_gpio.has_http_clients, state);
|
||||||
}
|
}
|
||||||
|
|
||||||
#undef SET_STATE
|
#undef SET_STATE
|
||||||
|
|||||||
@@ -437,11 +437,11 @@ int options_parse(us_options_s *options, us_device_s *dev, us_encoder_s *enc, us
|
|||||||
# undef ADD_SINK
|
# undef ADD_SINK
|
||||||
|
|
||||||
# ifdef WITH_GPIO
|
# ifdef WITH_GPIO
|
||||||
case _O_GPIO_DEVICE: OPT_SET(us_gpio.path, optarg);
|
case _O_GPIO_DEVICE: OPT_SET(us_g_gpio.path, optarg);
|
||||||
case _O_GPIO_CONSUMER_PREFIX: OPT_SET(us_gpio.consumer_prefix, optarg);
|
case _O_GPIO_CONSUMER_PREFIX: OPT_SET(us_g_gpio.consumer_prefix, optarg);
|
||||||
case _O_GPIO_PROG_RUNNING: OPT_NUMBER("--gpio-prog-running", us_gpio.prog_running.pin, 0, 256, 0);
|
case _O_GPIO_PROG_RUNNING: OPT_NUMBER("--gpio-prog-running", us_g_gpio.prog_running.pin, 0, 256, 0);
|
||||||
case _O_GPIO_STREAM_ONLINE: OPT_NUMBER("--gpio-stream-online", us_gpio.stream_online.pin, 0, 256, 0);
|
case _O_GPIO_STREAM_ONLINE: OPT_NUMBER("--gpio-stream-online", us_g_gpio.stream_online.pin, 0, 256, 0);
|
||||||
case _O_GPIO_HAS_HTTP_CLIENTS: OPT_NUMBER("--gpio-has-http-clients", us_gpio.has_http_clients.pin, 0, 256, 0);
|
case _O_GPIO_HAS_HTTP_CLIENTS: OPT_NUMBER("--gpio-has-http-clients", us_g_gpio.has_http_clients.pin, 0, 256, 0);
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# ifdef HAS_PDEATHSIG
|
# ifdef HAS_PDEATHSIG
|
||||||
@@ -457,12 +457,12 @@ int options_parse(us_options_s *options, us_device_s *dev, us_encoder_s *enc, us
|
|||||||
# endif
|
# endif
|
||||||
case _O_NOTIFY_PARENT: OPT_SET(server->notify_parent, true);
|
case _O_NOTIFY_PARENT: OPT_SET(server->notify_parent, true);
|
||||||
|
|
||||||
case _O_LOG_LEVEL: OPT_NUMBER("--log-level", us_log_level, US_LOG_LEVEL_INFO, US_LOG_LEVEL_DEBUG, 0);
|
case _O_LOG_LEVEL: OPT_NUMBER("--log-level", us_g_log_level, US_LOG_LEVEL_INFO, US_LOG_LEVEL_DEBUG, 0);
|
||||||
case _O_PERF: OPT_SET(us_log_level, US_LOG_LEVEL_PERF);
|
case _O_PERF: OPT_SET(us_g_log_level, US_LOG_LEVEL_PERF);
|
||||||
case _O_VERBOSE: OPT_SET(us_log_level, US_LOG_LEVEL_VERBOSE);
|
case _O_VERBOSE: OPT_SET(us_g_log_level, US_LOG_LEVEL_VERBOSE);
|
||||||
case _O_DEBUG: OPT_SET(us_log_level, US_LOG_LEVEL_DEBUG);
|
case _O_DEBUG: OPT_SET(us_g_log_level, US_LOG_LEVEL_DEBUG);
|
||||||
case _O_FORCE_LOG_COLORS: OPT_SET(us_log_colored, true);
|
case _O_FORCE_LOG_COLORS: OPT_SET(us_g_log_colored, true);
|
||||||
case _O_NO_LOG_COLORS: OPT_SET(us_log_colored, false);
|
case _O_NO_LOG_COLORS: OPT_SET(us_g_log_colored, false);
|
||||||
|
|
||||||
case _O_HELP: _help(stdout, dev, enc, stream, server); return 1;
|
case _O_HELP: _help(stdout, dev, enc, stream, server); return 1;
|
||||||
case _O_VERSION: puts(US_VERSION); return 1;
|
case _O_VERSION: puts(US_VERSION); return 1;
|
||||||
@@ -676,8 +676,8 @@ static void _help(FILE *fp, us_device_s *dev, us_encoder_s *enc, us_stream_s *st
|
|||||||
# ifdef WITH_GPIO
|
# ifdef WITH_GPIO
|
||||||
SAY("GPIO options:");
|
SAY("GPIO options:");
|
||||||
SAY("═════════════");
|
SAY("═════════════");
|
||||||
SAY(" --gpio-device </dev/path> ───── Path to GPIO character device. Default: %s.\n", us_gpio.path);
|
SAY(" --gpio-device </dev/path> ───── Path to GPIO character device. Default: %s.\n", us_g_gpio.path);
|
||||||
SAY(" --gpio-consumer-prefix <str> ── Consumer prefix for GPIO outputs. Default: %s.\n", us_gpio.consumer_prefix);
|
SAY(" --gpio-consumer-prefix <str> ── Consumer prefix for GPIO outputs. Default: %s.\n", us_g_gpio.consumer_prefix);
|
||||||
SAY(" --gpio-prog-running <pin> ───── Set 1 on GPIO pin while uStreamer is running. Default: disabled.\n");
|
SAY(" --gpio-prog-running <pin> ───── Set 1 on GPIO pin while uStreamer is running. Default: disabled.\n");
|
||||||
SAY(" --gpio-stream-online <pin> ──── Set 1 while streaming. Default: disabled.\n");
|
SAY(" --gpio-stream-online <pin> ──── Set 1 while streaming. Default: disabled.\n");
|
||||||
SAY(" --gpio-has-http-clients <pin> ─ Set 1 while stream has at least one client. Default: disabled.\n");
|
SAY(" --gpio-has-http-clients <pin> ─ Set 1 while stream has at least one client. Default: disabled.\n");
|
||||||
@@ -702,7 +702,7 @@ static void _help(FILE *fp, us_device_s *dev, us_encoder_s *enc, us_stream_s *st
|
|||||||
SAY(" --log-level <N> ──── Verbosity level of messages from 0 (info) to 3 (debug).");
|
SAY(" --log-level <N> ──── Verbosity level of messages from 0 (info) to 3 (debug).");
|
||||||
SAY(" Enabling debugging messages can slow down the program.");
|
SAY(" Enabling debugging messages can slow down the program.");
|
||||||
SAY(" Available levels: 0 (info), 1 (performance), 2 (verbose), 3 (debug).");
|
SAY(" Available levels: 0 (info), 1 (performance), 2 (verbose), 3 (debug).");
|
||||||
SAY(" Default: %d.\n", us_log_level);
|
SAY(" Default: %d.\n", us_g_log_level);
|
||||||
SAY(" --perf ───────────── Enable performance messages (same as --log-level=1). Default: disabled.\n");
|
SAY(" --perf ───────────── Enable performance messages (same as --log-level=1). Default: disabled.\n");
|
||||||
SAY(" --verbose ────────── Enable verbose messages and lower (same as --log-level=2). Default: disabled.\n");
|
SAY(" --verbose ────────── Enable verbose messages and lower (same as --log-level=2). Default: disabled.\n");
|
||||||
SAY(" --debug ──────────── Enable debug messages and lower (same as --log-level=3). Default: disabled.\n");
|
SAY(" --debug ──────────── Enable debug messages and lower (same as --log-level=3). Default: disabled.\n");
|
||||||
|
|||||||
Reference in New Issue
Block a user