mirror of
https://github.com/pikvm/ustreamer.git
synced 2026-03-12 18:43:42 +00:00
refactoring
This commit is contained in:
39
src/main.c
39
src/main.c
@@ -172,27 +172,34 @@ static int _parse_options(int argc, char *argv[], struct device_t *dev, struct e
|
|||||||
{ _dest = _value; break; }
|
{ _dest = _value; break; }
|
||||||
|
|
||||||
# define OPT_UNSIGNED(_dest, _name, _min, _max) { \
|
# define OPT_UNSIGNED(_dest, _name, _min, _max) { \
|
||||||
errno = 0; char *_end = NULL; int _tmp = strtol(optarg, &_end, 0); \
|
errno = 0; char *_end = NULL; int _tmp = strtol(optarg, &_end, 0); \
|
||||||
if (errno || *_end || _tmp < _min || _tmp > _max) { \
|
if (errno || *_end || _tmp < _min || _tmp > _max) { \
|
||||||
printf("Invalid value for '%s=%s'; min=%u; max=%u\n", _name, optarg, _min, _max); \
|
printf("Invalid value for '%s=%s'; min=%u; max=%u\n", _name, optarg, _min, _max); \
|
||||||
return -1; \
|
return -1; \
|
||||||
} _dest = _tmp; break; }
|
} \
|
||||||
|
_dest = _tmp; \
|
||||||
|
break; \
|
||||||
|
}
|
||||||
|
|
||||||
# define OPT_PARSE(_dest, _func, _invalid, _name) { \
|
# define OPT_PARSE(_dest, _func, _invalid, _name) { \
|
||||||
if ((_dest = _func(optarg)) == _invalid) { \
|
if ((_dest = _func(optarg)) == _invalid) { \
|
||||||
printf("Unknown " _name ": %s\n", optarg); \
|
printf("Unknown " _name ": %s\n", optarg); \
|
||||||
return -1; \
|
return -1; \
|
||||||
} break; }
|
} \
|
||||||
|
break; \
|
||||||
|
}
|
||||||
|
|
||||||
# define OPT_INT(_dest, _name, _base) { \
|
# define OPT_INT(_dest, _name, _base) { \
|
||||||
errno = 0; char *_end = NULL; int _tmp = strtol(optarg, &_end, _base); \
|
errno = 0; char *_end = NULL; int _tmp = strtol(optarg, &_end, _base); \
|
||||||
if (errno || *_end) { \
|
if (errno || *_end) { \
|
||||||
printf("Invalid value for '%s=%s'\n", _name, optarg); \
|
printf("Invalid value for '%s=%s'\n", _name, optarg); \
|
||||||
return -1; \
|
return -1; \
|
||||||
} _dest = _tmp; break; }
|
} \
|
||||||
|
_dest = _tmp; \
|
||||||
|
break; \
|
||||||
|
}
|
||||||
|
|
||||||
# define OPT_CHMOD(_dest, _name) \
|
# define OPT_CHMOD(_dest, _name) OPT_INT(_dest, _name, 8)
|
||||||
OPT_INT(_dest, _name, 8)
|
|
||||||
|
|
||||||
# define OPT_IMG(_dest) \
|
# define OPT_IMG(_dest) \
|
||||||
{ dev->img->_dest##_set = true; OPT_INT(dev->img->_dest, "--image-"#_dest, 10); break; }
|
{ dev->img->_dest##_set = true; OPT_INT(dev->img->_dest, "--image-"#_dest, 10); break; }
|
||||||
|
|||||||
@@ -136,9 +136,11 @@ void stream_loop(struct stream_t *stream) {
|
|||||||
|
|
||||||
# define INIT_FD_SET(_set) \
|
# define INIT_FD_SET(_set) \
|
||||||
fd_set _set; FD_ZERO(&_set); FD_SET(stream->dev->run->fd, &_set);
|
fd_set _set; FD_ZERO(&_set); FD_SET(stream->dev->run->fd, &_set);
|
||||||
|
|
||||||
INIT_FD_SET(read_fds);
|
INIT_FD_SET(read_fds);
|
||||||
INIT_FD_SET(write_fds);
|
INIT_FD_SET(write_fds);
|
||||||
INIT_FD_SET(error_fds);
|
INIT_FD_SET(error_fds);
|
||||||
|
|
||||||
# undef INIT_FD_SET
|
# undef INIT_FD_SET
|
||||||
|
|
||||||
struct timeval timeout;
|
struct timeval timeout;
|
||||||
|
|||||||
Reference in New Issue
Block a user