@@ -105,70 +105,70 @@ unsigned reply_threshold = 1000;
time_t long_timeout = 60;
static struct option long_options[] = {
- {"device", required_argument, 0, OptSetDevice},
- {"adapter", required_argument, 0, OptSetAdapter},
- {"driver", required_argument, 0, OptSetDriver},
- {"help", no_argument, 0, OptHelp},
- {"no-warnings", no_argument, 0, OptNoWarnings},
- {"exit-on-fail", no_argument, 0, OptExitOnFail},
- {"exit-on-warn", no_argument, 0, OptExitOnWarn},
- {"remote", optional_argument, 0, OptRemote},
- {"list-tests", no_argument, 0, OptListTests},
- {"expect", required_argument, 0, OptExpect},
- {"expect-with-no-warnings", required_argument, 0, OptExpectWithNoWarnings},
- {"timeout", required_argument, 0, OptTimeout},
- {"trace", no_argument, 0, OptTrace},
- {"verbose", no_argument, 0, OptVerbose},
- {"color", required_argument, 0, OptColor},
- {"skip-info", no_argument, 0, OptSkipInfo},
- {"wall-clock", no_argument, 0, OptWallClock},
- {"interactive", no_argument, 0, OptInteractive},
- {"reply-threshold", required_argument, 0, OptReplyThreshold},
-
- {"test-adapter", no_argument, 0, OptTestAdapter},
- {"test-fuzzing", no_argument, 0, OptTestFuzzing},
- {"test-core", no_argument, 0, OptTestCore},
- {"test-audio-rate-control", no_argument, 0, OptTestAudioRateControl},
- {"test-audio-return-channel-control", no_argument, 0, OptTestARCControl},
- {"test-capability-discovery-and-control", no_argument, 0, OptTestCapDiscoveryControl},
- {"test-deck-control", no_argument, 0, OptTestDeckControl},
- {"test-device-menu-control", no_argument, 0, OptTestDeviceMenuControl},
- {"test-device-osd-transfer", no_argument, 0, OptTestDeviceOSDTransfer},
- {"test-dynamic-auto-lipsync", no_argument, 0, OptTestDynamicAutoLipsync},
- {"test-osd-display", no_argument, 0, OptTestOSDDisplay},
- {"test-one-touch-play", no_argument, 0, OptTestOneTouchPlay},
- {"test-one-touch-record", no_argument, 0, OptTestOneTouchRecord},
- {"test-power-status", no_argument, 0, OptTestPowerStatus},
- {"test-remote-control-passthrough", no_argument, 0, OptTestRemoteControlPassthrough},
- {"test-routing-control", no_argument, 0, OptTestRoutingControl},
- {"test-system-audio-control", no_argument, 0, OptTestSystemAudioControl},
- {"test-system-information", no_argument, 0, OptTestSystemInformation},
- {"test-timer-programming", no_argument, 0, OptTestTimerProgramming},
- {"test-tuner-control", no_argument, 0, OptTestTunerControl},
- {"test-vendor-specific-commands", no_argument, 0, OptTestVendorSpecificCommands},
- {"test-standby-resume", no_argument, 0, OptTestStandbyResume},
-
- {"skip-test-audio-rate-control", no_argument, 0, OptSkipTestAudioRateControl},
- {"skip-test-audio-return-channel-control", no_argument, 0, OptSkipTestARCControl},
- {"skip-test-capability-discovery-and-control", no_argument, 0, OptSkipTestCapDiscoveryControl},
- {"skip-test-deck-control", no_argument, 0, OptSkipTestDeckControl},
- {"skip-test-device-menu-control", no_argument, 0, OptSkipTestDeviceMenuControl},
- {"skip-test-device-osd-transfer", no_argument, 0, OptSkipTestDeviceOSDTransfer},
- {"skip-test-dynamic-auto-lipsync", no_argument, 0, OptSkipTestDynamicAutoLipsync},
- {"skip-test-osd-display", no_argument, 0, OptSkipTestOSDDisplay},
- {"skip-test-one-touch-play", no_argument, 0, OptSkipTestOneTouchPlay},
- {"skip-test-one-touch-record", no_argument, 0, OptSkipTestOneTouchRecord},
- {"skip-test-power-status", no_argument, 0, OptSkipTestPowerStatus},
- {"skip-test-remote-control-passthrough", no_argument, 0, OptSkipTestRemoteControlPassthrough},
- {"skip-test-routing-control", no_argument, 0, OptSkipTestRoutingControl},
- {"skip-test-system-audio-control", no_argument, 0, OptSkipTestSystemAudioControl},
- {"skip-test-system-information", no_argument, 0, OptSkipTestSystemInformation},
- {"skip-test-timer-programming", no_argument, 0, OptSkipTestTimerProgramming},
- {"skip-test-tuner-control", no_argument, 0, OptSkipTestTunerControl},
- {"skip-test-vendor-specific-commands", no_argument, 0, OptSkipTestVendorSpecificCommands},
- {"skip-test-standby-resume", no_argument, 0, OptSkipTestStandbyResume},
- {"version", no_argument, 0, OptVersion},
- {0, 0, 0, 0}
+ {"device", required_argument, nullptr, OptSetDevice},
+ {"adapter", required_argument, nullptr, OptSetAdapter},
+ {"driver", required_argument, nullptr, OptSetDriver},
+ {"help", no_argument, nullptr, OptHelp},
+ {"no-warnings", no_argument, nullptr, OptNoWarnings},
+ {"exit-on-fail", no_argument, nullptr, OptExitOnFail},
+ {"exit-on-warn", no_argument, nullptr, OptExitOnWarn},
+ {"remote", optional_argument, nullptr, OptRemote},
+ {"list-tests", no_argument, nullptr, OptListTests},
+ {"expect", required_argument, nullptr, OptExpect},
+ {"expect-with-no-warnings", required_argument, nullptr, OptExpectWithNoWarnings},
+ {"timeout", required_argument, nullptr, OptTimeout},
+ {"trace", no_argument, nullptr, OptTrace},
+ {"verbose", no_argument, nullptr, OptVerbose},
+ {"color", required_argument, nullptr, OptColor},
+ {"skip-info", no_argument, nullptr, OptSkipInfo},
+ {"wall-clock", no_argument, nullptr, OptWallClock},
+ {"interactive", no_argument, nullptr, OptInteractive},
+ {"reply-threshold", required_argument, nullptr, OptReplyThreshold},
+
+ {"test-adapter", no_argument, nullptr, OptTestAdapter},
+ {"test-fuzzing", no_argument, nullptr, OptTestFuzzing},
+ {"test-core", no_argument, nullptr, OptTestCore},
+ {"test-audio-rate-control", no_argument, nullptr, OptTestAudioRateControl},
+ {"test-audio-return-channel-control", no_argument, nullptr, OptTestARCControl},
+ {"test-capability-discovery-and-control", no_argument, nullptr, OptTestCapDiscoveryControl},
+ {"test-deck-control", no_argument, nullptr, OptTestDeckControl},
+ {"test-device-menu-control", no_argument, nullptr, OptTestDeviceMenuControl},
+ {"test-device-osd-transfer", no_argument, nullptr, OptTestDeviceOSDTransfer},
+ {"test-dynamic-auto-lipsync", no_argument, nullptr, OptTestDynamicAutoLipsync},
+ {"test-osd-display", no_argument, nullptr, OptTestOSDDisplay},
+ {"test-one-touch-play", no_argument, nullptr, OptTestOneTouchPlay},
+ {"test-one-touch-record", no_argument, nullptr, OptTestOneTouchRecord},
+ {"test-power-status", no_argument, nullptr, OptTestPowerStatus},
+ {"test-remote-control-passthrough", no_argument, nullptr, OptTestRemoteControlPassthrough},
+ {"test-routing-control", no_argument, nullptr, OptTestRoutingControl},
+ {"test-system-audio-control", no_argument, nullptr, OptTestSystemAudioControl},
+ {"test-system-information", no_argument, nullptr, OptTestSystemInformation},
+ {"test-timer-programming", no_argument, nullptr, OptTestTimerProgramming},
+ {"test-tuner-control", no_argument, nullptr, OptTestTunerControl},
+ {"test-vendor-specific-commands", no_argument, nullptr, OptTestVendorSpecificCommands},
+ {"test-standby-resume", no_argument, nullptr, OptTestStandbyResume},
+
+ {"skip-test-audio-rate-control", no_argument, nullptr, OptSkipTestAudioRateControl},
+ {"skip-test-audio-return-channel-control", no_argument, nullptr, OptSkipTestARCControl},
+ {"skip-test-capability-discovery-and-control", no_argument, nullptr, OptSkipTestCapDiscoveryControl},
+ {"skip-test-deck-control", no_argument, nullptr, OptSkipTestDeckControl},
+ {"skip-test-device-menu-control", no_argument, nullptr, OptSkipTestDeviceMenuControl},
+ {"skip-test-device-osd-transfer", no_argument, nullptr, OptSkipTestDeviceOSDTransfer},
+ {"skip-test-dynamic-auto-lipsync", no_argument, nullptr, OptSkipTestDynamicAutoLipsync},
+ {"skip-test-osd-display", no_argument, nullptr, OptSkipTestOSDDisplay},
+ {"skip-test-one-touch-play", no_argument, nullptr, OptSkipTestOneTouchPlay},
+ {"skip-test-one-touch-record", no_argument, nullptr, OptSkipTestOneTouchRecord},
+ {"skip-test-power-status", no_argument, nullptr, OptSkipTestPowerStatus},
+ {"skip-test-remote-control-passthrough", no_argument, nullptr, OptSkipTestRemoteControlPassthrough},
+ {"skip-test-routing-control", no_argument, nullptr, OptSkipTestRoutingControl},
+ {"skip-test-system-audio-control", no_argument, nullptr, OptSkipTestSystemAudioControl},
+ {"skip-test-system-information", no_argument, nullptr, OptSkipTestSystemInformation},
+ {"skip-test-timer-programming", no_argument, nullptr, OptSkipTestTimerProgramming},
+ {"skip-test-tuner-control", no_argument, nullptr, OptSkipTestTunerControl},
+ {"skip-test-vendor-specific-commands", no_argument, nullptr, OptSkipTestVendorSpecificCommands},
+ {"skip-test-standby-resume", no_argument, nullptr, OptSkipTestStandbyResume},
+ {"version", no_argument, nullptr, OptVersion},
+ {nullptr, 0, nullptr, 0}
};
#define STR(x) #x
@@ -268,7 +268,7 @@ static std::string ts2s(__u64 ts)
return buf;
}
clock_gettime(CLOCK_MONOTONIC, &now);
- gettimeofday(&tv, NULL);
+ gettimeofday(&tv, nullptr);
diff = now.tv_sec * 1000000000ULL + now.tv_nsec - ts;
sub.tv_sec = diff / 1000000000ULL;
sub.tv_usec = (diff % 1000000000ULL) / 1000;
@@ -815,7 +815,7 @@ static bool wait_for_hpd(struct node *node, bool send_image_view_on)
{
int fd = node->fd;
int flags = fcntl(node->fd, F_GETFL);
- time_t t = time(NULL);
+ time_t t = time(nullptr);
fcntl(node->fd, F_SETFL, flags | O_NONBLOCK);
for (;;) {
@@ -825,7 +825,7 @@ static bool wait_for_hpd(struct node *node, bool send_image_view_on)
FD_ZERO(&ex_fds);
FD_SET(fd, &ex_fds);
- res = select(fd + 1, NULL, NULL, &ex_fds, &tv);
+ res = select(fd + 1, nullptr, nullptr, &ex_fds, &tv);
if (res < 0) {
fail("select failed with error %d\n", errno);
return false;
@@ -839,7 +839,7 @@ static bool wait_for_hpd(struct node *node, bool send_image_view_on)
break;
}
- if (send_image_view_on && time(NULL) - t > TX_WAIT_FOR_HPD) {
+ if (send_image_view_on && time(nullptr) - t > TX_WAIT_FOR_HPD) {
struct cec_msg image_view_on_msg;
// So the HPD is gone (possibly due to a standby), but
@@ -852,7 +852,7 @@ static bool wait_for_hpd(struct node *node, bool send_image_view_on)
send_image_view_on = false;
}
- if (time(NULL) - t > TX_WAIT_FOR_HPD + TX_WAIT_FOR_HPD_RETURN) {
+ if (time(nullptr) - t > TX_WAIT_FOR_HPD + TX_WAIT_FOR_HPD_RETURN) {
fail("timed out after %d s waiting for HPD to return\n",
TX_WAIT_FOR_HPD + TX_WAIT_FOR_HPD_RETURN);
return false;
@@ -1103,11 +1103,11 @@ static void topology_probe_device(struct node *node, unsigned i, unsigned la)
/* RC Profile and Device Features are assumed to be 1 byte. As of CEC 2.0 only
1 byte is used, but this might be extended in future versions. */
__u8 cec_version, all_device_types;
- const __u8 *rc_profile = NULL, *dev_features = NULL;
+ const __u8 *rc_profile = nullptr, *dev_features = nullptr;
cec_ops_report_features(&msg, &cec_version, &all_device_types,
&rc_profile, &dev_features);
- if (rc_profile == NULL || dev_features == NULL)
+ if (rc_profile == nullptr || dev_features == nullptr)
return;
node->remote[i].rc_profile = *rc_profile;
node->remote[i].dev_features = *dev_features;
@@ -1128,8 +1128,8 @@ static void topology_probe_device(struct node *node, unsigned i, unsigned la)
int main(int argc, char **argv)
{
std::string device;
- const char *driver = NULL;
- const char *adapter = NULL;
+ const char *driver = nullptr;
+ const char *adapter = nullptr;
char short_options[26 * 2 * 2 + 1];
int remote_la = -1;
bool test_remote = false;
@@ -1140,7 +1140,7 @@ int main(int argc, char **argv)
int i;
const char *env_media_apps_color = getenv("MEDIA_APPS_COLOR");
- srandom(time(NULL));
+ srandom(time(nullptr));
if (!env_media_apps_color || !strcmp(env_media_apps_color, "auto"))
show_colors = isatty(STDOUT_FILENO);
else if (!strcmp(env_media_apps_color, "always"))
@@ -1207,10 +1207,10 @@ int main(int argc, char **argv)
adapter = optarg;
break;
case OptReplyThreshold:
- reply_threshold = strtoul(optarg, NULL, 0);
+ reply_threshold = strtoul(optarg, nullptr, 0);
break;
case OptTimeout:
- long_timeout = strtoul(optarg, NULL, 0);
+ long_timeout = strtoul(optarg, nullptr, 0);
break;
case OptColor:
if (!strcmp(optarg, "always"))
@@ -1243,7 +1243,7 @@ int main(int argc, char **argv)
break;
case OptRemote:
if (optarg) {
- remote_la = strtoul(optarg, NULL, 0);
+ remote_la = strtoul(optarg, nullptr, 0);
if (remote_la < 0 || remote_la > 15) {
fprintf(stderr, "--test: invalid remote logical address\n");
usage();
@@ -38,7 +38,7 @@ static int testCap(struct node *node)
struct cec_caps caps;
memset(&caps, 0xff, sizeof(caps));
- fail_on_test(doioctl(node, CEC_ADAP_G_CAPS, NULL) != EFAULT);
+ fail_on_test(doioctl(node, CEC_ADAP_G_CAPS, nullptr) != EFAULT);
fail_on_test(doioctl(node, CEC_ADAP_G_CAPS, &caps));
fail_on_test(caps.available_log_addrs == 0 ||
caps.available_log_addrs > CEC_MAX_LOG_ADDRS);
@@ -53,9 +53,9 @@ static int testInvalidIoctls(struct node *node)
unsigned ioc = _IOC(_IOC_NONE, type, 0xff, 0);
unsigned char buf[0x4000] = {};
- fail_on_test(doioctl(node, ioc, NULL) != ENOTTY);
+ fail_on_test(doioctl(node, ioc, nullptr) != ENOTTY);
ioc = _IOC(_IOC_NONE, type, 0, 0x3fff);
- fail_on_test(doioctl(node, ioc, NULL) != ENOTTY);
+ fail_on_test(doioctl(node, ioc, nullptr) != ENOTTY);
ioc = _IOC(_IOC_READ, type, 0, 0x3fff);
fail_on_test(doioctl(node, ioc, buf) != ENOTTY);
fail_on_test(check_0(buf, sizeof(buf)));
@@ -224,7 +224,7 @@ static int testAdapLogAddrs(struct node *node)
fail("Unknown event %d\n", ev.event);
break;
}
- select(0, NULL, NULL, NULL, &tv);
+ select(0, nullptr, nullptr, nullptr, &tv);
}
} while (!res);
fail_on_test(doioctl(node, CEC_ADAP_S_LOG_ADDRS, &clear));
@@ -234,7 +234,7 @@ static int testAdapLogAddrs(struct node *node)
res = doioctl(node, CEC_DQEVENT, &ev);
fail_on_test(res && res != EAGAIN);
if (res)
- select(0, NULL, NULL, NULL, &tv);
+ select(0, nullptr, nullptr, nullptr, &tv);
} while (res);
fail_on_test(ev.flags & CEC_EVENT_FL_INITIAL_STATE);
fail_on_test(ev.ts == 0);
@@ -249,7 +249,7 @@ static int testAdapLogAddrs(struct node *node)
res = doioctl(node, CEC_DQEVENT, &ev);
fail_on_test(res && res != EAGAIN);
if (res)
- select(0, NULL, NULL, NULL, &tv);
+ select(0, nullptr, nullptr, nullptr, &tv);
} while (res);
fail_on_test(ev.flags & CEC_EVENT_FL_INITIAL_STATE);
fail_on_test(ev.ts == 0);
@@ -448,13 +448,13 @@ static int testTransmit(struct node *node)
}
if (tested_valid_la) {
- time_t cur_t = time(NULL), t;
+ time_t cur_t = time(nullptr), t;
time_t last_t = cur_t + 7;
unsigned max_cnt = 0;
unsigned cnt = 0;
do {
- t = time(NULL);
+ t = time(nullptr);
if (t != cur_t) {
if (cnt > max_cnt)
max_cnt = cnt;
@@ -472,13 +472,13 @@ static int testTransmit(struct node *node)
}
if (tested_invalid_la) {
- time_t cur_t = time(NULL), t;
+ time_t cur_t = time(nullptr), t;
time_t last_t = cur_t + 7;
unsigned max_cnt = 0;
unsigned cnt = 0;
do {
- t = time(NULL);
+ t = time(nullptr);
if (t != cur_t) {
if (cnt > max_cnt)
max_cnt = cnt;
@@ -1062,7 +1062,7 @@ static int testLostMsgs(struct node *node)
if (res == EBUSY) {
struct timeval tv = { 0, 10000 }; // 10 ms
- select(0, NULL, NULL, NULL, &tv);
+ select(0, nullptr, nullptr, nullptr, &tv);
got_busy = true;
} else if (!got_busy) {
tx_queue_depth++;
@@ -1098,7 +1098,7 @@ static int testLostMsgs(struct node *node)
unsigned pending_tx_rx_aborted_msgs = 0;
unsigned pending_rx_msgs = 0;
unsigned pending_rx_cec_version_msgs = 0;
- time_t start = time(NULL);
+ time_t start = time(nullptr);
__u8 last_init = 0xff;
__u64 last_ts = 0;
unsigned tx_repeats = 0;
@@ -1211,7 +1211,7 @@ static int testLostMsgs(struct node *node)
if (pending_quick_msgs < pending_msgs)
printf("\t\tReceived %d messages immediately, and %d over %ld seconds\n",
pending_quick_msgs, pending_msgs - pending_quick_msgs,
- time(NULL) - start);
+ time(nullptr) - start);
}
if (fail_msg)
return fail("There were %d messages in the receive queue for %d transmits\n",
@@ -255,19 +255,19 @@ static bool wait_changing_power_status(struct node *node, unsigned me, unsigned
unsigned &unresponsive_time)
{
__u8 old_status;
- time_t t = time(NULL);
+ time_t t = time(nullptr);
announce("Checking for power status change. This may take up to %llu s.", (long long)long_timeout);
if (!get_power_status(node, me, la, old_status))
return false;
- while (time(NULL) - t < long_timeout) {
+ while (time(nullptr) - t < long_timeout) {
__u8 power_status;
if (!get_power_status(node, me, la, power_status)) {
/* Some TVs become completely unresponsive when transitioning
between power modes. Register that this happens, but continue
the test. */
- unresponsive_time = time(NULL) - t;
+ unresponsive_time = time(nullptr) - t;
} else if (old_status != power_status) {
new_status = power_status;
return true;
@@ -283,25 +283,25 @@ static bool poll_stable_power_status(struct node *node, unsigned me, unsigned la
{
bool transient = false;
unsigned time_to_transient = 0;
- time_t t = time(NULL);
+ time_t t = time(nullptr);
/* Some devices can use several seconds to transition from one power
state to another, so the power state must be repeatedly polled */
announce("Waiting for new stable power status. This may take up to %llu s.", (long long)long_timeout);
- while (time(NULL) - t < long_timeout) {
+ while (time(nullptr) - t < long_timeout) {
__u8 power_status;
if (!get_power_status(node, me, la, power_status)) {
/* Some TVs become completely unresponsive when transitioning
between power modes. Register that this happens, but continue
the test. */
- unresponsive_time = time(NULL) - t;
+ unresponsive_time = time(nullptr) - t;
sleep(SLEEP_POLL_POWER_STATUS);
continue;
}
if (!transient && (power_status == CEC_OP_POWER_STATUS_TO_ON ||
power_status == CEC_OP_POWER_STATUS_TO_STANDBY)) {
- time_to_transient = time(NULL) - t;
+ time_to_transient = time(nullptr) - t;
transient = true;
warn_once_on_test(expected_status == CEC_OP_POWER_STATUS_ON &&
power_status == CEC_OP_POWER_STATUS_TO_STANDBY);
@@ -565,7 +565,7 @@ static int power_state_transitions(struct node *node, unsigned me, unsigned la,
cec_msg_init(&msg, me, la);
cec_msg_standby(&msg);
fail_on_test(!transmit_timeout(node, &msg));
- time_t start = time(NULL);
+ time_t start = time(nullptr);
int res = util_receive(node, la, long_timeout * 1000, &msg, CEC_MSG_STANDBY,
CEC_MSG_REPORT_POWER_STATUS);
fail_on_test(!res);
@@ -576,7 +576,7 @@ static int power_state_transitions(struct node *node, unsigned me, unsigned la,
info("so any kernel released after January 2020 should have this fix.\n");
return OK_PRESUMED;
}
- if (time(NULL) - start > 3)
+ if (time(nullptr) - start > 3)
warn("The first Report Power Status broadcast arrived > 3s after sending <Standby>\n");
if (msg.msg[2] == CEC_OP_POWER_STATUS_STANDBY)
return 0;
@@ -603,10 +603,10 @@ static int power_state_transitions(struct node *node, unsigned me, unsigned la,
fail_on_test(doioctl(node, CEC_TRANSMIT, &msg));
}
fail_on_test(!(msg.tx_status & CEC_TX_STATUS_OK));
- start = time(NULL);
+ start = time(nullptr);
fail_on_test(util_receive(node, la, long_timeout * 1000, &msg, opcode,
CEC_MSG_REPORT_POWER_STATUS) <= 0);
- if (time(NULL) - start > 3)
+ if (time(nullptr) - start > 3)
warn("The first Report Power Status broadcast arrived > 3s after sending <%s>\n",
opcode == CEC_MSG_IMAGE_VIEW_ON ? "Image View On" : "Set Stream Path");
if (msg.msg[2] == CEC_OP_POWER_STATUS_ON)
@@ -152,7 +152,7 @@ int system_info_give_features(struct node *node, unsigned me, unsigned la, bool
const __u8 *rc_profile, *dev_features;
cec_ops_report_features(&msg, &cec_version, &all_device_types, &rc_profile, &dev_features);
- fail_on_test(rc_profile == NULL || dev_features == NULL);
+ fail_on_test(rc_profile == nullptr || dev_features == nullptr);
info("All Device Types: \t\t%s\n", cec_all_dev_types2s(all_device_types).c_str());
info("RC Profile: \t%s", cec_rc_src_prof2s(*rc_profile, "").c_str());
info("Device Features: \t%s", cec_dev_feat2s(*dev_features, "").c_str());
@@ -1529,7 +1529,7 @@ int setExpectedResult(char *optarg, bool no_warnings)
std::string name = safename(optarg);
if (mapTests.find(name) == mapTests.end())
return 1;
- mapTests[name] = strtoul(equal + 1, NULL, 0);
+ mapTests[name] = strtoul(equal + 1, nullptr, 0);
mapTestsNoWarnings[name] = no_warnings;
return 0;
}
@@ -151,84 +151,84 @@ bool verbose;
typedef std::vector<cec_msg> msg_vec;
static struct option long_options[] = {
- { "device", required_argument, 0, OptSetDevice },
- { "adapter", required_argument, 0, OptSetAdapter },
- { "driver", required_argument, 0, OptSetDriver },
- { "help", no_argument, 0, OptHelp },
- { "trace", no_argument, 0, OptTrace },
- { "verbose", no_argument, 0, OptVerbose },
- { "wall-clock", no_argument, 0, OptWallClock },
- { "osd-name", required_argument, 0, OptOsdName },
- { "phys-addr-from-edid-poll", required_argument, 0, OptPhysAddrFromEDIDPoll },
- { "phys-addr-from-edid", required_argument, 0, OptPhysAddrFromEDID },
- { "phys-addr", required_argument, 0, OptPhysAddr },
- { "vendor-id", required_argument, 0, OptVendorID },
- { "cec-version-1.4", no_argument, 0, OptCECVersion1_4 },
- { "allow-unreg-fallback", no_argument, 0, OptAllowUnregFallback },
- { "no-rc-passthrough", no_argument, 0, OptNoRC },
- { "reply-to-followers", no_argument, 0, OptReplyToFollowers },
- { "raw-msg", no_argument, 0, OptRawMsg },
- { "timeout", required_argument, 0, OptTimeout },
- { "clear", no_argument, 0, OptClear },
- { "wait-for-msgs", no_argument, 0, OptWaitForMsgs },
- { "monitor", no_argument, 0, OptMonitor },
- { "monitor-all", no_argument, 0, OptMonitorAll },
- { "monitor-pin", no_argument, 0, OptMonitorPin },
- { "monitor-time", required_argument, 0, OptMonitorTime },
- { "ignore", required_argument, 0, OptIgnore },
- { "store-pin", required_argument, 0, OptStorePin },
- { "analyze-pin", required_argument, 0, OptAnalyzePin },
- { "no-reply", no_argument, 0, OptToggleNoReply },
- { "non-blocking", no_argument, 0, OptNonBlocking },
- { "logical-address", no_argument, 0, OptLogicalAddress },
- { "logical-addresses", no_argument, 0, OptLogicalAddresses },
- { "to", required_argument, 0, OptTo },
- { "from", required_argument, 0, OptFrom },
- { "skip-info", no_argument, 0, OptSkipInfo },
- { "show-raw", no_argument, 0, OptShowRaw },
- { "show-topology", no_argument, 0, OptShowTopology },
- { "list-devices", no_argument, 0, OptListDevices },
- { "poll", no_argument, 0, OptPoll },
- { "rc-tv-profile-1", no_argument, 0, OptRcTVProfile1 },
- { "rc-tv-profile-2", no_argument, 0, OptRcTVProfile2 },
- { "rc-tv-profile-3", no_argument, 0, OptRcTVProfile3 },
- { "rc-tv-profile-4", no_argument, 0, OptRcTVProfile4 },
- { "rc-src-dev-root", no_argument, 0, OptRcSrcDevRoot },
- { "rc-src-dev-setup", no_argument, 0, OptRcSrcDevSetup },
- { "rc-src-contents", no_argument, 0, OptRcSrcContents },
- { "rc-src-media-top", no_argument, 0, OptRcSrcMediaTop },
- { "rc-src-media-context", no_argument, 0, OptRcSrcMediaContext },
- { "feat-record-tv-screen", no_argument, 0, OptFeatRecordTVScreen },
- { "feat-set-osd-string", no_argument, 0, OptFeatSetOSDString },
- { "feat-deck-control", no_argument, 0, OptFeatDeckControl },
- { "feat-set-audio-rate", no_argument, 0, OptFeatSetAudioRate },
- { "feat-sink-has-arc-tx", no_argument, 0, OptFeatSinkHasARCTx },
- { "feat-source-has-arc-rx", no_argument, 0, OptFeatSourceHasARCRx },
-
- { "tv", no_argument, 0, OptTV },
- { "record", no_argument, 0, OptRecord },
- { "tuner", no_argument, 0, OptTuner },
- { "playback", no_argument, 0, OptPlayback },
- { "audio", no_argument, 0, OptAudio },
- { "processor", no_argument, 0, OptProcessor },
- { "switch", no_argument, 0, OptSwitch },
- { "cdc-only", no_argument, 0, OptCDCOnly },
- { "unregistered", no_argument, 0, OptUnregistered },
- { "help-all", no_argument, 0, OptHelpAll },
-
- { "version", no_argument, 0, OptVersion },
+ { "device", required_argument, nullptr, OptSetDevice },
+ { "adapter", required_argument, nullptr, OptSetAdapter },
+ { "driver", required_argument, nullptr, OptSetDriver },
+ { "help", no_argument, nullptr, OptHelp },
+ { "trace", no_argument, nullptr, OptTrace },
+ { "verbose", no_argument, nullptr, OptVerbose },
+ { "wall-clock", no_argument, nullptr, OptWallClock },
+ { "osd-name", required_argument, nullptr, OptOsdName },
+ { "phys-addr-from-edid-poll", required_argument, nullptr, OptPhysAddrFromEDIDPoll },
+ { "phys-addr-from-edid", required_argument, nullptr, OptPhysAddrFromEDID },
+ { "phys-addr", required_argument, nullptr, OptPhysAddr },
+ { "vendor-id", required_argument, nullptr, OptVendorID },
+ { "cec-version-1.4", no_argument, nullptr, OptCECVersion1_4 },
+ { "allow-unreg-fallback", no_argument, nullptr, OptAllowUnregFallback },
+ { "no-rc-passthrough", no_argument, nullptr, OptNoRC },
+ { "reply-to-followers", no_argument, nullptr, OptReplyToFollowers },
+ { "raw-msg", no_argument, nullptr, OptRawMsg },
+ { "timeout", required_argument, nullptr, OptTimeout },
+ { "clear", no_argument, nullptr, OptClear },
+ { "wait-for-msgs", no_argument, nullptr, OptWaitForMsgs },
+ { "monitor", no_argument, nullptr, OptMonitor },
+ { "monitor-all", no_argument, nullptr, OptMonitorAll },
+ { "monitor-pin", no_argument, nullptr, OptMonitorPin },
+ { "monitor-time", required_argument, nullptr, OptMonitorTime },
+ { "ignore", required_argument, nullptr, OptIgnore },
+ { "store-pin", required_argument, nullptr, OptStorePin },
+ { "analyze-pin", required_argument, nullptr, OptAnalyzePin },
+ { "no-reply", no_argument, nullptr, OptToggleNoReply },
+ { "non-blocking", no_argument, nullptr, OptNonBlocking },
+ { "logical-address", no_argument, nullptr, OptLogicalAddress },
+ { "logical-addresses", no_argument, nullptr, OptLogicalAddresses },
+ { "to", required_argument, nullptr, OptTo },
+ { "from", required_argument, nullptr, OptFrom },
+ { "skip-info", no_argument, nullptr, OptSkipInfo },
+ { "show-raw", no_argument, nullptr, OptShowRaw },
+ { "show-topology", no_argument, nullptr, OptShowTopology },
+ { "list-devices", no_argument, nullptr, OptListDevices },
+ { "poll", no_argument, nullptr, OptPoll },
+ { "rc-tv-profile-1", no_argument, nullptr, OptRcTVProfile1 },
+ { "rc-tv-profile-2", no_argument, nullptr, OptRcTVProfile2 },
+ { "rc-tv-profile-3", no_argument, nullptr, OptRcTVProfile3 },
+ { "rc-tv-profile-4", no_argument, nullptr, OptRcTVProfile4 },
+ { "rc-src-dev-root", no_argument, nullptr, OptRcSrcDevRoot },
+ { "rc-src-dev-setup", no_argument, nullptr, OptRcSrcDevSetup },
+ { "rc-src-contents", no_argument, nullptr, OptRcSrcContents },
+ { "rc-src-media-top", no_argument, nullptr, OptRcSrcMediaTop },
+ { "rc-src-media-context", no_argument, nullptr, OptRcSrcMediaContext },
+ { "feat-record-tv-screen", no_argument, nullptr, OptFeatRecordTVScreen },
+ { "feat-set-osd-string", no_argument, nullptr, OptFeatSetOSDString },
+ { "feat-deck-control", no_argument, nullptr, OptFeatDeckControl },
+ { "feat-set-audio-rate", no_argument, nullptr, OptFeatSetAudioRate },
+ { "feat-sink-has-arc-tx", no_argument, nullptr, OptFeatSinkHasARCTx },
+ { "feat-source-has-arc-rx", no_argument, nullptr, OptFeatSourceHasARCRx },
+
+ { "tv", no_argument, nullptr, OptTV },
+ { "record", no_argument, nullptr, OptRecord },
+ { "tuner", no_argument, nullptr, OptTuner },
+ { "playback", no_argument, nullptr, OptPlayback },
+ { "audio", no_argument, nullptr, OptAudio },
+ { "processor", no_argument, nullptr, OptProcessor },
+ { "switch", no_argument, nullptr, OptSwitch },
+ { "cdc-only", no_argument, nullptr, OptCDCOnly },
+ { "unregistered", no_argument, nullptr, OptUnregistered },
+ { "help-all", no_argument, nullptr, OptHelpAll },
+
+ { "version", no_argument, nullptr, OptVersion },
CEC_PARSE_LONG_OPTS
- { "vendor-remote-button-down", required_argument, 0, OptVendorRemoteButtonDown }, \
- { "vendor-command-with-id", required_argument, 0, OptVendorCommandWithID }, \
- { "vendor-command", required_argument, 0, OptVendorCommand }, \
- { "custom-command", required_argument, 0, OptCustomCommand }, \
+ { "vendor-remote-button-down", required_argument, nullptr, OptVendorRemoteButtonDown }, \
+ { "vendor-command-with-id", required_argument, nullptr, OptVendorCommandWithID }, \
+ { "vendor-command", required_argument, nullptr, OptVendorCommand }, \
+ { "custom-command", required_argument, nullptr, OptCustomCommand }, \
- { "test-power-cycle", optional_argument, 0, OptTestPowerCycle }, \
- { "stress-test-power-cycle", required_argument, 0, OptStressTestPowerCycle }, \
+ { "test-power-cycle", optional_argument, nullptr, OptTestPowerCycle }, \
+ { "stress-test-power-cycle", required_argument, nullptr, OptStressTestPowerCycle }, \
- { 0, 0, 0, 0 }
+ { nullptr, 0, nullptr, 0 }
};
static void print_version()
@@ -799,9 +799,9 @@ static void wait_for_msgs(const struct node &node, __u32 monitor_time)
time_t t;
fcntl(fd, F_SETFL, fcntl(fd, F_GETFL) | O_NONBLOCK);
- t = time(NULL) + monitor_time;
+ t = time(nullptr) + monitor_time;
- while (!monitor_time || time(NULL) < t) {
+ while (!monitor_time || time(nullptr) < t) {
struct timeval tv = { 1, 0 };
int res;
@@ -810,7 +810,7 @@ static void wait_for_msgs(const struct node &node, __u32 monitor_time)
FD_ZERO(&ex_fds);
FD_SET(fd, &rd_fds);
FD_SET(fd, &ex_fds);
- res = select(fd + 1, &rd_fds, NULL, &ex_fds, &tv);
+ res = select(fd + 1, &rd_fds, nullptr, &ex_fds, &tv);
if (res < 0)
break;
if (FD_ISSET(fd, &ex_fds)) {
@@ -842,7 +842,7 @@ static void monitor(const struct node &node, __u32 monitor_time, const char *sto
fd_set rd_fds;
fd_set ex_fds;
int fd = node.fd;
- FILE *fstore = NULL;
+ FILE *fstore = nullptr;
time_t t;
if (options[OptMonitorAll])
@@ -880,7 +880,7 @@ static void monitor(const struct node &node, __u32 monitor_time, const char *sto
fstore = stdout;
else
fstore = fopen(store_pin, "w+");
- if (fstore == NULL) {
+ if (fstore == nullptr) {
fprintf(stderr, "Failed to open %s: %s\n", store_pin,
strerror(errno));
std::exit(EXIT_FAILURE);
@@ -900,9 +900,9 @@ static void monitor(const struct node &node, __u32 monitor_time, const char *sto
printf("\n");
fcntl(fd, F_SETFL, fcntl(fd, F_GETFL) | O_NONBLOCK);
- t = time(NULL) + monitor_time;
+ t = time(nullptr) + monitor_time;
- while (!monitor_time || time(NULL) < t) {
+ while (!monitor_time || time(nullptr) < t) {
struct timeval tv = { 1, 0 };
bool pin_event = false;
int res;
@@ -912,7 +912,7 @@ static void monitor(const struct node &node, __u32 monitor_time, const char *sto
FD_ZERO(&ex_fds);
FD_SET(fd, &rd_fds);
FD_SET(fd, &ex_fds);
- res = select(fd + 1, &rd_fds, NULL, &ex_fds, &tv);
+ res = select(fd + 1, &rd_fds, nullptr, &ex_fds, &tv);
if (res < 0)
break;
if (FD_ISSET(fd, &rd_fds)) {
@@ -979,7 +979,7 @@ static void analyze(const char *analyze_pin)
fanalyze = stdin;
else
fanalyze = fopen(analyze_pin, "r");
- if (fanalyze == NULL) {
+ if (fanalyze == nullptr) {
fprintf(stderr, "Failed to open %s: %s\n", analyze_pin,
strerror(errno));
std::exit(EXIT_FAILURE);
@@ -1496,7 +1496,7 @@ static void stress_test_power_cycle(const struct node &node, unsigned cnt,
mod_usleep = 1000000 * (max_sleep - min_sleep) + 1;
if (!has_seed)
- seed = time(NULL);
+ seed = time(nullptr);
if (mod_usleep)
printf("Randomizer seed: %u\n\n", seed);
@@ -1734,7 +1734,7 @@ static __u16 parse_phys_addr_from_edid(const char *edid_path)
__u16 pa = CEC_PHYS_ADDR_INVALID;
__u8 edid[256];
- if (f == NULL)
+ if (f == nullptr)
return pa;
if (fread(edid, sizeof(edid), 1, f) == 1) {
unsigned int loc = cec_get_edid_spa_location(edid, sizeof(edid));
@@ -1780,7 +1780,7 @@ static void *thread_edid_poll(void *arg)
cec_phys_addr_exp(phys_addr));
}
}
- return NULL;
+ return nullptr;
}
using dev_vec = std::vector<std::string>;
@@ -1796,7 +1796,7 @@ static void list_devices()
struct cec_caps caps;
dp = opendir("/dev");
- if (dp == NULL) {
+ if (dp == nullptr) {
perror("Couldn't open the directory");
return;
}
@@ -1864,8 +1864,8 @@ static void list_devices()
int main(int argc, char **argv)
{
std::string device;
- const char *driver = NULL;
- const char *adapter = NULL;
+ const char *driver = nullptr;
+ const char *adapter = nullptr;
const struct cec_msg_args *opt;
msg_vec msgs;
char short_options[26 * 2 * 2 + 1];
@@ -1890,8 +1890,8 @@ int main(int argc, char **argv)
__u8 rc_tv = 0;
__u8 rc_src = 0;
const char *osd_name = "";
- const char *store_pin = NULL;
- const char *analyze_pin = NULL;
+ const char *store_pin = nullptr;
+ const char *analyze_pin = nullptr;
bool reply = true;
int idx = 0;
int fd = -1;
@@ -1944,18 +1944,18 @@ int main(int argc, char **argv)
verbose = true;
break;
case OptFrom:
- from = strtoul(optarg, NULL, 0) & 0xf;
+ from = strtoul(optarg, nullptr, 0) & 0xf;
break;
case OptTo:
- to = strtoul(optarg, NULL, 0) & 0xf;
+ to = strtoul(optarg, nullptr, 0) & 0xf;
if (first_to == 0xff)
first_to = to;
break;
case OptTimeout:
- timeout = strtoul(optarg, NULL, 0);
+ timeout = strtoul(optarg, nullptr, 0);
break;
case OptMonitorTime:
- monitor_time = strtoul(optarg, NULL, 0);
+ monitor_time = strtoul(optarg, nullptr, 0);
break;
case OptIgnore: {
bool all_la = !strncmp(optarg, "all", 3);
@@ -1966,7 +1966,7 @@ int main(int argc, char **argv)
if (sep)
all_opcodes = !strncmp(sep + 1, "all", 3);
if (!all_la) {
- la = strtoul(optarg, NULL, 0);
+ la = strtoul(optarg, nullptr, 0);
if (la > 15) {
fprintf(stderr, "invalid logical address (> 15)\n");
@@ -1979,7 +1979,7 @@ int main(int argc, char **argv)
if (!strncmp(sep + 1, "poll", 4)) {
opcode = POLL_FAKE_OPCODE;
} else {
- opcode = strtoul(sep + 1, NULL, 0);
+ opcode = strtoul(sep + 1, nullptr, 0);
if (opcode > 255) {
fprintf(stderr, "invalid opcode (> 255)\n");
usage();
@@ -2019,7 +2019,7 @@ int main(int argc, char **argv)
osd_name = optarg;
break;
case OptVendorID:
- vendor_id = strtoul(optarg, NULL, 0) & 0x00ffffff;
+ vendor_id = strtoul(optarg, nullptr, 0) & 0x00ffffff;
break;
case OptRcTVProfile1:
rc_tv = CEC_OP_FEAT_RC_TV_PROFILE_1;
@@ -2096,7 +2096,7 @@ int main(int argc, char **argv)
case OptVendorCommand: {
static const char *arg_names[] = {
"payload",
- NULL
+ nullptr
};
char *value, *endptr, *subs = optarg;
__u8 size = 0;
@@ -2112,7 +2112,7 @@ int main(int argc, char **argv)
break;
}
value = std::strchr(value, ':');
- if (value == NULL)
+ if (value == nullptr)
break;
value++;
}
@@ -2131,7 +2131,7 @@ int main(int argc, char **argv)
static const char *arg_names[] = {
"cmd",
"payload",
- NULL
+ nullptr
};
char *value, *endptr, *subs = optarg;
bool have_cmd = false;
@@ -2153,7 +2153,7 @@ int main(int argc, char **argv)
break;
}
value = std::strchr(value, ':');
- if (value == NULL)
+ if (value == nullptr)
break;
value++;
}
@@ -2174,7 +2174,7 @@ int main(int argc, char **argv)
static const char *arg_names[] = {
"vendor-id",
"cmd",
- NULL
+ nullptr
};
char *value, *endptr, *subs = optarg;
__u32 vendor_id = 0;
@@ -2184,7 +2184,7 @@ int main(int argc, char **argv)
while (*subs != '\0') {
switch (cec_parse_subopt(&subs, arg_names, &value)) {
case 0:
- vendor_id = strtol(value, 0L, 0);
+ vendor_id = strtol(value, nullptr, 0);
break;
case 1:
while (size < sizeof(bytes)) {
@@ -2194,7 +2194,7 @@ int main(int argc, char **argv)
break;
}
value = std::strchr(value, ':');
- if (value == NULL)
+ if (value == nullptr)
break;
value++;
}
@@ -2212,7 +2212,7 @@ int main(int argc, char **argv)
case OptVendorRemoteButtonDown: {
static const char *arg_names[] = {
"rc-code",
- NULL
+ nullptr
};
char *value, *endptr, *subs = optarg;
__u8 size = 0;
@@ -2228,7 +2228,7 @@ int main(int argc, char **argv)
break;
}
value = std::strchr(value, ':');
- if (value == NULL)
+ if (value == nullptr)
break;
value++;
}
@@ -2262,7 +2262,7 @@ int main(int argc, char **argv)
static const char *arg_names[] = {
"polls",
"sleep",
- NULL
+ nullptr
};
char *value, *subs = optarg;
@@ -2273,10 +2273,10 @@ int main(int argc, char **argv)
while (*subs != '\0') {
switch (cec_parse_subopt(&subs, arg_names, &value)) {
case 0:
- test_pwr_cycle_polls = strtoul(value, 0L, 0);
+ test_pwr_cycle_polls = strtoul(value, nullptr, 0);
break;
case 1:
- test_pwr_cycle_sleep = strtoul(value, 0L, 0);
+ test_pwr_cycle_sleep = strtoul(value, nullptr, 0);
break;
default:
std::exit(EXIT_FAILURE);
@@ -2295,36 +2295,36 @@ int main(int argc, char **argv)
"sleep-before-on",
"sleep-before-off",
"polls",
- NULL
+ nullptr
};
char *value, *subs = optarg;
while (*subs != '\0') {
switch (cec_parse_subopt(&subs, arg_names, &value)) {
case 0:
- stress_test_pwr_cycle_cnt = strtoul(value, 0L, 0);
+ stress_test_pwr_cycle_cnt = strtoul(value, nullptr, 0);
break;
case 1:
- stress_test_pwr_cycle_min_sleep = strtoul(value, 0L, 0);
+ stress_test_pwr_cycle_min_sleep = strtoul(value, nullptr, 0);
break;
case 2:
- stress_test_pwr_cycle_max_sleep = strtoul(value, 0L, 0);
+ stress_test_pwr_cycle_max_sleep = strtoul(value, nullptr, 0);
break;
case 3:
stress_test_pwr_cycle_has_seed = true;
- stress_test_pwr_cycle_seed = strtoul(value, 0L, 0);
+ stress_test_pwr_cycle_seed = strtoul(value, nullptr, 0);
break;
case 4:
- stress_test_pwr_cycle_repeats = strtoul(value, 0L, 0);
+ stress_test_pwr_cycle_repeats = strtoul(value, nullptr, 0);
break;
case 5:
- stress_test_pwr_cycle_sleep_before_on = strtod(value, NULL);
+ stress_test_pwr_cycle_sleep_before_on = strtod(value, nullptr);
break;
case 6:
- stress_test_pwr_cycle_sleep_before_off = strtod(value, NULL);
+ stress_test_pwr_cycle_sleep_before_off = strtod(value, nullptr);
break;
case 7:
- stress_test_pwr_cycle_polls = strtoul(value, 0L, 0);
+ stress_test_pwr_cycle_polls = strtoul(value, nullptr, 0);
break;
default:
std::exit(EXIT_FAILURE);
@@ -2435,7 +2435,7 @@ int main(int argc, char **argv)
device = "/dev/cec0";
clock_gettime(CLOCK_MONOTONIC, &start_monotonic);
- gettimeofday(&start_timeofday, NULL);
+ gettimeofday(&start_timeofday, nullptr);
if ((fd = open(device.c_str(), O_RDWR)) < 0) {
fprintf(stderr, "Failed to open %s: %s\n", device.c_str(),
@@ -2615,7 +2615,7 @@ int main(int argc, char **argv)
if (options[OptPhysAddrFromEDIDPoll]) {
pthread_t t;
- int ret = pthread_create(&t, NULL, thread_edid_poll, &node);
+ int ret = pthread_create(&t, nullptr, thread_edid_poll, &node);
if (ret) {
fprintf(stderr, "Failed to start EDID poll thread: %s\n",
strerror(errno));
@@ -49,23 +49,23 @@ bool show_warnings = true;
unsigned warnings;
static struct option long_options[] = {
- { "device", required_argument, 0, OptSetDevice },
- { "adapter", required_argument, 0, OptSetAdapter },
- { "driver", required_argument, 0, OptSetDriver },
- { "help", no_argument, 0, OptHelp },
- { "no-warnings", no_argument, 0, OptNoWarnings },
- { "trace", no_argument, 0, OptTrace },
- { "verbose", no_argument, 0, OptVerbose },
- { "show-msgs", no_argument, 0, OptShowMsgs },
- { "show-state", no_argument, 0, OptShowState },
- { "wall-clock", no_argument, 0, OptWallClock },
- { "service-by-dig-id", no_argument, 0, OptServiceByDigID },
- { "standby", no_argument, 0, OptStandby },
- { "toggle-power-status", required_argument, 0, OptTogglePowerStatus },
- { "ignore", required_argument, 0, OptIgnore },
- { "version", no_argument, 0, OptVersion },
-
- { 0, 0, 0, 0 }
+ { "device", required_argument, nullptr, OptSetDevice },
+ { "adapter", required_argument, nullptr, OptSetAdapter },
+ { "driver", required_argument, nullptr, OptSetDriver },
+ { "help", no_argument, nullptr, OptHelp },
+ { "no-warnings", no_argument, nullptr, OptNoWarnings },
+ { "trace", no_argument, nullptr, OptTrace },
+ { "verbose", no_argument, nullptr, OptVerbose },
+ { "show-msgs", no_argument, nullptr, OptShowMsgs },
+ { "show-state", no_argument, nullptr, OptShowState },
+ { "wall-clock", no_argument, nullptr, OptWallClock },
+ { "service-by-dig-id", no_argument, nullptr, OptServiceByDigID },
+ { "standby", no_argument, nullptr, OptStandby },
+ { "toggle-power-status", required_argument, nullptr, OptTogglePowerStatus },
+ { "ignore", required_argument, nullptr, OptIgnore },
+ { "version", no_argument, nullptr, OptVersion },
+
+ { nullptr, 0, nullptr, 0 }
};
#define STR(x) #x
@@ -320,8 +320,8 @@ int main(int argc, char **argv)
{
std::string device;
struct node node = { };
- const char *driver = NULL;
- const char *adapter = NULL;
+ const char *driver = nullptr;
+ const char *adapter = nullptr;
unsigned toggle_power_status = 0;
char short_options[26 * 2 * 2 + 1];
int idx = 0;
@@ -391,7 +391,7 @@ int main(int argc, char **argv)
show_state = true;
break;
case OptTogglePowerStatus:
- toggle_power_status = strtoul(optarg, NULL, 0);
+ toggle_power_status = strtoul(optarg, nullptr, 0);
break;
case OptIgnore: {
bool all_la = !strncmp(optarg, "all", 3);
@@ -402,7 +402,7 @@ int main(int argc, char **argv)
if (sep)
all_opcodes = !strncmp(sep + 1, "all", 3);
if (!all_la) {
- la = strtoul(optarg, NULL, 0);
+ la = strtoul(optarg, nullptr, 0);
if (la > 15) {
fprintf(stderr, "invalid logical address (> 15)\n");
@@ -412,7 +412,7 @@ int main(int argc, char **argv)
la_mask = 1 << la;
}
if (!all_opcodes) {
- opcode = strtoul(sep + 1, NULL, 0);
+ opcode = strtoul(sep + 1, nullptr, 0);
if (opcode > 255) {
fprintf(stderr, "invalid opcode (> 255)\n");
usage();
@@ -147,7 +147,7 @@ static bool exit_standby(struct node *node)
node->state.power_status == CEC_OP_POWER_STATUS_TO_STANDBY) {
node->state.old_power_status = node->state.power_status;
node->state.power_status = CEC_OP_POWER_STATUS_ON;
- node->state.power_status_changed_time = time(NULL);
+ node->state.power_status_changed_time = time(nullptr);
dev_info("Changing state to on\n");
return true;
}
@@ -160,7 +160,7 @@ static bool enter_standby(struct node *node)
node->state.power_status == CEC_OP_POWER_STATUS_TO_ON) {
node->state.old_power_status = node->state.power_status;
node->state.power_status = CEC_OP_POWER_STATUS_STANDBY;
- node->state.power_status_changed_time = time(NULL);
+ node->state.power_status_changed_time = time(nullptr);
dev_info("Changing state to standby\n");
return true;
}
@@ -222,7 +222,7 @@ static bool pa_is_upstream_from(__u16 pa1, __u16 pa2)
static __u8 current_power_state(struct node *node)
{
- time_t t = time(NULL);
+ time_t t = time(nullptr);
if (t - node->state.power_status_changed_time <= time_to_transient)
return node->state.old_power_status;
@@ -864,10 +864,10 @@ void testProcessing(struct node *node, bool wallclock)
unsigned me;
unsigned last_poll_la = 15;
__u8 last_pwr_state = current_power_state(node);
- time_t last_pwr_status_toggle = time(NULL);
+ time_t last_pwr_status_toggle = time(nullptr);
clock_gettime(CLOCK_MONOTONIC, &start_monotonic);
- gettimeofday(&start_timeofday, NULL);
+ gettimeofday(&start_timeofday, nullptr);
doioctl(node, CEC_S_MODE, &mode);
doioctl(node, CEC_ADAP_G_LOG_ADDRS, &laddrs);
@@ -885,7 +885,7 @@ void testProcessing(struct node *node, bool wallclock)
FD_ZERO(&ex_fds);
FD_SET(fd, &rd_fds);
FD_SET(fd, &ex_fds);
- res = select(fd + 1, &rd_fds, NULL, &ex_fds, &timeval);
+ res = select(fd + 1, &rd_fds, nullptr, &ex_fds, &timeval);
if (res < 0)
break;
if (FD_ISSET(fd, &ex_fds)) {
@@ -967,8 +967,8 @@ void testProcessing(struct node *node, bool wallclock)
}
if (node->state.toggle_power_status && cec_has_tv(1 << me) &&
- (time(NULL) - last_pwr_status_toggle > node->state.toggle_power_status)) {
- last_pwr_status_toggle = time(NULL);
+ (time(nullptr) - last_pwr_status_toggle > node->state.toggle_power_status)) {
+ last_pwr_status_toggle = time(nullptr);
if (pwr_state & 1) // standby or to-standby
exit_standby(node);
else
@@ -45,7 +45,7 @@ static struct {
{ "dvr", MEDIA_TYPE_DVB_DVR },
{ "net", MEDIA_TYPE_DVB_NET },
{ "ca", MEDIA_TYPE_DTV_CA },
- { NULL, MEDIA_TYPE_UNKNOWN }
+ { nullptr, MEDIA_TYPE_UNKNOWN }
};
media_type mi_media_detect_type(const char *device)
@@ -166,12 +166,12 @@ std::string mi_get_devpath_from_dev_t(dev_t dev)
FILE *uevent_fd = fopen(media_uevent_path.c_str(), "r");
- if (uevent_fd == NULL) {
+ if (uevent_fd == nullptr) {
fprintf(stderr, "failed to open %s\n", media_uevent_path.c_str());
return "";
}
- char *line = NULL;
+ char *line = nullptr;
size_t size = 0;
std::string devpath;
@@ -210,7 +210,7 @@ int mi_get_media_fd(int fd, const char *bus_info)
DIR *dp;
struct dirent *ep;
dp = opendir(media_path.c_str());
- if (dp == NULL)
+ if (dp == nullptr)
return -1;
media_path[0] = 0;
while ((ep = readdir(dp))) {
@@ -237,7 +237,7 @@ int mi_get_media_fd(int fd, const char *bus_info)
static const flag_def entity_flags_def[] = {
{ MEDIA_ENT_FL_DEFAULT, "default" },
{ MEDIA_ENT_FL_CONNECTOR, "connector" },
- { 0, NULL }
+ { 0, nullptr }
};
std::string mi_entflags2s(__u32 flags)
@@ -267,7 +267,7 @@ static const flag_def interface_types_def[] = {
{ MEDIA_INTF_T_ALSA_HWDEP, "ALSA HWDEP" },
{ MEDIA_INTF_T_ALSA_SEQUENCER, "ALSA Sequencer" },
{ MEDIA_INTF_T_ALSA_TIMER, "ALSA Timer" },
- { 0, NULL }
+ { 0, nullptr }
};
std::string mi_ifacetype2s(__u32 type)
@@ -314,7 +314,7 @@ static const flag_def entity_functions_def[] = {
{ MEDIA_ENT_F_PROC_VIDEO_ENCODER, "Video Encoder" },
{ MEDIA_ENT_F_VID_MUX, "Video Muxer" },
{ MEDIA_ENT_F_VID_IF_BRIDGE, "Video Interface Bridge" },
- { 0, NULL }
+ { 0, nullptr }
};
std::string mi_entfunction2s(__u32 function, bool *is_invalid)
@@ -376,7 +376,7 @@ static const flag_def pad_flags_def[] = {
{ MEDIA_PAD_FL_SINK, "Sink" },
{ MEDIA_PAD_FL_SOURCE, "Source" },
{ MEDIA_PAD_FL_MUST_CONNECT, "Must Connect" },
- { 0, NULL }
+ { 0, nullptr }
};
std::string mi_padflags2s(__u32 flags)
@@ -388,7 +388,7 @@ static const flag_def link_flags_def[] = {
{ MEDIA_LNK_FL_ENABLED, "Enabled" },
{ MEDIA_LNK_FL_IMMUTABLE, "Immutable" },
{ MEDIA_LNK_FL_DYNAMIC, "Dynamic" },
- { 0, NULL }
+ { 0, nullptr }
};
std::string mi_linkflags2s(__u32 flags)
@@ -512,7 +512,7 @@ static __u32 read_topology(int media_fd, __u32 major, __u32 minor,
__u32 type = link.flags & MEDIA_LNK_FL_LINK_TYPE;
__u32 remote_pad;
__u32 remote_ent_id = 0;
- const media_v2_entity *remote_ent = NULL;
+ const media_v2_entity *remote_ent = nullptr;
if (type != MEDIA_LNK_FL_DATA_LINK ||
(link.source_id != pad.id && link.sink_id != pad.id))
@@ -190,7 +190,7 @@ static const flag_def bufcap_def[] = {
{ V4L2_BUF_CAP_SUPPORTS_ORPHANED_BUFS, "orphaned-bufs" },
{ V4L2_BUF_CAP_SUPPORTS_M2M_HOLD_CAPTURE_BUF, "m2m-hold-capture-buf" },
{ V4L2_BUF_CAP_SUPPORTS_MMAP_CACHE_HINTS, "mmap-cache-hints" },
- { 0, NULL }
+ { 0, nullptr }
};
std::string bufcap2s(__u32 caps)
@@ -328,7 +328,7 @@ std::string quantization2s(int val)
static const flag_def pixflags_def[] = {
{ V4L2_PIX_FMT_FLAG_PREMUL_ALPHA, "premultiplied-alpha" },
- { 0, NULL }
+ { 0, nullptr }
};
std::string pixflags2s(unsigned flags)
@@ -341,7 +341,7 @@ static const flag_def service_def[] = {
{ V4L2_SLICED_VPS, "vps" },
{ V4L2_SLICED_CAPTION_525, "cc" },
{ V4L2_SLICED_WSS_625, "wss" },
- { 0, NULL }
+ { 0, nullptr }
};
std::string service2s(unsigned service)
@@ -401,7 +401,7 @@ static const flag_def selection_targets_def[] = {
{ V4L2_SEL_TGT_COMPOSE_BOUNDS, "compose_bounds" },
{ V4L2_SEL_TGT_COMPOSE_PADDED, "compose_padded" },
{ V4L2_SEL_TGT_NATIVE_SIZE, "native_size" },
- { 0, NULL }
+ { 0, nullptr }
};
bool valid_seltarget_at_idx(unsigned i)
@@ -420,7 +420,7 @@ std::string seltarget2s(__u32 target)
{
int i = 0;
- while (selection_targets_def[i].str != NULL) {
+ while (selection_targets_def[i].str != nullptr) {
if (selection_targets_def[i].flag == target)
return selection_targets_def[i].str;
i++;
@@ -432,7 +432,7 @@ const flag_def selection_flags_def[] = {
{ V4L2_SEL_FLAG_GE, "ge" },
{ V4L2_SEL_FLAG_LE, "le" },
{ V4L2_SEL_FLAG_KEEP_CONFIG, "keep-config" },
- { 0, NULL }
+ { 0, nullptr }
};
std::string selflags2s(__u32 flags)
@@ -443,19 +443,19 @@ std::string selflags2s(__u32 flags)
static const char *std_pal[] = {
"B", "B1", "G", "H", "I", "D", "D1", "K",
"M", "N", "Nc", "60",
- NULL
+ nullptr
};
static const char *std_ntsc[] = {
"M", "M-JP", "443", "M-KR",
- NULL
+ nullptr
};
static const char *std_secam[] = {
"B", "D", "G", "H", "K", "K1", "L", "Lc",
- NULL
+ nullptr
};
static const char *std_atsc[] = {
"8-VSB", "16-VSB",
- NULL
+ nullptr
};
static std::string partstd2s(const char *prefix, const char *stds[], unsigned long long std)
@@ -512,7 +512,7 @@ std::string ctrlflags2s(__u32 flags)
{ V4L2_CTRL_FLAG_HAS_PAYLOAD,"has-payload" },
{ V4L2_CTRL_FLAG_EXECUTE_ON_WRITE, "execute-on-write" },
{ V4L2_CTRL_FLAG_MODIFY_LAYOUT, "modify-layout" },
- { 0, NULL }
+ { 0, nullptr }
};
return flags2s(flags, def);
}
@@ -533,7 +533,7 @@ static const flag_def in_status_def[] = {
{ V4L2_IN_ST_MACROVISION, "macrovision" },
{ V4L2_IN_ST_NO_ACCESS, "no conditional access" },
{ V4L2_IN_ST_VTR, "VTR time constant" },
- { 0, NULL }
+ { 0, nullptr }
};
std::string in_status2s(__u32 status)
@@ -545,7 +545,7 @@ static const flag_def input_cap_def[] = {
{ V4L2_IN_CAP_DV_TIMINGS, "DV timings" },
{ V4L2_IN_CAP_STD, "SDTV standards" },
{ V4L2_IN_CAP_NATIVE_SIZE, "Native Size" },
- { 0, NULL }
+ { 0, nullptr }
};
std::string input_cap2s(__u32 capabilities)
@@ -557,7 +557,7 @@ static const flag_def output_cap_def[] = {
{ V4L2_OUT_CAP_DV_TIMINGS, "DV timings" },
{ V4L2_OUT_CAP_STD, "SDTV standards" },
{ V4L2_OUT_CAP_NATIVE_SIZE, "Native Size" },
- { 0, NULL }
+ { 0, nullptr }
};
std::string output_cap2s(__u32 capabilities)
@@ -617,7 +617,7 @@ static const flag_def dv_standards_def[] = {
{ V4L2_DV_BT_STD_CVT, "CVT" },
{ V4L2_DV_BT_STD_GTF, "GTF" },
{ V4L2_DV_BT_STD_SDI, "SDI" },
- { 0, NULL }
+ { 0, nullptr }
};
std::string dv_standards2s(__u32 flags)
@@ -661,7 +661,7 @@ static const flag_def dv_caps_def[] = {
{ V4L2_DV_BT_CAP_PROGRESSIVE, "Progressive" },
{ V4L2_DV_BT_CAP_REDUCED_BLANKING, "Reduced Blanking" },
{ V4L2_DV_BT_CAP_CUSTOM, "Custom Formats" },
- { 0, NULL }
+ { 0, nullptr }
};
std::string dv_caps2s(__u32 flags)
@@ -675,7 +675,7 @@ static const flag_def tc_flags_def[] = {
{ V4L2_TC_USERBITS_field, "userbits-field" },
{ V4L2_TC_USERBITS_USERDEFINED, "userbits-userdefined" },
{ V4L2_TC_USERBITS_8BITCHARS, "userbits-8bitchars" },
- { 0, NULL }
+ { 0, nullptr }
};
std::string tc_flags2s(__u32 flags)
@@ -699,7 +699,7 @@ static const flag_def buffer_flags_def[] = {
{ V4L2_BUF_FLAG_LAST, "last" },
{ V4L2_BUF_FLAG_REQUEST_FD, "request-fd" },
{ V4L2_BUF_FLAG_IN_REQUEST, "in-request" },
- { 0, NULL }
+ { 0, nullptr }
};
std::string bufferflags2s(__u32 flags)
@@ -741,7 +741,7 @@ std::string bufferflags2s(__u32 flags)
static const flag_def vbi_def[] = {
{ V4L2_VBI_UNSYNC, "unsynchronized" },
{ V4L2_VBI_INTERLACED, "interlaced" },
- { 0, NULL }
+ { 0, nullptr }
};
std::string vbiflags2s(__u32 flags)
@@ -23,7 +23,7 @@ const char *cec_opcode2s(unsigned opcode)
for (auto i : msgtable)
if (i.opcode == opcode)
return i.name;
- return NULL;
+ return nullptr;
}
const char *cec_cdc_opcode2s(unsigned cdc_opcode)
@@ -31,7 +31,7 @@ const char *cec_cdc_opcode2s(unsigned cdc_opcode)
for (auto i : cdcmsgtable)
if (i.opcode == cdc_opcode)
return i.name;
- return NULL;
+ return nullptr;
}
const char *cec_htng_opcode2s(unsigned htng_opcode)
@@ -39,7 +39,7 @@ const char *cec_htng_opcode2s(unsigned htng_opcode)
for (auto i : htngmsgtable)
if (i.opcode == htng_opcode)
return i.name;
- return NULL;
+ return nullptr;
}
static std::string caps2s(unsigned caps)
@@ -493,7 +493,7 @@ std::string cec_device_find(const char *driver, const char *adapter)
std::string name;
dp = opendir("/dev");
- if (dp == NULL) {
+ if (dp == nullptr) {
perror("Couldn't open the directory");
return name;
}
@@ -114,7 +114,7 @@ static void log_htng_unknown_msg(const struct cec_msg *msg);
const struct cec_msg_args *cec_log_msg_args(unsigned int index)
{
if (index >= sizeof(messages) / sizeof(messages[0]))
- return NULL;
+ return nullptr;
return &messages[index];
}
@@ -325,5 +325,5 @@ const char *cec_log_ui_cmd_string(__u8 ui_cmd)
if (type_ui_cmd[i].value == ui_cmd)
return type_ui_cmd[i].type_name;
}
- return NULL;
+ return nullptr;
}
@@ -153,7 +153,7 @@ int cec_parse_subopt(char **subs, const char * const *subopts, char **value)
fprintf(stderr, "Invalid suboptions specified\n");
return -1;
}
- if (*value == NULL) {
+ if (*value == nullptr) {
fprintf(stderr, "No value given to suboption <%s>\n",
subopts[opt]);
return -1;
@@ -164,7 +164,7 @@ int cec_parse_subopt(char **subs, const char * const *subopts, char **value)
static unsigned parse_enum(const char *value, const struct cec_arg *a)
{
if (isdigit(*value))
- return strtoul(value, NULL, 0);
+ return strtoul(value, nullptr, 0);
for (int i = 0; i < a->num_enum_values; i++) {
if (!strcmp(value, a->values[i].type_name))
return a->values[i].value;
@@ -177,7 +177,7 @@ unsigned cec_parse_phys_addr(const char *value)
unsigned p1, p2, p3, p4;
if (!std::strchr(value, '.'))
- return strtoul(value, NULL, 0);
+ return strtoul(value, nullptr, 0);
if (sscanf(value, "%x.%x.%x.%x", &p1, &p2, &p3, &p4) != 4) {
fprintf(stderr, "Expected a physical address of the form x.x.x.x\n");
return 0;
@@ -77,26 +77,26 @@ static struct ctl_parameters params;
static int app_result;
static struct option long_options[] = {
- {"all", no_argument, 0, OptAll},
- {"rbds", no_argument, 0, OptRBDS},
- {"device", required_argument, 0, OptSetDevice},
- {"file", required_argument, 0, OptOpenFile},
- {"freq-seek", required_argument, 0, OptFreqSeek},
- {"get-freq", no_argument, 0, OptGetFreq},
- {"get-tuner", no_argument, 0, OptGetTuner},
- {"help", no_argument, 0, OptHelp},
- {"info", no_argument, 0, OptGetDriverInfo},
- {"list-devices", no_argument, 0, OptListDevices},
- {"list-freq-bands", no_argument, 0, OptListFreqBands},
- {"print-block", no_argument, 0, OptPrintBlock},
- {"read-rds", no_argument, 0, OptReadRds},
- {"set-freq", required_argument, 0, OptSetFreq},
- {"tmc", no_argument, 0, OptTMC},
- {"tuner-index", required_argument, 0, OptTunerIndex},
- {"silent", no_argument, 0, OptSilent},
- {"verbose", no_argument, 0, OptVerbose},
- {"wait-limit", required_argument, 0, OptWaitLimit},
- {0, 0, 0, 0}
+ {"all", no_argument, nullptr, OptAll},
+ {"rbds", no_argument, nullptr, OptRBDS},
+ {"device", required_argument, nullptr, OptSetDevice},
+ {"file", required_argument, nullptr, OptOpenFile},
+ {"freq-seek", required_argument, nullptr, OptFreqSeek},
+ {"get-freq", no_argument, nullptr, OptGetFreq},
+ {"get-tuner", no_argument, nullptr, OptGetTuner},
+ {"help", no_argument, nullptr, OptHelp},
+ {"info", no_argument, nullptr, OptGetDriverInfo},
+ {"list-devices", no_argument, nullptr, OptListDevices},
+ {"list-freq-bands", no_argument, nullptr, OptListFreqBands},
+ {"print-block", no_argument, nullptr, OptPrintBlock},
+ {"read-rds", no_argument, nullptr, OptReadRds},
+ {"set-freq", required_argument, nullptr, OptSetFreq},
+ {"tmc", no_argument, nullptr, OptTMC},
+ {"tuner-index", required_argument, nullptr, OptTunerIndex},
+ {"silent", no_argument, nullptr, OptSilent},
+ {"verbose", no_argument, nullptr, OptVerbose},
+ {"wait-limit", required_argument, nullptr, OptWaitLimit},
+ {nullptr, 0, nullptr, 0}
};
static void usage_hint()
@@ -326,7 +326,7 @@ static dev_vec list_devices()
struct v4l2_tuner vt;
dp = opendir("/dev");
- if (dp == NULL) {
+ if (dp == nullptr) {
perror ("Couldn't open the directory");
std::exit(EXIT_FAILURE);
}
@@ -370,7 +370,7 @@ static int parse_subopt(char **subs, const char * const *subopts, char **value)
fprintf(stderr, "Invalid suboptions specified\n");
return -1;
}
- if (*value == NULL) {
+ if (*value == nullptr) {
fprintf(stderr, "No value given to suboption <%s>\n",
subopts[opt]);
return -1;
@@ -388,18 +388,18 @@ static void parse_freq_seek(char *optarg, struct v4l2_hw_freq_seek &seek)
"dir",
"wrap",
"spacing",
- NULL
+ nullptr
};
switch (parse_subopt(&subs, subopts, &value)) {
case 0:
- seek.seek_upward = strtol(value, 0L, 0);
+ seek.seek_upward = strtol(value, nullptr, 0);
break;
case 1:
- seek.wrap_around = strtol(value, 0L, 0);
+ seek.wrap_around = strtol(value, nullptr, 0);
break;
case 2:
- seek.spacing = strtol(value, 0L, 0);
+ seek.spacing = strtol(value, nullptr, 0);
break;
default:
usage_tuner();
@@ -765,7 +765,7 @@ static int parse_cl(int argc, char **argv)
params.fd_name[sizeof(params.fd_name) - 1] = '\0';
break;
case OptSetFreq:
- params.freq = strtod(optarg, NULL);
+ params.freq = strtod(optarg, nullptr);
break;
case OptListDevices:
print_devices(list_devices());
@@ -774,7 +774,7 @@ static int parse_cl(int argc, char **argv)
parse_freq_seek(optarg, params.freq_seek);
break;
case OptTunerIndex:
- params.tuner_index = strtoul(optarg, NULL, 0);
+ params.tuner_index = strtoul(optarg, nullptr, 0);
break;
case OptOpenFile:
{
@@ -791,7 +791,7 @@ static int parse_cl(int argc, char **argv)
break;
}
case OptWaitLimit:
- params.wait_limit = strtoul(optarg, NULL, 0);
+ params.wait_limit = strtoul(optarg, nullptr, 0);
break;
case ':':
fprintf(stderr, "Option '%s' requires a value\n",
@@ -114,35 +114,35 @@ struct dev_state {
static struct dev_state state;
static struct option long_options[] = {
- {"device", required_argument, 0, OptSetDevice},
- {"radio-device", required_argument, 0, OptSetRadioDevice},
- {"vbi-device", required_argument, 0, OptSetVbiDevice},
- {"sdr-device", required_argument, 0, OptSetSWRadioDevice},
- {"subdev-device", required_argument, 0, OptSetSubDevDevice},
- {"expbuf-device", required_argument, 0, OptSetExpBufDevice},
- {"touch-device", required_argument, 0, OptSetTouchDevice},
- {"media-device", required_argument, 0, OptSetMediaDevice},
- {"media-device-only", required_argument, 0, OptSetMediaDeviceOnly},
- {"media-bus-info", required_argument, 0, OptMediaBusInfo},
- {"help", no_argument, 0, OptHelp},
- {"verbose", no_argument, 0, OptVerbose},
- {"color", required_argument, 0, OptColor},
- {"no-warnings", no_argument, 0, OptNoWarnings},
- {"no-progress", no_argument, 0, OptNoProgress},
- {"exit-on-fail", no_argument, 0, OptExitOnFail},
- {"exit-on-warn", no_argument, 0, OptExitOnWarn},
- {"trace", no_argument, 0, OptTrace},
+ {"device", required_argument, nullptr, OptSetDevice},
+ {"radio-device", required_argument, nullptr, OptSetRadioDevice},
+ {"vbi-device", required_argument, nullptr, OptSetVbiDevice},
+ {"sdr-device", required_argument, nullptr, OptSetSWRadioDevice},
+ {"subdev-device", required_argument, nullptr, OptSetSubDevDevice},
+ {"expbuf-device", required_argument, nullptr, OptSetExpBufDevice},
+ {"touch-device", required_argument, nullptr, OptSetTouchDevice},
+ {"media-device", required_argument, nullptr, OptSetMediaDevice},
+ {"media-device-only", required_argument, nullptr, OptSetMediaDeviceOnly},
+ {"media-bus-info", required_argument, nullptr, OptMediaBusInfo},
+ {"help", no_argument, nullptr, OptHelp},
+ {"verbose", no_argument, nullptr, OptVerbose},
+ {"color", required_argument, nullptr, OptColor},
+ {"no-warnings", no_argument, nullptr, OptNoWarnings},
+ {"no-progress", no_argument, nullptr, OptNoProgress},
+ {"exit-on-fail", no_argument, nullptr, OptExitOnFail},
+ {"exit-on-warn", no_argument, nullptr, OptExitOnWarn},
+ {"trace", no_argument, nullptr, OptTrace},
#ifndef NO_LIBV4L2
- {"wrapper", no_argument, 0, OptUseWrapper},
+ {"wrapper", no_argument, nullptr, OptUseWrapper},
#endif
- {"streaming", optional_argument, 0, OptStreaming},
- {"stream-from", required_argument, 0, OptStreamFrom},
- {"stream-from-hdr", required_argument, 0, OptStreamFromHdr},
- {"stream-all-formats", optional_argument, 0, OptStreamAllFormats},
- {"stream-all-io", no_argument, 0, OptStreamAllIO},
- {"stream-all-color", required_argument, 0, OptStreamAllColorTest},
- {"version", no_argument, 0, OptVersion},
- {0, 0, 0, 0}
+ {"streaming", optional_argument, nullptr, OptStreaming},
+ {"stream-from", required_argument, nullptr, OptStreamFrom},
+ {"stream-from-hdr", required_argument, nullptr, OptStreamFromHdr},
+ {"stream-all-formats", optional_argument, nullptr, OptStreamAllFormats},
+ {"stream-all-io", no_argument, nullptr, OptStreamAllIO},
+ {"stream-all-color", required_argument, nullptr, OptStreamAllColorTest},
+ {"version", no_argument, nullptr, OptVersion},
+ {nullptr, 0, nullptr, 0}
};
#define STR(x) #x
@@ -620,7 +620,7 @@ static int testCap(struct node *node)
memset(&vcap, 0xff, sizeof(vcap));
// Must always be there
- fail_on_test(doioctl(node, VIDIOC_QUERYCAP, NULL) != EFAULT);
+ fail_on_test(doioctl(node, VIDIOC_QUERYCAP, nullptr) != EFAULT);
fail_on_test(doioctl(node, VIDIOC_QUERYCAP, &vcap));
fail_on_test(check_ustring(vcap.driver, sizeof(vcap.driver)));
fail_on_test(check_ustring(vcap.card, sizeof(vcap.card)));
@@ -779,9 +779,9 @@ static int testInvalidIoctls(struct node *node, char type)
unsigned ioc = _IOC(_IOC_NONE, type, 0xff, 0);
unsigned char buf[0x4000] = {};
- fail_on_test(doioctl(node, ioc, NULL) != ENOTTY);
+ fail_on_test(doioctl(node, ioc, nullptr) != ENOTTY);
ioc = _IOC(_IOC_NONE, type, 0, 0x3fff);
- fail_on_test(doioctl(node, ioc, NULL) != ENOTTY);
+ fail_on_test(doioctl(node, ioc, nullptr) != ENOTTY);
ioc = _IOC(_IOC_READ, type, 0, 0x3fff);
fail_on_test(doioctl(node, ioc, buf) != ENOTTY);
fail_on_test(check_0(buf, sizeof(buf)));
@@ -823,7 +823,7 @@ static int parse_subopt(char **subs, const char * const *subopts, char **value)
fprintf(stderr, "Invalid suboptions specified\n");
return -1;
}
- if (*value == NULL) {
+ if (*value == nullptr) {
fprintf(stderr, "No value given to suboption <%s>\n",
subopts[opt]);
return -1;
@@ -837,7 +837,7 @@ static int open_media_bus_info(const std::string &bus_info, std::string &media_d
struct dirent *ep;
dp = opendir("/dev");
- if (dp == NULL)
+ if (dp == nullptr)
return -1;
while ((ep = readdir(dp))) {
@@ -905,7 +905,7 @@ static std::string make_devname(const char *device, const char *devname,
goto err;
if (device[0] == '0' && device[1] == 'x')
- iface_id = strtoul(device, NULL, 16);
+ iface_id = strtoul(device, nullptr, 16);
if (!iface_id) {
for (i = 0; i < topology.num_entities; i++)
@@ -1569,7 +1569,7 @@ int main(int argc, char **argv)
break;
case OptStreaming:
if (optarg)
- frame_count = strtoul(optarg, NULL, 0);
+ frame_count = strtoul(optarg, nullptr, 0);
break;
case OptStreamFrom:
case OptStreamFromHdr: {
@@ -1577,7 +1577,7 @@ int main(int argc, char **argv)
bool has_hdr = ch == OptStreamFromHdr;
if (equal == optarg)
- equal = NULL;
+ equal = nullptr;
if (equal) {
*equal = '\0';
stream_from_map[optarg] = equal + 1;
@@ -1590,7 +1590,7 @@ int main(int argc, char **argv)
}
case OptStreamAllFormats:
if (optarg)
- all_fmt_frame_count = strtoul(optarg, NULL, 0);
+ all_fmt_frame_count = strtoul(optarg, nullptr, 0);
break;
case OptStreamAllColorTest:
subs = optarg;
@@ -1599,7 +1599,7 @@ int main(int argc, char **argv)
"color",
"skip",
"perc",
- NULL
+ nullptr
};
switch (parse_subopt(&subs, subopts, &value)) {
@@ -1616,10 +1616,10 @@ int main(int argc, char **argv)
}
break;
case 1:
- color_skip = strtoul(value, 0L, 0);
+ color_skip = strtoul(value, nullptr, 0);
break;
case 2:
- color_perc = strtoul(value, 0L, 0);
+ color_perc = strtoul(value, nullptr, 0);
if (color_perc == 0)
color_perc = 90;
if (color_perc > 100)
@@ -548,7 +548,7 @@ int testReqBufs(struct node *node)
return ret;
}
fail_on_test(ret != EINVAL);
- fail_on_test(node->node2 == NULL);
+ fail_on_test(node->node2 == nullptr);
for (i = 1; i <= V4L2_BUF_TYPE_LAST; i++) {
bool is_overlay = v4l_type_is_overlay(i);
__u32 caps = 0;
@@ -970,9 +970,9 @@ static int captureBufs(struct node *node, struct node *node_m2m_cap, const cv4l_
if (node->is_m2m)
ret = select(node->g_fd() + 1, &rfds, &wfds, &efds, &tv);
else if (v4l_type_is_output(q.g_type()))
- ret = select(node->g_fd() + 1, NULL, &wfds, NULL, &tv);
+ ret = select(node->g_fd() + 1, nullptr, &wfds, nullptr, &tv);
else
- ret = select(node->g_fd() + 1, &rfds, NULL, NULL, &tv);
+ ret = select(node->g_fd() + 1, &rfds, nullptr, nullptr, &tv);
fail_on_test(ret == 0);
fail_on_test(ret < 0);
fail_on_test(!FD_ISSET(node->g_fd(), &rfds) &&
@@ -1061,7 +1061,7 @@ static int captureBufs(struct node *node, struct node *node_m2m_cap, const cv4l_
warn_once("QBUF returned the buffer as DONE.\n");
if (buf.g_flags() & V4L2_BUF_FLAG_REQUEST_FD) {
fail_on_test(doioctl_fd(buf_req_fds[req_idx],
- MEDIA_REQUEST_IOC_QUEUE, 0));
+ MEDIA_REQUEST_IOC_QUEUE, nullptr));
// testRequests will close some of these request fds,
// so we need to find the next valid fds.
do {
@@ -1403,7 +1403,7 @@ int testMmap(struct node *node, struct node *node_m2m_cap, unsigned frame_count,
fcntl(node->g_fd(), F_SETFL, fd_flags | O_NONBLOCK);
FD_ZERO(&efds);
FD_SET(node->g_fd(), &efds);
- ret = select(node->g_fd() + 1, NULL, NULL, &efds, &tv);
+ ret = select(node->g_fd() + 1, nullptr, nullptr, &efds, &tv);
fail_on_test(ret < 0);
fail_on_test(ret == 0);
fail_on_test(node->dqevent(ev));
@@ -1550,7 +1550,7 @@ static int setupUserPtr(struct node *node, cv4l_queue &q)
// Try to use VIDIOC_PREPARE_BUF for every other buffer
if ((i & 1) == 0) {
for (unsigned p = 0; p < buf.g_num_planes(); p++)
- buf.s_userptr(0UL, p);
+ buf.s_userptr(nullptr, p);
ret = buf.prepare_buf(node);
fail_on_test(!ret);
for (unsigned p = 0; p < buf.g_num_planes(); p++)
@@ -1566,7 +1566,7 @@ static int setupUserPtr(struct node *node, cv4l_queue &q)
fail_on_test(buf.querybuf(node, i));
fail_on_test(buf.check(q, Prepared, i));
for (unsigned p = 0; p < buf.g_num_planes(); p++) {
- buf.s_userptr(0UL, p);
+ buf.s_userptr(nullptr, p);
buf.s_bytesused(0, p);
buf.s_length(0, p);
}
@@ -1574,7 +1574,7 @@ static int setupUserPtr(struct node *node, cv4l_queue &q)
}
if (ret == ENOTTY) {
for (unsigned p = 0; p < buf.g_num_planes(); p++)
- buf.s_userptr(0UL, p);
+ buf.s_userptr(nullptr, p);
ret = buf.qbuf(node);
fail_on_test(!ret);
@@ -1759,7 +1759,7 @@ int testUserPtr(struct node *node, struct node *node_m2m_cap, unsigned frame_cou
fail("data at %zd bytes after the end of the buffer was touched\n",
(x - (u + buflen / 4)) * 4);
free(m);
- q.s_userptr(i, p, NULL);
+ q.s_userptr(i, p, nullptr);
}
}
stream_close();
@@ -2018,16 +2018,16 @@ int testRequests(struct node *node, bool test_streaming)
ctrls.request_fd = req_fd;
fail_on_test(doioctl(node, VIDIOC_G_EXT_CTRLS, &ctrls) != EACCES);
}
- fail_on_test(doioctl_fd(req_fd, MEDIA_REQUEST_IOC_QUEUE, 0) != ENOENT);
- fail_on_test(doioctl_fd(req_fd, MEDIA_REQUEST_IOC_REINIT, 0));
+ fail_on_test(doioctl_fd(req_fd, MEDIA_REQUEST_IOC_QUEUE, nullptr) != ENOENT);
+ fail_on_test(doioctl_fd(req_fd, MEDIA_REQUEST_IOC_REINIT, nullptr));
fhs.del(media_fd);
- fail_on_test(doioctl_fd(req_fd, MEDIA_REQUEST_IOC_QUEUE, 0) != ENOENT);
- fail_on_test(doioctl_fd(req_fd, MEDIA_REQUEST_IOC_REINIT, 0));
+ fail_on_test(doioctl_fd(req_fd, MEDIA_REQUEST_IOC_QUEUE, nullptr) != ENOENT);
+ fail_on_test(doioctl_fd(req_fd, MEDIA_REQUEST_IOC_REINIT, nullptr));
fhs.del(req_fd);
if (have_controls)
fail_on_test(doioctl(node, VIDIOC_G_EXT_CTRLS, &ctrls) != EINVAL);
- fail_on_test(doioctl_fd(req_fd, MEDIA_REQUEST_IOC_QUEUE, 0) != EBADF);
- fail_on_test(doioctl_fd(req_fd, MEDIA_REQUEST_IOC_REINIT, 0) != EBADF);
+ fail_on_test(doioctl_fd(req_fd, MEDIA_REQUEST_IOC_QUEUE, nullptr) != EBADF);
+ fail_on_test(doioctl_fd(req_fd, MEDIA_REQUEST_IOC_REINIT, nullptr) != EBADF);
media_fd = fhs.add(mi_get_media_fd(node->g_fd(), node->bus_info));
fail_on_test(doioctl_fd(media_fd, MEDIA_IOC_REQUEST_ALLOC, &req_fd));
@@ -2095,7 +2095,7 @@ int testRequests(struct node *node, bool test_streaming)
fail_on_test(doioctl_fd(media_fd, MEDIA_IOC_REQUEST_ALLOC, &buf_req_fds[i]));
fhs.add(buf_req_fds[i]);
fail_on_test(buf_req_fds[i] < 0);
- fail_on_test(!doioctl_fd(buf_req_fds[i], MEDIA_REQUEST_IOC_QUEUE, 0));
+ fail_on_test(!doioctl_fd(buf_req_fds[i], MEDIA_REQUEST_IOC_QUEUE, nullptr));
}
fhs.del(media_fd);
@@ -2199,7 +2199,7 @@ int testRequests(struct node *node, bool test_streaming)
ctrl.value = (i & 1) ? valid_qctrl.maximum : valid_qctrl.minimum;
ctrls.request_fd = buf_req_fds[i];
fail_on_test(doioctl(node, VIDIOC_S_EXT_CTRLS, &ctrls));
- fail_on_test(doioctl_fd(buf_req_fds[i], MEDIA_REQUEST_IOC_REINIT, 0));
+ fail_on_test(doioctl_fd(buf_req_fds[i], MEDIA_REQUEST_IOC_REINIT, nullptr));
fail_on_test(buf.querybuf(node, i));
fail_on_test(buf.g_flags() & V4L2_BUF_FLAG_IN_REQUEST);
@@ -2223,8 +2223,8 @@ int testRequests(struct node *node, bool test_streaming)
VIVID_CID_BUF_PREPARE_ERROR :
VIVID_CID_REQ_VALIDATE_ERROR))
fail_on_test(doioctl_fd(buf_req_fds[i],
- MEDIA_REQUEST_IOC_QUEUE, 0) != EINVAL);
- ret = doioctl_fd(buf_req_fds[i], MEDIA_REQUEST_IOC_QUEUE, 0);
+ MEDIA_REQUEST_IOC_QUEUE, nullptr) != EINVAL);
+ ret = doioctl_fd(buf_req_fds[i], MEDIA_REQUEST_IOC_QUEUE, nullptr);
if (node->codec_mask & STATELESS_DECODER) {
fail_on_test(ret != ENOENT);
test_streaming = false;
@@ -2235,8 +2235,8 @@ int testRequests(struct node *node, bool test_streaming)
fail_on_test(buf.g_flags() & V4L2_BUF_FLAG_IN_REQUEST);
fail_on_test(!(buf.g_flags() & V4L2_BUF_FLAG_REQUEST_FD));
fail_on_test(!(buf.g_flags() & V4L2_BUF_FLAG_QUEUED));
- fail_on_test(doioctl_fd(buf_req_fds[i], MEDIA_REQUEST_IOC_REINIT, 0) != EBUSY);
- fail_on_test(doioctl_fd(buf_req_fds[i], MEDIA_REQUEST_IOC_QUEUE, 0) != EBUSY);
+ fail_on_test(doioctl_fd(buf_req_fds[i], MEDIA_REQUEST_IOC_REINIT, nullptr) != EBUSY);
+ fail_on_test(doioctl_fd(buf_req_fds[i], MEDIA_REQUEST_IOC_QUEUE, nullptr) != EBUSY);
if (i >= min_bufs) {
close(buf_req_fds[i]);
buf_req_fds[i] = -1;
@@ -2273,8 +2273,8 @@ int testRequests(struct node *node, bool test_streaming)
POLLPRI, 0
};
fail_on_test(poll(&pfd, 1, 100) != 1);
- fail_on_test(doioctl_fd(buf_req_fds[i], MEDIA_REQUEST_IOC_QUEUE, 0) != EBUSY);
- fail_on_test(doioctl_fd(buf_req_fds[i], MEDIA_REQUEST_IOC_REINIT, 0));
+ fail_on_test(doioctl_fd(buf_req_fds[i], MEDIA_REQUEST_IOC_QUEUE, nullptr) != EBUSY);
+ fail_on_test(doioctl_fd(buf_req_fds[i], MEDIA_REQUEST_IOC_REINIT, nullptr));
fail_on_test(buf.querybuf(node, i));
fail_on_test(buf.g_flags() & V4L2_BUF_FLAG_REQUEST_FD);
fail_on_test(buf.g_request_fd());
@@ -2322,7 +2322,7 @@ public:
int start()
{
- int ret = pthread_create(&thread, NULL, startRoutine, this);
+ int ret = pthread_create(&thread, nullptr, startRoutine, this);
if (ret < 0)
return ret;
@@ -2353,7 +2353,7 @@ public:
usleep(100000);
}
- pthread_join(thread, NULL);
+ pthread_join(thread, nullptr);
running = false;
}
@@ -2364,13 +2364,13 @@ private:
{
auto self = static_cast<BlockingThread *>(arg);
- pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);
- pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, NULL);
+ pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, nullptr);
+ pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, nullptr);
self->run();
self->done = true;
- return NULL;
+ return nullptr;
}
virtual void run() = 0;
@@ -2969,7 +2969,7 @@ static void streamIntervals(struct node *node, __u32 pixelformat, __u32 w, __u32
v4l2_frmivalenum frmival = { 0 };
if (node->enum_frameintervals(frmival, pixelformat, w, h)) {
- streamFmt(node, pixelformat, w, h, NULL, frame_count);
+ streamFmt(node, pixelformat, w, h, nullptr, frame_count);
return;
}
@@ -476,7 +476,7 @@ static int testColorsFmt(struct node *node, unsigned component,
{
cv4l_queue q;
cv4l_fmt fmt;
- __u8 *planes[3] = { 0, 0, 0 };
+ __u8 *planes[3] = { nullptr, nullptr, nullptr };
skip++;
node->g_fmt(fmt);
@@ -616,7 +616,7 @@ int testExtendedControls(struct node *node)
info("checking extended control '%s' (0x%08x)\n", qctrl.name, qctrl.id);
ctrl.id = qctrl.id;
ctrl.size = 0;
- ctrl.ptr = NULL;
+ ctrl.ptr = nullptr;
ctrl.reserved2[0] = 0;
ctrls.count = 1;
@@ -690,7 +690,7 @@ int testExtendedControls(struct node *node)
}
if (qctrl.type == V4L2_CTRL_TYPE_STRING)
delete [] ctrl.string;
- ctrl.string = NULL;
+ ctrl.string = nullptr;
}
ctrls.which = 0;
@@ -824,7 +824,7 @@ int testEvents(struct node *node)
//if (qctrl.type == V4L2_CTRL_TYPE_CTRL_CLASS)
FD_ZERO(&set);
FD_SET(node->g_fd(), &set);
- ret = select(node->g_fd() + 1, NULL, NULL, &set, &timeout);
+ ret = select(node->g_fd() + 1, nullptr, nullptr, &set, &timeout);
if (ret == 0) {
if (qctrl.type != V4L2_CTRL_TYPE_CTRL_CLASS)
return fail("failed to find event for control '%s'\n", qctrl.name);
@@ -57,5 +57,5 @@ int testRegister(struct node *node)
int testLogStatus(struct node *node)
{
- return doioctl(node, VIDIOC_LOG_STATUS, NULL);
+ return doioctl(node, VIDIOC_LOG_STATUS, nullptr);
}
@@ -414,7 +414,7 @@ static void createInvalidFmt(struct v4l2_format &fmt, struct v4l2_clip &clip, un
clip.next = (struct v4l2_clip *)0x0eadbeef;
fmt.fmt.win.clipcount = 1;
fmt.fmt.win.clips = &clip;
- fmt.fmt.win.bitmap = NULL;
+ fmt.fmt.win.bitmap = nullptr;
}
}
@@ -1177,7 +1177,7 @@ int testSetFormats(struct node *node)
// Test if setting a format on one fh will set the format for all
// filehandles.
- if (node->node2 == NULL)
+ if (node->node2 == nullptr)
return 0;
// m2m devices are special in that the format is often per-filehandle.
@@ -579,7 +579,7 @@ static int checkEdid(struct node *node, unsigned pad, bool is_input)
}
edid.blocks = blocks;
edid.pad = pad;
- edid.edid = NULL;
+ edid.edid = nullptr;
ret = doioctl(node, VIDIOC_S_EDID, &edid);
fail_on_test(ret != EFAULT);
edid.edid = (__u8 *)0x0eadbeef;
@@ -32,7 +32,7 @@ int testMediaDeviceInfo(struct node *node)
struct media_device_info mdinfo;
memset(&mdinfo, 0xff, sizeof(mdinfo));
- fail_on_test(doioctl(node, MEDIA_IOC_DEVICE_INFO, NULL) != EFAULT);
+ fail_on_test(doioctl(node, MEDIA_IOC_DEVICE_INFO, nullptr) != EFAULT);
fail_on_test(doioctl(node, MEDIA_IOC_DEVICE_INFO, &mdinfo));
fail_on_test(check_0(mdinfo.reserved, sizeof(mdinfo.reserved)));
fail_on_test(check_string(mdinfo.driver, sizeof(mdinfo.driver)));
@@ -66,7 +66,7 @@ static int checkDevice(__u32 major, __u32 minor, bool iface, __u32 id)
fail_on_test(snprintf(dev_path, sizeof(dev_path), "/sys/dev/char/%d:%d",
major, minor) == -1);
DIR *dp = opendir(dev_path);
- if (dp == NULL)
+ if (dp == nullptr)
return fail("couldn't find %s for %s %u\n",
dev_path, iface ? "interface" : "entity", id);
closedir(dp);
@@ -396,10 +396,10 @@ int testMediaEnum(struct node *node)
fail_on_test(links.links);
links.pads = (struct media_pad_desc *)4;
fail_on_test(ent.pads && doioctl(node, MEDIA_IOC_ENUM_LINKS, &links) != EFAULT);
- links.pads = NULL;
+ links.pads = nullptr;
links.links = (struct media_link_desc *)4;
fail_on_test(ent.links && doioctl(node, MEDIA_IOC_ENUM_LINKS, &links) != EFAULT);
- links.links = NULL;
+ links.links = nullptr;
links.pads = new media_pad_desc[ent.pads];
memset(links.pads, 0xff, ent.pads * sizeof(*links.pads));
links.links = new media_link_desc[ent.links];
@@ -123,7 +123,7 @@ static const char *prefixes[] = {
"v4l-subdev",
"v4l-touch",
"media",
- NULL
+ nullptr
};
static bool is_v4l_dev(const char *name)
@@ -173,7 +173,7 @@ static void list_media_devices(const std::string &media_bus_info)
std::map<dev_t, std::string> devices;
dp = opendir("/dev");
- if (dp == NULL) {
+ if (dp == nullptr) {
perror ("Couldn't open the directory");
return;
}
@@ -239,7 +239,7 @@ static void list_devices()
struct v4l2_capability vcap;
dp = opendir("/dev");
- if (dp == NULL) {
+ if (dp == nullptr) {
perror ("Couldn't open the directory");
return;
}
@@ -520,7 +520,7 @@ static int print_control(int fd, struct v4l2_query_ext_ctrl &qctrl, int show_men
return 1;
}
if (qctrl.type >= V4L2_CTRL_COMPOUND_TYPES) {
- print_qctrl(fd, &qctrl, NULL, show_menus);
+ print_qctrl(fd, &qctrl, nullptr, show_menus);
return 1;
}
ctrls.which = V4L2_CTRL_ID2WHICH(qctrl.id);
@@ -745,9 +745,9 @@ static bool parse_subset(char *optarg)
return true;
}
if (idx & 1)
- subset.offset[idx / 2] = strtoul(optarg, 0, 0);
+ subset.offset[idx / 2] = strtoul(optarg, nullptr, 0);
else {
- subset.size[idx / 2 - 1] = strtoul(optarg, 0, 0);
+ subset.size[idx / 2 - 1] = strtoul(optarg, nullptr, 0);
if (subset.size[idx / 2 - 1] == 0) {
fprintf(stderr, "<size> cannot be 0\n");
return true;
@@ -755,7 +755,7 @@ static bool parse_subset(char *optarg)
}
}
idx++;
- if (p == NULL)
+ if (p == nullptr)
break;
optarg = p + 1;
}
@@ -775,7 +775,7 @@ static bool parse_subset(char *optarg)
static bool parse_next_subopt(char **subs, char **value)
{
static char *const subopts[] = {
- NULL
+ nullptr
};
int opt = getsubopt(subs, subopts, value);
@@ -829,7 +829,7 @@ void common_cmd(const std::string &media_bus_info, int ch, char *optarg)
}
break;
case OptSetPriority:
- prio = static_cast<enum v4l2_priority>(strtoul(optarg, 0L, 0));
+ prio = static_cast<enum v4l2_priority>(strtoul(optarg, nullptr, 0));
break;
case OptListDevices:
if (media_bus_info.empty())
@@ -940,19 +940,19 @@ void common_set(cv4l_fd &_fd)
switch (qc.type) {
case V4L2_CTRL_TYPE_U8:
- v = strtoul(set_ctrl.second.c_str(), NULL, 0);
+ v = strtoul(set_ctrl.second.c_str(), nullptr, 0);
for (i = 0; i < qc.elems; i++)
if (idx_in_subset(qc, subset, divide, i))
ctrl.p_u8[i] = v;
break;
case V4L2_CTRL_TYPE_U16:
- v = strtoul(set_ctrl.second.c_str(), NULL, 0);
+ v = strtoul(set_ctrl.second.c_str(), nullptr, 0);
for (i = 0; i < qc.elems; i++)
if (idx_in_subset(qc, subset, divide, i))
ctrl.p_u16[i] = v;
break;
case V4L2_CTRL_TYPE_U32:
- v = strtoul(set_ctrl.second.c_str(), NULL, 0);
+ v = strtoul(set_ctrl.second.c_str(), nullptr, 0);
for (i = 0; i < qc.elems; i++)
if (idx_in_subset(qc, subset, divide, i))
ctrl.p_u32[i] = v;
@@ -974,9 +974,9 @@ void common_set(cv4l_fd &_fd)
if (V4L2_CTRL_DRIVER_PRIV(ctrl.id))
use_ext_ctrls = true;
if (qc.type == V4L2_CTRL_TYPE_INTEGER64)
- ctrl.value64 = strtoll(set_ctrl.second.c_str(), NULL, 0);
+ ctrl.value64 = strtoll(set_ctrl.second.c_str(), nullptr, 0);
else
- ctrl.value = strtol(set_ctrl.second.c_str(), NULL, 0);
+ ctrl.value = strtol(set_ctrl.second.c_str(), nullptr, 0);
}
class2ctrls[V4L2_CTRL_ID2WHICH(ctrl.id)].push_back(ctrl);
}
@@ -1178,7 +1178,7 @@ void common_get(cv4l_fd &_fd)
static char buf[40960];
int len = -1;
- if (doioctl(fd, VIDIOC_LOG_STATUS, NULL) == 0) {
+ if (doioctl(fd, VIDIOC_LOG_STATUS, nullptr) == 0) {
printf("\nStatus Log:\n\n");
#ifdef HAVE_KLOGCTL
len = klogctl(3, buf, sizeof(buf) - 1);
@@ -225,7 +225,7 @@ static void edid_add_block(struct v4l2_edid *e)
if (e->blocks > 256) {
fprintf(stderr, "edid file error: too long\n");
free(e->edid);
- e->edid = NULL;
+ e->edid = nullptr;
std::exit(EXIT_FAILURE);
}
e->edid = static_cast<unsigned char *>(realloc(e->edid, e->blocks * 128));
@@ -238,7 +238,7 @@ static void read_edid_file(FILE *f, struct v4l2_edid *e)
int c;
fseek(f, SEEK_SET, 0);
- e->edid = NULL;
+ e->edid = nullptr;
e->blocks = 0;
while ((c = fgetc(f)) != EOF) {
@@ -258,7 +258,7 @@ static void read_edid_file(FILE *f, struct v4l2_edid *e)
value[1] = c;
if (i % 256 == 1)
edid_add_block(e);
- e->edid[i / 2] = strtoul(value, 0, 16);
+ e->edid[i / 2] = strtoul(value, nullptr, 16);
} else {
value[0] = c;
}
@@ -704,7 +704,7 @@ static unsigned short parse_phys_addr(const char *value)
unsigned p1, p2, p3, p4;
if (!std::strchr(value, '.'))
- return strtoul(value, NULL, 0);
+ return strtoul(value, nullptr, 0);
if (sscanf(value, "%x.%x.%x.%x", &p1, &p2, &p3, &p4) != 4) {
fprintf(stderr, "Expected a physical address of the form x.x.x.x\n");
return 0xffff;
@@ -908,7 +908,7 @@ void edid_cmd(int ch, char *optarg)
switch (ch) {
case OptSetEdid:
memset(&sedid, 0, sizeof(sedid));
- file_in = NULL;
+ file_in = nullptr;
if (!optarg)
break;
subs = optarg;
@@ -971,7 +971,7 @@ void edid_cmd(int ch, char *optarg)
"btfc",
"btfl-btbr",
"tpls-tprs",
- NULL
+ nullptr
};
int opt = getsubopt(&subs, (char* const*)subopts, &value);
@@ -981,7 +981,7 @@ void edid_cmd(int ch, char *optarg)
edid_usage();
std::exit(EXIT_FAILURE);
}
- if (value == NULL && opt <= 8) {
+ if (value == nullptr && opt <= 8) {
fprintf(stderr, "No value given to suboption <%s>\n",
subopts[opt]);
edid_usage();
@@ -989,7 +989,7 @@ void edid_cmd(int ch, char *optarg)
}
switch (opt) {
case 0:
- sedid.pad = strtoul(value, 0, 0);
+ sedid.pad = strtoul(value, nullptr, 0);
break;
case 1:
case 2: /* keep edid for compat reasons, it's the same as type */
@@ -1044,13 +1044,13 @@ void edid_cmd(int ch, char *optarg)
phys_addr = parse_phys_addr(value);
break;
case 6:
- mod_s_pt = strtoul(value, 0, 0) & 3;
+ mod_s_pt = strtoul(value, nullptr, 0) & 3;
break;
case 7:
- mod_s_it = strtoul(value, 0, 0) & 3;
+ mod_s_it = strtoul(value, nullptr, 0) & 3;
break;
case 8:
- mod_s_ce = strtoul(value, 0, 0) & 3;
+ mod_s_ce = strtoul(value, nullptr, 0) & 3;
break;
case 9: toggle_hdmi_vsdb_dc_flags |= HDMI_VSDB_Y444_BIT; break;
case 10: toggle_hdmi_vsdb_dc_flags |= HDMI_VSDB_30_BIT; break;
@@ -1109,14 +1109,14 @@ void edid_cmd(int ch, char *optarg)
case OptClearEdid:
if (optarg)
- clear_pad = strtoul(optarg, 0, 0);
+ clear_pad = strtoul(optarg, nullptr, 0);
break;
case OptGetEdid:
memset(&gedid, 0, sizeof(gedid));
gedid.blocks = 256; /* default all blocks */
gformat = HEX; /* default hex output */
- file_out = NULL;
+ file_out = nullptr;
if (!optarg)
break;
subs = optarg;
@@ -1127,22 +1127,22 @@ void edid_cmd(int ch, char *optarg)
"blocks",
"format",
"file",
- NULL
+ nullptr
};
switch (parse_subopt(&subs, subopts, &value)) {
case 0:
- gedid.pad = strtoul(value, 0, 0);
+ gedid.pad = strtoul(value, nullptr, 0);
break;
case 1:
- gedid.start_block = strtoul(value, 0, 0);
+ gedid.start_block = strtoul(value, nullptr, 0);
if (gedid.start_block > 255) {
fprintf(stderr, "startblock %d too large, max 255\n", gedid.start_block);
std::exit(EXIT_FAILURE);
}
break;
case 2:
- gedid.blocks = strtoul(value, 0, 0);
+ gedid.blocks = strtoul(value, nullptr, 0);
break;
case 3:
if (!strcmp(value, "hex")) {
@@ -1172,7 +1172,7 @@ void edid_cmd(int ch, char *optarg)
case OptInfoEdid:
memset(&info_edid, 0, sizeof(info_edid));
if (optarg)
- info_edid.pad = strtoul(optarg, 0, 0);
+ info_edid.pad = strtoul(optarg, nullptr, 0);
break;
}
}
@@ -1191,7 +1191,7 @@ void edid_set(cv4l_fd &_fd)
}
if (options[OptSetEdid]) {
- FILE *fin = NULL;
+ FILE *fin = nullptr;
bool must_fix_edid = options[OptFixEdidChecksums];
if (file_in) {
@@ -1299,7 +1299,7 @@ void edid_set(cv4l_fd &_fd)
if (fin) {
if (sedid.edid) {
free(sedid.edid);
- sedid.edid = NULL;
+ sedid.edid = nullptr;
}
if (fin != stdin)
fclose(fin);
@@ -63,16 +63,16 @@ void io_cmd(int ch, char *optarg)
{
switch (ch) {
case OptSetInput:
- input = strtol(optarg, 0L, 0);
+ input = strtol(optarg, nullptr, 0);
break;
case OptSetOutput:
- output = strtol(optarg, 0L, 0);
+ output = strtol(optarg, nullptr, 0);
break;
case OptSetAudioInput:
- vaudio.index = strtol(optarg, 0L, 0);
+ vaudio.index = strtol(optarg, nullptr, 0);
break;
case OptSetAudioOutput:
- vaudout.index = strtol(optarg, 0L, 0);
+ vaudout.index = strtol(optarg, nullptr, 0);
break;
}
}
@@ -48,16 +48,16 @@ void meta_cmd(int ch, char *optarg)
vfmt.fmt.meta.dataformat = v4l2_fourcc(optarg[0],
optarg[1], optarg[2], optarg[3]);
} else {
- vfmt.fmt.meta.dataformat = strtol(optarg, 0L, 0);
+ vfmt.fmt.meta.dataformat = strtol(optarg, nullptr, 0);
}
break;
case OptListMetaFormats:
if (optarg)
- mbus_code = strtoul(optarg, 0L, 0);
+ mbus_code = strtoul(optarg, nullptr, 0);
break;
case OptListMetaOutFormats:
if (optarg)
- mbus_code_out = strtoul(optarg, 0L, 0);
+ mbus_code_out = strtoul(optarg, nullptr, 0);
break;
}
}
@@ -170,10 +170,10 @@ void misc_cmd(int ch, char *optarg)
switch (ch) {
case OptSetParm:
- fps = strtod(optarg, NULL);
+ fps = strtod(optarg, nullptr);
break;
case OptSetOutputParm:
- output_fps = strtod(optarg, NULL);
+ output_fps = strtod(optarg, nullptr);
break;
case OptSetJpegComp:
subs = optarg;
@@ -186,14 +186,14 @@ void misc_cmd(int ch, char *optarg)
"quality",
"markers",
"comment",
- NULL
+ nullptr
};
size_t len;
int opt = parse_subopt(&subs, subopts, &value);
switch (opt) {
case 16:
- jpegcomp.quality = strtol(value, 0L, 0);
+ jpegcomp.quality = strtol(value, nullptr, 0);
break;
case 17:
if (strstr(value, "dht"))
@@ -238,7 +238,7 @@ void misc_cmd(int ch, char *optarg)
static const char *const subopts[] = {
"cmd",
"flags",
- NULL
+ nullptr
};
switch (parse_subopt(&subs, subopts, &value)) {
@@ -264,7 +264,7 @@ void misc_cmd(int ch, char *optarg)
"stop_pts",
"start_speed",
"start_format",
- NULL
+ nullptr
};
switch (parse_subopt(&subs, subopts, &value)) {
@@ -275,10 +275,10 @@ void misc_cmd(int ch, char *optarg)
dec_cmd.flags = parse_decflags(value);
break;
case 2:
- dec_cmd.stop.pts = strtoull(value, 0, 0);
+ dec_cmd.stop.pts = strtoull(value, nullptr, 0);
break;
case 3:
- dec_cmd.start.speed = strtol(value, 0, 0);
+ dec_cmd.start.speed = strtol(value, nullptr, 0);
break;
case 4:
if (!strcmp(value, "gop"))
@@ -77,7 +77,7 @@ static void find_fb(int fd)
if (doioctl(fd, VIDIOC_G_FBUF, &fbuf))
return;
- if (fbuf.base == 0) {
+ if (fbuf.base == nullptr) {
printf("No framebuffer base address was defined\n");
return;
}
@@ -146,7 +146,7 @@ static int fbuf_fill_from_fb(struct v4l2_framebuffer &fb, const char *fb_device)
struct fb_var_screeninfo vi;
int fb_fd;
- if (fb_device == NULL)
+ if (fb_device == nullptr)
return 0;
fb_fd = open(fb_device, O_RDWR);
if (fb_fd == -1) {
@@ -219,32 +219,32 @@ void overlay_cmd(int ch, char *optarg)
"width",
"height",
"field",
- NULL
+ nullptr
};
switch (parse_subopt(&subs, subopts, &value)) {
case 0:
- overlay_fmt.fmt.win.chromakey = strtoul(value, 0L, 0);
+ overlay_fmt.fmt.win.chromakey = strtoul(value, nullptr, 0);
set_overlay_fmt |= FmtChromaKey;
break;
case 1:
- overlay_fmt.fmt.win.global_alpha = strtoul(value, 0L, 0);
+ overlay_fmt.fmt.win.global_alpha = strtoul(value, nullptr, 0);
set_overlay_fmt |= FmtGlobalAlpha;
break;
case 2:
- overlay_fmt.fmt.win.w.left = strtol(value, 0L, 0);
+ overlay_fmt.fmt.win.w.left = strtol(value, nullptr, 0);
set_overlay_fmt |= FmtLeft;
break;
case 3:
- overlay_fmt.fmt.win.w.top = strtol(value, 0L, 0);
+ overlay_fmt.fmt.win.w.top = strtol(value, nullptr, 0);
set_overlay_fmt |= FmtTop;
break;
case 4:
- overlay_fmt.fmt.win.w.width = strtoul(value, 0L, 0);
+ overlay_fmt.fmt.win.w.width = strtoul(value, nullptr, 0);
set_overlay_fmt |= FmtWidth;
break;
case 5:
- overlay_fmt.fmt.win.w.height = strtoul(value, 0L, 0);
+ overlay_fmt.fmt.win.w.height = strtoul(value, nullptr, 0);
set_overlay_fmt |= FmtHeight;
break;
case 6:
@@ -267,21 +267,21 @@ void overlay_cmd(int ch, char *optarg)
"top",
"width",
"height",
- NULL
+ nullptr
};
switch (parse_subopt(&subs, subopts, &value)) {
case 0:
- r.left = strtoul(value, 0L, 0);
+ r.left = strtoul(value, nullptr, 0);
break;
case 1:
- r.top = strtoul(value, 0L, 0);
+ r.top = strtoul(value, nullptr, 0);
break;
case 2:
- r.width = strtoul(value, 0L, 0);
+ r.width = strtoul(value, nullptr, 0);
break;
case 3:
- r.height = strtoul(value, 0L, 0);
+ r.height = strtoul(value, nullptr, 0);
break;
default:
overlay_usage();
@@ -298,7 +298,7 @@ void overlay_cmd(int ch, char *optarg)
struct v4l2_clip c;
c.c = r;
- c.next = NULL;
+ c.next = nullptr;
clips.push_back(c);
}
break;
@@ -317,33 +317,33 @@ void overlay_cmd(int ch, char *optarg)
"local_alpha",
"local_inv_alpha",
"fb",
- NULL
+ nullptr
};
switch (parse_subopt(&subs, subopts, &value)) {
case 0:
fbuf.flags &= ~chroma_flags;
- fbuf.flags |= strtol(value, 0L, 0) ? V4L2_FBUF_FLAG_CHROMAKEY : 0;
+ fbuf.flags |= strtol(value, nullptr, 0) ? V4L2_FBUF_FLAG_CHROMAKEY : 0;
set_fbuf |= chroma_flags;
break;
case 1:
fbuf.flags &= ~chroma_flags;
- fbuf.flags |= strtol(value, 0L, 0) ? V4L2_FBUF_FLAG_SRC_CHROMAKEY : 0;
+ fbuf.flags |= strtol(value, nullptr, 0) ? V4L2_FBUF_FLAG_SRC_CHROMAKEY : 0;
set_fbuf |= chroma_flags;
break;
case 2:
fbuf.flags &= ~alpha_flags;
- fbuf.flags |= strtol(value, 0L, 0) ? V4L2_FBUF_FLAG_GLOBAL_ALPHA : 0;
+ fbuf.flags |= strtol(value, nullptr, 0) ? V4L2_FBUF_FLAG_GLOBAL_ALPHA : 0;
set_fbuf |= alpha_flags;
break;
case 3:
fbuf.flags &= ~alpha_flags;
- fbuf.flags |= strtol(value, 0L, 0) ? V4L2_FBUF_FLAG_LOCAL_ALPHA : 0;
+ fbuf.flags |= strtol(value, nullptr, 0) ? V4L2_FBUF_FLAG_LOCAL_ALPHA : 0;
set_fbuf |= alpha_flags;
break;
case 4:
fbuf.flags &= ~alpha_flags;
- fbuf.flags |= strtol(value, 0L, 0) ? V4L2_FBUF_FLAG_LOCAL_INV_ALPHA : 0;
+ fbuf.flags |= strtol(value, nullptr, 0) ? V4L2_FBUF_FLAG_LOCAL_INV_ALPHA : 0;
set_fbuf |= alpha_flags;
break;
case 5:
@@ -362,7 +362,7 @@ void overlay_cmd(int ch, char *optarg)
}
break;
case OptOverlay:
- overlay = strtol(optarg, 0L, 0);
+ overlay = strtol(optarg, nullptr, 0);
break;
}
}
@@ -372,9 +372,9 @@ static void do_try_set_overlay(struct v4l2_format &fmt, int fd)
struct v4l2_window &win = fmt.fmt.win;
bool keep_old_clip = true;
bool keep_old_bitmap = true;
- struct v4l2_clip *cliplist = NULL;
+ struct v4l2_clip *cliplist = nullptr;
unsigned stride = (win.w.width + 7) / 8;
- unsigned char *bitmap = NULL;
+ unsigned char *bitmap = nullptr;
int ret;
if (((set_overlay_fmt & FmtWidth) && win.w.width != overlay_fmt.fmt.win.w.width) ||
@@ -385,7 +385,7 @@ static void do_try_set_overlay(struct v4l2_format &fmt, int fd)
if (options[OptClearClips] || !clips.empty())
keep_old_clip = false;
- win.bitmap = NULL;
+ win.bitmap = nullptr;
if (keep_old_bitmap) {
bitmap = static_cast<unsigned char *>(calloc(1, stride * win.w.height));
win.bitmap = bitmap;
@@ -489,7 +489,7 @@ void overlay_get(cv4l_fd &_fd)
if (options[OptGetOverlayFormat]) {
struct v4l2_format fmt;
- unsigned char *bitmap = NULL;
+ unsigned char *bitmap = nullptr;
memset(&fmt, 0, sizeof(fmt));
// You can never have both VIDEO_OVERLAY and VIDEO_OUTPUT_OVERLAY
@@ -41,7 +41,7 @@ void sdr_cmd(int ch, char *optarg)
vfmt.fmt.sdr.pixelformat = v4l2_fourcc(optarg[0],
optarg[1], optarg[2], optarg[3]);
} else {
- vfmt.fmt.sdr.pixelformat = strtol(optarg, 0L, 0);
+ vfmt.fmt.sdr.pixelformat = strtol(optarg, nullptr, 0);
}
break;
}
@@ -98,24 +98,24 @@ static void parse_crop(char *optarg, unsigned int &set_crop, v4l2_rect &vcrop)
"top",
"width",
"height",
- NULL
+ nullptr
};
switch (parse_subopt(&subs, subopts, &value)) {
case 0:
- vcrop.left = strtol(value, 0L, 0);
+ vcrop.left = strtol(value, nullptr, 0);
set_crop |= CropLeft;
break;
case 1:
- vcrop.top = strtol(value, 0L, 0);
+ vcrop.top = strtol(value, nullptr, 0);
set_crop |= CropTop;
break;
case 2:
- vcrop.width = strtol(value, 0L, 0);
+ vcrop.width = strtol(value, nullptr, 0);
set_crop |= CropWidth;
break;
case 3:
- vcrop.height = strtol(value, 0L, 0);
+ vcrop.height = strtol(value, nullptr, 0);
set_crop |= CropHeight;
break;
default:
@@ -160,7 +160,7 @@ static int parse_selection(char *optarg, unsigned int &set_sel, v4l2_selection &
"top",
"width",
"height",
- NULL
+ nullptr
};
switch (parse_subopt(&subs, subopts, &value)) {
@@ -176,19 +176,19 @@ static int parse_selection(char *optarg, unsigned int &set_sel, v4l2_selection &
set_sel |= SelectionFlags;
break;
case 2:
- vsel.r.left = strtol(value, 0L, 0);
+ vsel.r.left = strtol(value, nullptr, 0);
set_sel |= SelectionLeft;
break;
case 3:
- vsel.r.top = strtol(value, 0L, 0);
+ vsel.r.top = strtol(value, nullptr, 0);
set_sel |= SelectionTop;
break;
case 4:
- vsel.r.width = strtoul(value, 0L, 0);
+ vsel.r.width = strtoul(value, nullptr, 0);
set_sel |= SelectionWidth;
break;
case 5:
- vsel.r.height = strtoul(value, 0L, 0);
+ vsel.r.height = strtoul(value, nullptr, 0);
set_sel |= SelectionHeight;
break;
default:
@@ -182,7 +182,7 @@ static int parse_timing_subopt(char **subopt_str, int *value)
"reduced-blanking",
"reduced-fps",
"clear",
- NULL
+ nullptr
};
opt = getsubopt(subopt_str, (char* const*) subopt_list, &opt_str);
@@ -192,7 +192,7 @@ static int parse_timing_subopt(char **subopt_str, int *value)
stds_usage();
std::exit(EXIT_FAILURE);
}
- if (opt_str == NULL && opt != CVT && opt != GTF && opt != CLEAR) {
+ if (opt_str == nullptr && opt != CVT && opt != GTF && opt != CLEAR) {
fprintf(stderr, "No value given to suboption <%s>\n",
subopt_list[opt]);
stds_usage();
@@ -200,7 +200,7 @@ static int parse_timing_subopt(char **subopt_str, int *value)
}
if (opt_str)
- *value = strtol(opt_str, 0L, 0);
+ *value = strtol(opt_str, nullptr, 0);
return opt;
}
@@ -446,7 +446,7 @@ void stds_cmd(int ch, char *optarg)
standard = V4L2_STD_SECAM;
}
else if (isdigit(optarg[0])) {
- standard = strtol(optarg, 0L, 0) | (1ULL << 63);
+ standard = strtol(optarg, nullptr, 0) | (1ULL << 63);
} else {
fprintf(stderr, "Unknown standard '%s'\n", optarg);
stds_usage();
@@ -458,11 +458,11 @@ void stds_cmd(int ch, char *optarg)
break;
case OptListDvTimings:
if (optarg)
- list_dv_timings_pad = strtoul(optarg, 0L, 0);
+ list_dv_timings_pad = strtoul(optarg, nullptr, 0);
break;
case OptGetDvTimingsCap:
if (optarg)
- dv_timings_cap_pad = strtoul(optarg, 0L, 0);
+ dv_timings_cap_pad = strtoul(optarg, nullptr, 0);
break;
}
}
@@ -637,13 +637,13 @@ void streaming_cmd(int ch, char *optarg)
switch (ch) {
case OptStreamCount:
- stream_count = strtoul(optarg, 0L, 0);
+ stream_count = strtoul(optarg, nullptr, 0);
break;
case OptStreamSkip:
- stream_skip = strtoul(optarg, 0L, 0);
+ stream_skip = strtoul(optarg, nullptr, 0);
break;
case OptStreamSleep:
- stream_sleep = strtol(optarg, 0L, 0);
+ stream_sleep = strtol(optarg, nullptr, 0);
break;
case OptStreamNoQuery:
stream_no_query = true;
@@ -652,7 +652,7 @@ void streaming_cmd(int ch, char *optarg)
stream_loop = true;
break;
case OptStreamOutPattern:
- stream_pat = strtoul(optarg, 0L, 0);
+ stream_pat = strtoul(optarg, nullptr, 0);
for (i = 0; tpg_pattern_strings[i]; i++) ;
if (stream_pat >= i)
stream_pat = 0;
@@ -692,7 +692,7 @@ void streaming_cmd(int ch, char *optarg)
streaming_usage();
break;
case OptStreamOutAlphaComponent:
- stream_out_alpha = strtoul(optarg, 0L, 0);
+ stream_out_alpha = strtoul(optarg, nullptr, 0);
break;
case OptStreamOutAlphaRedOnly:
stream_out_alpha_red_only = true;
@@ -702,7 +702,7 @@ void streaming_cmd(int ch, char *optarg)
break;
case OptStreamOutHorSpeed:
case OptStreamOutVertSpeed:
- speed = strtol(optarg, 0L, 0);
+ speed = strtol(optarg, nullptr, 0);
if (speed < -3)
speed = -3;
if (speed > 3)
@@ -713,7 +713,7 @@ void streaming_cmd(int ch, char *optarg)
stream_out_vert_mode = static_cast<tpg_move_mode>(speed + 3);
break;
case OptStreamOutPercFill:
- stream_out_perc_fill = strtoul(optarg, 0L, 0);
+ stream_out_perc_fill = strtoul(optarg, nullptr, 0);
if (stream_out_perc_fill > 100)
stream_out_perc_fill = 100;
if (stream_out_perc_fill < 1)
@@ -753,7 +753,7 @@ void streaming_cmd(int ch, char *optarg)
fallthrough;
case OptStreamMmap:
if (optarg) {
- reqbufs_count_cap = strtoul(optarg, 0L, 0);
+ reqbufs_count_cap = strtoul(optarg, nullptr, 0);
if (reqbufs_count_cap == 0)
reqbufs_count_cap = 3;
}
@@ -766,7 +766,7 @@ void streaming_cmd(int ch, char *optarg)
fallthrough;
case OptStreamOutMmap:
if (optarg) {
- reqbufs_count_out = strtoul(optarg, 0L, 0);
+ reqbufs_count_out = strtoul(optarg, nullptr, 0);
if (reqbufs_count_out == 0)
reqbufs_count_out = 3;
}
@@ -1416,7 +1416,7 @@ static int do_handle_cap(cv4l_fd &fd, cv4l_queue &q, FILE *fout, int *index,
host_fd_to >= 0 ? 100 - comp_perc / comp_perc_count : -1);
comp_perc_count = comp_perc = 0;
}
- if (!last_buffer && index == NULL) {
+ if (!last_buffer && index == nullptr) {
/*
* EINVAL in qbuf can happen if this is the last buffer before
* a dynamic resolution change sequence. In this case the buffer
@@ -1632,7 +1632,7 @@ static int do_handle_out_to_in(cv4l_fd &out_fd, cv4l_fd &fd, cv4l_queue &out, cv
static FILE *open_output_file(cv4l_fd &fd)
{
- FILE *fout = NULL;
+ FILE *fout = nullptr;
#ifndef NO_STREAM_TO
if (file_to) {
@@ -1644,7 +1644,7 @@ static FILE *open_output_file(cv4l_fd &fd)
return fout;
}
if (!host_to)
- return NULL;
+ return nullptr;
char *p = std::strchr(host_to, ':');
struct sockaddr_in serv_addr;
@@ -1657,7 +1657,7 @@ static FILE *open_output_file(cv4l_fd &fd)
aspect = fd.g_pixel_aspect(width, height);
if (p) {
- host_port_to = strtoul(p + 1, 0L, 0);
+ host_port_to = strtoul(p + 1, nullptr, 0);
*p = '\0';
}
host_fd_to = socket(AF_INET, SOCK_STREAM, 0);
@@ -1666,7 +1666,7 @@ static FILE *open_output_file(cv4l_fd &fd)
std::exit(EXIT_SUCCESS);
}
server = gethostbyname(host_to);
- if (server == NULL) {
+ if (server == nullptr) {
fprintf(stderr, "no such host %s\n", host_to);
std::exit(EXIT_SUCCESS);
}
@@ -1728,7 +1728,7 @@ static void streaming_set_cap(cv4l_fd &fd, cv4l_fd &exp_fd)
unsigned count;
bool eos;
bool source_change;
- FILE *fout = NULL;
+ FILE *fout = nullptr;
cv4l_fmt fmt;
if (!(capabilities & (V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_VIDEO_CAPTURE_MPLANE |
@@ -1833,7 +1833,7 @@ recover:
FD_SET(fd.g_fd(), &exception_fds);
FD_ZERO(&read_fds);
FD_SET(fd.g_fd(), &read_fds);
- r = select(fd.g_fd() + 1, use_poll ? &read_fds : NULL, NULL, &exception_fds, &tv);
+ r = select(fd.g_fd() + 1, use_poll ? &read_fds : nullptr, nullptr, &exception_fds, &tv);
if (r == -1) {
if (EINTR == errno)
@@ -1870,7 +1870,7 @@ recover:
}
if (FD_ISSET(fd.g_fd(), &read_fds)) {
- r = do_handle_cap(fd, q, fout, NULL,
+ r = do_handle_cap(fd, q, fout, nullptr,
count, fps_ts, fmt, false);
if (r < 0)
break;
@@ -1898,7 +1898,7 @@ done:
static FILE *open_input_file(cv4l_fd &fd, __u32 type)
{
- FILE *fin = NULL;
+ FILE *fin = nullptr;
if (file_from) {
if (!strcmp(file_from, "-"))
@@ -1909,7 +1909,7 @@ static FILE *open_input_file(cv4l_fd &fd, __u32 type)
return fin;
}
if (!host_from)
- return NULL;
+ return nullptr;
char *p = std::strchr(host_from, ':');
int listen_fd;
@@ -1917,7 +1917,7 @@ static FILE *open_input_file(cv4l_fd &fd, __u32 type)
struct sockaddr_in serv_addr = {}, cli_addr;
if (p) {
- host_port_from = strtoul(p + 1, 0L, 0);
+ host_port_from = strtoul(p + 1, nullptr, 0);
*p = '\0';
}
listen_fd = socket(AF_INET, SOCK_STREAM, 0);
@@ -2032,7 +2032,7 @@ static void streaming_set_out(cv4l_fd &fd, cv4l_fd &exp_fd)
fps_timestamps fps_ts;
unsigned count = 0;
bool stopped = false;
- FILE *fin = NULL;
+ FILE *fin = nullptr;
cv4l_fmt fmt;
fd.g_fmt(fmt);
@@ -2113,7 +2113,7 @@ static void streaming_set_out(cv4l_fd &fd, cv4l_fd &exp_fd)
tv.tv_sec = 2;
tv.tv_usec = 0;
- r = select(fd.g_fd() + 1, NULL, &fds, NULL, &tv);
+ r = select(fd.g_fd() + 1, nullptr, &fds, nullptr, &tv);
if (r == -1) {
if (EINTR == errno)
@@ -2128,7 +2128,7 @@ static void streaming_set_out(cv4l_fd &fd, cv4l_fd &exp_fd)
goto done;
}
}
- r = do_handle_out(fd, q, fin, NULL,
+ r = do_handle_out(fd, q, fin, nullptr,
count, fps_ts, fmt, stopped, false);
if (r == QUEUE_STOPPED)
stopped = true;
@@ -2160,7 +2160,7 @@ enum stream_type {
OUT,
};
-static int capture_setup(cv4l_fd &fd, cv4l_queue &in, cv4l_fd *exp_fd, cv4l_fmt *new_fmt = NULL)
+static int capture_setup(cv4l_fd &fd, cv4l_queue &in, cv4l_fd *exp_fd, cv4l_fmt *new_fmt = nullptr)
{
if (fd.streamoff(in.g_type())) {
fprintf(stderr, "%s: fd.streamoff error\n", __func__);
@@ -2323,22 +2323,22 @@ static void stateful_m2m(cv4l_fd &fd, cv4l_queue &in, cv4l_queue &out,
}
if (rd_fds && FD_ISSET(fd.g_fd(), rd_fds)) {
- r = do_handle_cap(fd, in, fin, NULL,
+ r = do_handle_cap(fd, in, fin, nullptr,
count[CAP], fps_ts[CAP], fmt_in,
ignore_count_skip);
if (r == QUEUE_STOPPED)
break;
if (r < 0) {
- rd_fds = NULL;
+ rd_fds = nullptr;
if (!have_eos) {
- ex_fds = NULL;
+ ex_fds = nullptr;
break;
}
}
}
if (wr_fds && FD_ISSET(fd.g_fd(), wr_fds)) {
- r = do_handle_out(fd, out, fout, NULL,
+ r = do_handle_out(fd, out, fout, nullptr,
count[OUT], fps_ts[OUT], fmt_out, stopped,
!ignore_count_skip);
if (r == QUEUE_STOPPED) {
@@ -2362,7 +2362,7 @@ static void stateful_m2m(cv4l_fd &fd, cv4l_queue &in, cv4l_queue &out,
while (!fd.dqevent(ev)) {
if (ev.type == V4L2_EVENT_EOS) {
- wr_fds = NULL;
+ wr_fds = nullptr;
if (!verbose)
fprintf(stderr, "\n");
fprintf(stderr, "EOS EVENT\n");
@@ -2472,7 +2472,7 @@ static void stateless_m2m(cv4l_fd &fd, cv4l_queue &in, cv4l_queue &out,
FD_ZERO(&except_fds);
FD_SET(req_fd, &except_fds);
- int rc = select(req_fd + 1, NULL, NULL, &except_fds, &tv);
+ int rc = select(req_fd + 1, nullptr, nullptr, &except_fds, &tv);
if (rc == 0) {
fprintf(stderr, "Timeout when waiting for media request\n");
@@ -2499,7 +2499,7 @@ static void stateless_m2m(cv4l_fd &fd, cv4l_queue &in, cv4l_queue &out,
* fin is not sent to do_handle_cap since the capture buf is
* written to the file in current function
*/
- rc = do_handle_cap(fd, in, NULL, &buf_idx, count[CAP],
+ rc = do_handle_cap(fd, in, nullptr, &buf_idx, count[CAP],
fps_ts[CAP], fmt_in, false);
if (rc && rc != QUEUE_STOPPED) {
fprintf(stderr, "%s: do_handle_cap err\n", __func__);
@@ -2539,7 +2539,7 @@ static void stateless_m2m(cv4l_fd &fd, cv4l_queue &in, cv4l_queue &out,
return;
if (!stopped) {
- rc = do_handle_out(fd, out, fout, NULL, count[OUT],
+ rc = do_handle_out(fd, out, fout, nullptr, count[OUT],
fps_ts[OUT], fmt_out, false, true);
if (rc) {
stopped = true;
@@ -2567,8 +2567,8 @@ static void streaming_set_m2m(cv4l_fd &fd, cv4l_fd &exp_fd)
cv4l_queue in(fd.g_type(), memory);
cv4l_queue out(v4l_type_invert(fd.g_type()), out_memory);
cv4l_queue exp_q(exp_fd.g_type(), V4L2_MEMORY_MMAP);
- cv4l_fd *exp_fd_p = NULL;
- FILE *file[2] = {NULL, NULL};
+ cv4l_fd *exp_fd_p = nullptr;
+ FILE *file[2] = {nullptr, nullptr};
cv4l_fmt fmt[2];
fd.g_fmt(fmt[OUT], out.g_type());
@@ -2629,7 +2629,7 @@ static void streaming_set_cap2out(cv4l_fd &fd, cv4l_fd &out_fd)
cv4l_queue out(out_type, out_memory);
fps_timestamps fps_ts[2];
unsigned count[2] = { 0, 0 };
- FILE *file[2] = {NULL, NULL};
+ FILE *file[2] = {nullptr, nullptr};
fd_set fds;
unsigned cnt = 0;
cv4l_fmt fmt[2];
@@ -2737,7 +2737,7 @@ static void streaming_set_cap2out(cv4l_fd &fd, cv4l_fd &out_fd)
FD_SET(fd.g_fd(), &fds);
if (use_poll)
- r = select(fd.g_fd() + 1, &fds, NULL, NULL, &tv);
+ r = select(fd.g_fd() + 1, &fds, nullptr, nullptr, &tv);
if (r == -1) {
if (EINTR == errno)
@@ -8,7 +8,7 @@ struct mbus_name {
static struct mbus_name mbus_names[] = {
{ "Fixed", MEDIA_BUS_FMT_FIXED },
#include "media-bus-format-names.h"
- { NULL, 0 }
+ { nullptr, 0 }
};
/* selection specified */
@@ -92,7 +92,7 @@ void subdev_cmd(int ch, char *optarg)
switch (ch) {
case OptListSubDevMBusCodes:
if (optarg)
- list_mbus_codes_pad = strtoul(optarg, 0L, 0);
+ list_mbus_codes_pad = strtoul(optarg, nullptr, 0);
break;
case OptListSubDevFrameSizes:
subs = optarg;
@@ -100,15 +100,15 @@ void subdev_cmd(int ch, char *optarg)
static const char *const subopts[] = {
"pad",
"code",
- NULL
+ nullptr
};
switch (parse_subopt(&subs, subopts, &value)) {
case 0:
- frmsize.pad = strtoul(value, 0L, 0);
+ frmsize.pad = strtoul(value, nullptr, 0);
break;
case 1:
- frmsize.code = strtoul(value, 0L, 0);
+ frmsize.code = strtoul(value, nullptr, 0);
break;
default:
subdev_usage();
@@ -124,21 +124,21 @@ void subdev_cmd(int ch, char *optarg)
"code",
"width",
"height",
- NULL
+ nullptr
};
switch (parse_subopt(&subs, subopts, &value)) {
case 0:
- frmival.pad = strtoul(value, 0L, 0);
+ frmival.pad = strtoul(value, nullptr, 0);
break;
case 1:
- frmival.code = strtoul(value, 0L, 0);
+ frmival.code = strtoul(value, nullptr, 0);
break;
case 2:
- frmival.width = strtoul(value, 0L, 0);
+ frmival.width = strtoul(value, nullptr, 0);
break;
case 3:
- frmival.height = strtoul(value, 0L, 0);
+ frmival.height = strtoul(value, nullptr, 0);
break;
default:
subdev_usage();
@@ -148,7 +148,7 @@ void subdev_cmd(int ch, char *optarg)
break;
case OptGetSubDevFormat:
if (optarg)
- get_fmt_pad = strtoul(optarg, 0L, 0);
+ get_fmt_pad = strtoul(optarg, nullptr, 0);
break;
case OptGetSubDevSelection:
subs = optarg;
@@ -156,13 +156,13 @@ void subdev_cmd(int ch, char *optarg)
static const char *const subopts[] = {
"pad",
"target",
- NULL
+ nullptr
};
unsigned int target;
switch (parse_subopt(&subs, subopts, &value)) {
case 0:
- get_sel_pad = strtoul(value, 0L, 0);
+ get_sel_pad = strtoul(value, nullptr, 0);
break;
case 1:
if (parse_selection_target(value, target)) {
@@ -180,7 +180,7 @@ void subdev_cmd(int ch, char *optarg)
break;
case OptGetSubDevFPS:
if (optarg)
- get_fps_pad = strtoul(optarg, 0L, 0);
+ get_fps_pad = strtoul(optarg, nullptr, 0);
break;
case OptSetSubDevFormat:
case OptTrySubDevFormat:
@@ -198,20 +198,20 @@ void subdev_cmd(int ch, char *optarg)
"quantization",
"xfer",
"pad",
- NULL
+ nullptr
};
switch (parse_subopt(&subs, subopts, &value)) {
case 0:
- ffmt.width = strtoul(value, 0L, 0);
+ ffmt.width = strtoul(value, nullptr, 0);
set_fmt |= FmtWidth;
break;
case 1:
- ffmt.height = strtoul(value, 0L, 0);
+ ffmt.height = strtoul(value, nullptr, 0);
set_fmt |= FmtHeight;
break;
case 2:
- ffmt.code = strtoul(value, 0L, 0);
+ ffmt.code = strtoul(value, nullptr, 0);
set_fmt |= FmtPixelFormat;
break;
case 3:
@@ -242,7 +242,7 @@ void subdev_cmd(int ch, char *optarg)
set_fmt |= FmtXferFunc;
break;
case 9:
- set_fmt_pad = strtoul(value, 0L, 0);
+ set_fmt_pad = strtoul(value, nullptr, 0);
break;
default:
fprintf(stderr, "Unknown option\n");
@@ -264,7 +264,7 @@ void subdev_cmd(int ch, char *optarg)
"width",
"height",
"pad",
- NULL
+ nullptr
};
switch (parse_subopt(&subs, subopts, &value)) {
@@ -280,23 +280,23 @@ void subdev_cmd(int ch, char *optarg)
set_selection |= SelectionFlags;
break;
case 2:
- vsel.r.left = strtol(value, 0L, 0);
+ vsel.r.left = strtol(value, nullptr, 0);
set_selection |= SelectionLeft;
break;
case 3:
- vsel.r.top = strtol(value, 0L, 0);
+ vsel.r.top = strtol(value, nullptr, 0);
set_selection |= SelectionTop;
break;
case 4:
- vsel.r.width = strtoul(value, 0L, 0);
+ vsel.r.width = strtoul(value, nullptr, 0);
set_selection |= SelectionWidth;
break;
case 5:
- vsel.r.height = strtoul(value, 0L, 0);
+ vsel.r.height = strtoul(value, nullptr, 0);
set_selection |= SelectionHeight;
break;
case 6:
- vsel.pad = strtoul(value, 0L, 0);
+ vsel.pad = strtoul(value, nullptr, 0);
break;
default:
fprintf(stderr, "Unknown option\n");
@@ -312,15 +312,15 @@ void subdev_cmd(int ch, char *optarg)
static const char *const subopts[] = {
"pad",
"fps",
- NULL
+ nullptr
};
switch (parse_subopt(&subs, subopts, &value)) {
case 0:
- set_fps_pad = strtoul(value, 0L, 0);
+ set_fps_pad = strtoul(value, nullptr, 0);
break;
case 1:
- set_fps = strtod(value, NULL);
+ set_fps = strtod(value, nullptr);
break;
default:
fprintf(stderr, "Unknown option\n");
@@ -163,24 +163,24 @@ static void parse_freq_seek(char *optarg, struct v4l2_hw_freq_seek &seek)
"spacing",
"low",
"high",
- NULL
+ nullptr
};
switch (parse_subopt(&subs, subopts, &value)) {
case 0:
- seek.seek_upward = strtol(value, 0L, 0);
+ seek.seek_upward = strtol(value, nullptr, 0);
break;
case 1:
- seek.wrap_around = strtol(value, 0L, 0);
+ seek.wrap_around = strtol(value, nullptr, 0);
break;
case 2:
- seek.spacing = strtol(value, 0L, 0);
+ seek.spacing = strtol(value, nullptr, 0);
break;
case 3:
- low = strtod(value, NULL);
+ low = strtod(value, nullptr);
break;
case 4:
- high = strtod(value, NULL);
+ high = strtod(value, nullptr);
break;
default:
tuner_usage();
@@ -193,7 +193,7 @@ void tuner_cmd(int ch, char *optarg)
{
switch (ch) {
case OptSetFreq:
- freq = strtod(optarg, NULL);
+ freq = strtod(optarg, nullptr);
break;
case OptSetTuner:
if (!strcmp(optarg, "stereo"))
@@ -213,7 +213,7 @@ void tuner_cmd(int ch, char *optarg)
}
break;
case OptSetModulator:
- txsubchans = strtol(optarg, 0L, 0);
+ txsubchans = strtol(optarg, nullptr, 0);
if (!strcmp(optarg, "stereo"))
txsubchans = V4L2_TUNER_SUB_STEREO;
else if (!strcmp(optarg, "stereo-sap"))
@@ -238,7 +238,7 @@ void tuner_cmd(int ch, char *optarg)
parse_freq_seek(optarg, freq_seek);
break;
case OptTunerIndex:
- tuner_index = strtoul(optarg, NULL, 0);
+ tuner_index = strtoul(optarg, nullptr, 0);
break;
}
}
@@ -104,7 +104,7 @@ void vbi_cmd(int ch, char *optarg)
V4L2_SLICED_VPS;
else
vbi_usage();
- if (subs == NULL)
+ if (subs == nullptr)
break;
optarg = subs + 1;
}
@@ -131,30 +131,30 @@ void vbi_cmd(int ch, char *optarg)
"start1",
"count0",
"count1",
- NULL
+ nullptr
};
switch (parse_subopt(&subs, subopts, &value)) {
case 0:
- raw->fmt.vbi.sampling_rate = strtoul(value, NULL, 0);
+ raw->fmt.vbi.sampling_rate = strtoul(value, nullptr, 0);
break;
case 1:
- raw->fmt.vbi.offset = strtoul(value, NULL, 0);
+ raw->fmt.vbi.offset = strtoul(value, nullptr, 0);
break;
case 2:
- raw->fmt.vbi.samples_per_line = strtoul(value, NULL, 0);
+ raw->fmt.vbi.samples_per_line = strtoul(value, nullptr, 0);
break;
case 3:
- raw->fmt.vbi.start[0] = strtoul(value, NULL, 0);
+ raw->fmt.vbi.start[0] = strtoul(value, nullptr, 0);
break;
case 4:
- raw->fmt.vbi.start[1] = strtoul(value, NULL, 0);
+ raw->fmt.vbi.start[1] = strtoul(value, nullptr, 0);
break;
case 5:
- raw->fmt.vbi.count[0] = strtoul(value, NULL, 0);
+ raw->fmt.vbi.count[0] = strtoul(value, nullptr, 0);
break;
case 6:
- raw->fmt.vbi.count[1] = strtoul(value, NULL, 0);
+ raw->fmt.vbi.count[1] = strtoul(value, nullptr, 0);
break;
default:
vbi_usage();
@@ -114,7 +114,7 @@ void vidcap_cmd(int ch, char *optarg)
case OptListFormats:
case OptListFormatsExt:
if (optarg)
- mbus_code = strtoul(optarg, 0L, 0);
+ mbus_code = strtoul(optarg, nullptr, 0);
break;
case OptListFrameSizes:
be_pixfmt = strlen(optarg) == 7 && !memcmp(optarg + 4, "-BE", 3);
@@ -124,7 +124,7 @@ void vidcap_cmd(int ch, char *optarg)
if (be_pixfmt)
frmsize.pixel_format |= 1U << 31;
} else if (isdigit(optarg[0])) {
- frmsize.pixel_format = strtol(optarg, 0L, 0);
+ frmsize.pixel_format = strtol(optarg, nullptr, 0);
} else {
fprintf(stderr, "The pixelformat '%s' is invalid\n", optarg);
std::exit(EXIT_FAILURE);
@@ -137,15 +137,15 @@ void vidcap_cmd(int ch, char *optarg)
"width",
"height",
"pixelformat",
- NULL
+ nullptr
};
switch (parse_subopt(&subs, subopts, &value)) {
case 0:
- frmival.width = strtol(value, 0L, 0);
+ frmival.width = strtol(value, nullptr, 0);
break;
case 1:
- frmival.height = strtol(value, 0L, 0);
+ frmival.height = strtol(value, nullptr, 0);
break;
case 2:
be_pixfmt = strlen(value) == 7 && !memcmp(value + 4, "-BE", 3);
@@ -156,7 +156,7 @@ void vidcap_cmd(int ch, char *optarg)
if (be_pixfmt)
frmival.pixel_format |= 1U << 31;
} else if (isdigit(optarg[0])) {
- frmival.pixel_format = strtol(value, 0L, 0);
+ frmival.pixel_format = strtol(value, nullptr, 0);
} else {
fprintf(stderr, "The pixelformat '%s' is invalid\n", optarg);
std::exit(EXIT_FAILURE);
@@ -94,7 +94,7 @@ void vidout_cmd(int ch, char *optarg)
case OptListOutFormats:
case OptListOutFormatsExt:
if (optarg)
- mbus_code_out = strtoul(optarg, 0L, 0);
+ mbus_code_out = strtoul(optarg, nullptr, 0);
break;
}
}
@@ -50,224 +50,224 @@ __u32 vidcap_buftype;
__u32 vidout_buftype;
static struct option long_options[] = {
- {"list-audio-inputs", no_argument, 0, OptListAudioInputs},
- {"list-audio-outputs", no_argument, 0, OptListAudioOutputs},
- {"all", no_argument, 0, OptAll},
- {"device", required_argument, 0, OptSetDevice},
- {"out-device", required_argument, 0, OptSetOutDevice},
- {"export-device", required_argument, 0, OptSetExportDevice},
- {"media-bus-info", required_argument, 0, OptMediaBusInfo},
- {"get-fmt-video", no_argument, 0, OptGetVideoFormat},
- {"set-fmt-video", required_argument, 0, OptSetVideoFormat},
- {"try-fmt-video", required_argument, 0, OptTryVideoFormat},
- {"get-fmt-video-out", no_argument, 0, OptGetVideoOutFormat},
- {"set-fmt-video-out", required_argument, 0, OptSetVideoOutFormat},
- {"try-fmt-video-out", required_argument, 0, OptTryVideoOutFormat},
- {"help", no_argument, 0, OptHelp},
- {"help-tuner", no_argument, 0, OptHelpTuner},
- {"help-io", no_argument, 0, OptHelpIO},
- {"help-stds", no_argument, 0, OptHelpStds},
- {"help-vidcap", no_argument, 0, OptHelpVidCap},
- {"help-vidout", no_argument, 0, OptHelpVidOut},
- {"help-overlay", no_argument, 0, OptHelpOverlay},
- {"help-vbi", no_argument, 0, OptHelpVbi},
- {"help-sdr", no_argument, 0, OptHelpSdr},
- {"help-meta", no_argument, 0, OptHelpMeta},
- {"help-subdev", no_argument, 0, OptHelpSubDev},
- {"help-selection", no_argument, 0, OptHelpSelection},
- {"help-misc", no_argument, 0, OptHelpMisc},
- {"help-streaming", no_argument, 0, OptHelpStreaming},
- {"help-edid", no_argument, 0, OptHelpEdid},
- {"help-all", no_argument, 0, OptHelpAll},
+ {"list-audio-inputs", no_argument, nullptr, OptListAudioInputs},
+ {"list-audio-outputs", no_argument, nullptr, OptListAudioOutputs},
+ {"all", no_argument, nullptr, OptAll},
+ {"device", required_argument, nullptr, OptSetDevice},
+ {"out-device", required_argument, nullptr, OptSetOutDevice},
+ {"export-device", required_argument, nullptr, OptSetExportDevice},
+ {"media-bus-info", required_argument, nullptr, OptMediaBusInfo},
+ {"get-fmt-video", no_argument, nullptr, OptGetVideoFormat},
+ {"set-fmt-video", required_argument, nullptr, OptSetVideoFormat},
+ {"try-fmt-video", required_argument, nullptr, OptTryVideoFormat},
+ {"get-fmt-video-out", no_argument, nullptr, OptGetVideoOutFormat},
+ {"set-fmt-video-out", required_argument, nullptr, OptSetVideoOutFormat},
+ {"try-fmt-video-out", required_argument, nullptr, OptTryVideoOutFormat},
+ {"help", no_argument, nullptr, OptHelp},
+ {"help-tuner", no_argument, nullptr, OptHelpTuner},
+ {"help-io", no_argument, nullptr, OptHelpIO},
+ {"help-stds", no_argument, nullptr, OptHelpStds},
+ {"help-vidcap", no_argument, nullptr, OptHelpVidCap},
+ {"help-vidout", no_argument, nullptr, OptHelpVidOut},
+ {"help-overlay", no_argument, nullptr, OptHelpOverlay},
+ {"help-vbi", no_argument, nullptr, OptHelpVbi},
+ {"help-sdr", no_argument, nullptr, OptHelpSdr},
+ {"help-meta", no_argument, nullptr, OptHelpMeta},
+ {"help-subdev", no_argument, nullptr, OptHelpSubDev},
+ {"help-selection", no_argument, nullptr, OptHelpSelection},
+ {"help-misc", no_argument, nullptr, OptHelpMisc},
+ {"help-streaming", no_argument, nullptr, OptHelpStreaming},
+ {"help-edid", no_argument, nullptr, OptHelpEdid},
+ {"help-all", no_argument, nullptr, OptHelpAll},
#ifndef NO_LIBV4L2
- {"wrapper", no_argument, 0, OptUseWrapper},
+ {"wrapper", no_argument, nullptr, OptUseWrapper},
#endif
- {"concise", no_argument, 0, OptConcise},
- {"get-output", no_argument, 0, OptGetOutput},
- {"set-output", required_argument, 0, OptSetOutput},
- {"list-outputs", no_argument, 0, OptListOutputs},
- {"list-inputs", no_argument, 0, OptListInputs},
- {"get-input", no_argument, 0, OptGetInput},
- {"set-input", required_argument, 0, OptSetInput},
- {"get-audio-input", no_argument, 0, OptGetAudioInput},
- {"set-audio-input", required_argument, 0, OptSetAudioInput},
- {"get-audio-output", no_argument, 0, OptGetAudioOutput},
- {"set-audio-output", required_argument, 0, OptSetAudioOutput},
- {"get-freq", no_argument, 0, OptGetFreq},
- {"set-freq", required_argument, 0, OptSetFreq},
- {"list-standards", no_argument, 0, OptListStandards},
- {"list-formats", optional_argument, 0, OptListFormats},
- {"list-formats-ext", optional_argument, 0, OptListFormatsExt},
- {"list-fields", no_argument, 0, OptListFields},
- {"list-framesizes", required_argument, 0, OptListFrameSizes},
- {"list-frameintervals", required_argument, 0, OptListFrameIntervals},
- {"list-formats-overlay", no_argument, 0, OptListOverlayFormats},
- {"list-formats-sdr", no_argument, 0, OptListSdrFormats},
- {"list-formats-sdr-out", no_argument, 0, OptListSdrOutFormats},
- {"list-formats-out", optional_argument, 0, OptListOutFormats},
- {"list-formats-out-ext", optional_argument, 0, OptListOutFormatsExt},
- {"list-formats-meta", optional_argument, 0, OptListMetaFormats},
- {"list-formats-meta-out", optional_argument, 0, OptListMetaOutFormats},
- {"list-subdev-mbus-codes", optional_argument, 0, OptListSubDevMBusCodes},
- {"list-subdev-framesizes", required_argument, 0, OptListSubDevFrameSizes},
- {"list-subdev-frameintervals", required_argument, 0, OptListSubDevFrameIntervals},
- {"list-fields-out", no_argument, 0, OptListOutFields},
- {"clear-clips", no_argument, 0, OptClearClips},
- {"clear-bitmap", no_argument, 0, OptClearBitmap},
- {"add-clip", required_argument, 0, OptAddClip},
- {"add-bitmap", required_argument, 0, OptAddBitmap},
- {"find-fb", no_argument, 0, OptFindFb},
- {"subset", required_argument, 0, OptSubset},
- {"get-standard", no_argument, 0, OptGetStandard},
- {"set-standard", required_argument, 0, OptSetStandard},
- {"get-detected-standard", no_argument, 0, OptQueryStandard},
- {"get-parm", no_argument, 0, OptGetParm},
- {"set-parm", required_argument, 0, OptSetParm},
- {"get-output-parm", no_argument, 0, OptGetOutputParm},
- {"set-output-parm", required_argument, 0, OptSetOutputParm},
- {"info", no_argument, 0, OptGetDriverInfo},
- {"list-ctrls", no_argument, 0, OptListCtrls},
- {"list-ctrls-menus", no_argument, 0, OptListCtrlsMenus},
- {"set-ctrl", required_argument, 0, OptSetCtrl},
- {"get-ctrl", required_argument, 0, OptGetCtrl},
- {"get-tuner", no_argument, 0, OptGetTuner},
- {"set-tuner", required_argument, 0, OptSetTuner},
- {"list-freq-bands", no_argument, 0, OptListFreqBands},
- {"silent", no_argument, 0, OptSilent},
- {"verbose", no_argument, 0, OptVerbose},
- {"log-status", no_argument, 0, OptLogStatus},
- {"get-fmt-overlay", no_argument, 0, OptGetOverlayFormat},
- {"set-fmt-overlay", optional_argument, 0, OptSetOverlayFormat},
- {"try-fmt-overlay", optional_argument, 0, OptTryOverlayFormat},
- {"get-fmt-sliced-vbi", no_argument, 0, OptGetSlicedVbiFormat},
- {"set-fmt-sliced-vbi", required_argument, 0, OptSetSlicedVbiFormat},
- {"try-fmt-sliced-vbi", required_argument, 0, OptTrySlicedVbiFormat},
- {"get-fmt-sliced-vbi-out", no_argument, 0, OptGetSlicedVbiOutFormat},
- {"set-fmt-sliced-vbi-out", required_argument, 0, OptSetSlicedVbiOutFormat},
- {"try-fmt-sliced-vbi-out", required_argument, 0, OptTrySlicedVbiOutFormat},
- {"get-fmt-vbi", no_argument, 0, OptGetVbiFormat},
- {"set-fmt-vbi", required_argument, 0, OptSetVbiFormat},
- {"try-fmt-vbi", required_argument, 0, OptTryVbiFormat},
- {"get-fmt-vbi-out", no_argument, 0, OptGetVbiOutFormat},
- {"set-fmt-vbi-out", required_argument, 0, OptSetVbiOutFormat},
- {"try-fmt-vbi-out", required_argument, 0, OptTryVbiOutFormat},
- {"get-fmt-sdr", no_argument, 0, OptGetSdrFormat},
- {"set-fmt-sdr", required_argument, 0, OptSetSdrFormat},
- {"try-fmt-sdr", required_argument, 0, OptTrySdrFormat},
- {"get-fmt-sdr-out", no_argument, 0, OptGetSdrOutFormat},
- {"set-fmt-sdr-out", required_argument, 0, OptSetSdrOutFormat},
- {"try-fmt-sdr-out", required_argument, 0, OptTrySdrOutFormat},
- {"get-fmt-meta", no_argument, 0, OptGetMetaFormat},
- {"set-fmt-meta", required_argument, 0, OptSetMetaFormat},
- {"try-fmt-meta", required_argument, 0, OptTryMetaFormat},
- {"get-fmt-meta-out", no_argument, 0, OptGetMetaOutFormat},
- {"set-fmt-meta-out", required_argument, 0, OptSetMetaOutFormat},
- {"try-fmt-meta-out", required_argument, 0, OptTryMetaOutFormat},
- {"get-subdev-fmt", optional_argument, 0, OptGetSubDevFormat},
- {"set-subdev-fmt", required_argument, 0, OptSetSubDevFormat},
- {"try-subdev-fmt", required_argument, 0, OptTrySubDevFormat},
- {"get-sliced-vbi-cap", no_argument, 0, OptGetSlicedVbiCap},
- {"get-sliced-vbi-out-cap", no_argument, 0, OptGetSlicedVbiOutCap},
- {"get-fbuf", no_argument, 0, OptGetFBuf},
- {"set-fbuf", required_argument, 0, OptSetFBuf},
- {"get-cropcap", no_argument, 0, OptGetCropCap},
- {"get-crop", no_argument, 0, OptGetCrop},
- {"set-crop", required_argument, 0, OptSetCrop},
- {"get-cropcap-output", no_argument, 0, OptGetOutputCropCap},
- {"get-crop-output", no_argument, 0, OptGetOutputCrop},
- {"set-crop-output", required_argument, 0, OptSetOutputCrop},
- {"get-cropcap-overlay", no_argument, 0, OptGetOverlayCropCap},
- {"get-crop-overlay", no_argument, 0, OptGetOverlayCrop},
- {"set-crop-overlay", required_argument, 0, OptSetOverlayCrop},
- {"get-cropcap-output-overlay", no_argument, 0, OptGetOutputOverlayCropCap},
- {"get-crop-output-overlay", no_argument, 0, OptGetOutputOverlayCrop},
- {"set-crop-output-overlay", required_argument, 0, OptSetOutputOverlayCrop},
- {"get-selection", required_argument, 0, OptGetSelection},
- {"set-selection", required_argument, 0, OptSetSelection},
- {"get-selection-output", required_argument, 0, OptGetOutputSelection},
- {"set-selection-output", required_argument, 0, OptSetOutputSelection},
- {"get-subdev-selection", required_argument, 0, OptGetSubDevSelection},
- {"set-subdev-selection", required_argument, 0, OptSetSubDevSelection},
- {"try-subdev-selection", required_argument, 0, OptTrySubDevSelection},
- {"get-subdev-fps", optional_argument, 0, OptGetSubDevFPS},
- {"set-subdev-fps", required_argument, 0, OptSetSubDevFPS},
- {"get-jpeg-comp", no_argument, 0, OptGetJpegComp},
- {"set-jpeg-comp", required_argument, 0, OptSetJpegComp},
- {"get-modulator", no_argument, 0, OptGetModulator},
- {"set-modulator", required_argument, 0, OptSetModulator},
- {"get-priority", no_argument, 0, OptGetPriority},
- {"set-priority", required_argument, 0, OptSetPriority},
- {"wait-for-event", required_argument, 0, OptWaitForEvent},
- {"poll-for-event", required_argument, 0, OptPollForEvent},
- {"epoll-for-event", required_argument, 0, OptEPollForEvent},
- {"overlay", required_argument, 0, OptOverlay},
- {"sleep", required_argument, 0, OptSleep},
- {"list-devices", no_argument, 0, OptListDevices},
- {"list-dv-timings", optional_argument, 0, OptListDvTimings},
- {"query-dv-timings", no_argument, 0, OptQueryDvTimings},
- {"get-dv-timings", no_argument, 0, OptGetDvTimings},
- {"set-dv-bt-timings", required_argument, 0, OptSetDvBtTimings},
- {"get-dv-timings-cap", optional_argument, 0, OptGetDvTimingsCap},
- {"freq-seek", required_argument, 0, OptFreqSeek},
- {"encoder-cmd", required_argument, 0, OptEncoderCmd},
- {"try-encoder-cmd", required_argument, 0, OptTryEncoderCmd},
- {"decoder-cmd", required_argument, 0, OptDecoderCmd},
- {"try-decoder-cmd", required_argument, 0, OptTryDecoderCmd},
- {"set-edid", required_argument, 0, OptSetEdid},
- {"clear-edid", optional_argument, 0, OptClearEdid},
- {"get-edid", optional_argument, 0, OptGetEdid},
- {"info-edid", optional_argument, 0, OptInfoEdid},
- {"fix-edid-checksums", no_argument, 0, OptFixEdidChecksums},
- {"tuner-index", required_argument, 0, OptTunerIndex},
- {"list-buffers", no_argument, 0, OptListBuffers},
- {"list-buffers-out", no_argument, 0, OptListBuffersOut},
- {"list-buffers-vbi", no_argument, 0, OptListBuffersVbi},
- {"list-buffers-sliced-vbi", no_argument, 0, OptListBuffersSlicedVbi},
- {"list-buffers-vbi-out", no_argument, 0, OptListBuffersVbiOut},
- {"list-buffers-sliced-vbi-out", no_argument, 0, OptListBuffersSlicedVbiOut},
- {"list-buffers-sdr", no_argument, 0, OptListBuffersSdr},
- {"list-buffers-sdr-out", no_argument, 0, OptListBuffersSdrOut},
- {"list-buffers-meta", no_argument, 0, OptListBuffersMeta},
- {"list-buffers-meta-out", no_argument, 0, OptListBuffersMetaOut},
- {"stream-count", required_argument, 0, OptStreamCount},
- {"stream-skip", required_argument, 0, OptStreamSkip},
- {"stream-loop", no_argument, 0, OptStreamLoop},
- {"stream-sleep", required_argument, 0, OptStreamSleep},
- {"stream-poll", no_argument, 0, OptStreamPoll},
- {"stream-no-query", no_argument, 0, OptStreamNoQuery},
+ {"concise", no_argument, nullptr, OptConcise},
+ {"get-output", no_argument, nullptr, OptGetOutput},
+ {"set-output", required_argument, nullptr, OptSetOutput},
+ {"list-outputs", no_argument, nullptr, OptListOutputs},
+ {"list-inputs", no_argument, nullptr, OptListInputs},
+ {"get-input", no_argument, nullptr, OptGetInput},
+ {"set-input", required_argument, nullptr, OptSetInput},
+ {"get-audio-input", no_argument, nullptr, OptGetAudioInput},
+ {"set-audio-input", required_argument, nullptr, OptSetAudioInput},
+ {"get-audio-output", no_argument, nullptr, OptGetAudioOutput},
+ {"set-audio-output", required_argument, nullptr, OptSetAudioOutput},
+ {"get-freq", no_argument, nullptr, OptGetFreq},
+ {"set-freq", required_argument, nullptr, OptSetFreq},
+ {"list-standards", no_argument, nullptr, OptListStandards},
+ {"list-formats", optional_argument, nullptr, OptListFormats},
+ {"list-formats-ext", optional_argument, nullptr, OptListFormatsExt},
+ {"list-fields", no_argument, nullptr, OptListFields},
+ {"list-framesizes", required_argument, nullptr, OptListFrameSizes},
+ {"list-frameintervals", required_argument, nullptr, OptListFrameIntervals},
+ {"list-formats-overlay", no_argument, nullptr, OptListOverlayFormats},
+ {"list-formats-sdr", no_argument, nullptr, OptListSdrFormats},
+ {"list-formats-sdr-out", no_argument, nullptr, OptListSdrOutFormats},
+ {"list-formats-out", optional_argument, nullptr, OptListOutFormats},
+ {"list-formats-out-ext", optional_argument, nullptr, OptListOutFormatsExt},
+ {"list-formats-meta", optional_argument, nullptr, OptListMetaFormats},
+ {"list-formats-meta-out", optional_argument, nullptr, OptListMetaOutFormats},
+ {"list-subdev-mbus-codes", optional_argument, nullptr, OptListSubDevMBusCodes},
+ {"list-subdev-framesizes", required_argument, nullptr, OptListSubDevFrameSizes},
+ {"list-subdev-frameintervals", required_argument, nullptr, OptListSubDevFrameIntervals},
+ {"list-fields-out", no_argument, nullptr, OptListOutFields},
+ {"clear-clips", no_argument, nullptr, OptClearClips},
+ {"clear-bitmap", no_argument, nullptr, OptClearBitmap},
+ {"add-clip", required_argument, nullptr, OptAddClip},
+ {"add-bitmap", required_argument, nullptr, OptAddBitmap},
+ {"find-fb", no_argument, nullptr, OptFindFb},
+ {"subset", required_argument, nullptr, OptSubset},
+ {"get-standard", no_argument, nullptr, OptGetStandard},
+ {"set-standard", required_argument, nullptr, OptSetStandard},
+ {"get-detected-standard", no_argument, nullptr, OptQueryStandard},
+ {"get-parm", no_argument, nullptr, OptGetParm},
+ {"set-parm", required_argument, nullptr, OptSetParm},
+ {"get-output-parm", no_argument, nullptr, OptGetOutputParm},
+ {"set-output-parm", required_argument, nullptr, OptSetOutputParm},
+ {"info", no_argument, nullptr, OptGetDriverInfo},
+ {"list-ctrls", no_argument, nullptr, OptListCtrls},
+ {"list-ctrls-menus", no_argument, nullptr, OptListCtrlsMenus},
+ {"set-ctrl", required_argument, nullptr, OptSetCtrl},
+ {"get-ctrl", required_argument, nullptr, OptGetCtrl},
+ {"get-tuner", no_argument, nullptr, OptGetTuner},
+ {"set-tuner", required_argument, nullptr, OptSetTuner},
+ {"list-freq-bands", no_argument, nullptr, OptListFreqBands},
+ {"silent", no_argument, nullptr, OptSilent},
+ {"verbose", no_argument, nullptr, OptVerbose},
+ {"log-status", no_argument, nullptr, OptLogStatus},
+ {"get-fmt-overlay", no_argument, nullptr, OptGetOverlayFormat},
+ {"set-fmt-overlay", optional_argument, nullptr, OptSetOverlayFormat},
+ {"try-fmt-overlay", optional_argument, nullptr, OptTryOverlayFormat},
+ {"get-fmt-sliced-vbi", no_argument, nullptr, OptGetSlicedVbiFormat},
+ {"set-fmt-sliced-vbi", required_argument, nullptr, OptSetSlicedVbiFormat},
+ {"try-fmt-sliced-vbi", required_argument, nullptr, OptTrySlicedVbiFormat},
+ {"get-fmt-sliced-vbi-out", no_argument, nullptr, OptGetSlicedVbiOutFormat},
+ {"set-fmt-sliced-vbi-out", required_argument, nullptr, OptSetSlicedVbiOutFormat},
+ {"try-fmt-sliced-vbi-out", required_argument, nullptr, OptTrySlicedVbiOutFormat},
+ {"get-fmt-vbi", no_argument, nullptr, OptGetVbiFormat},
+ {"set-fmt-vbi", required_argument, nullptr, OptSetVbiFormat},
+ {"try-fmt-vbi", required_argument, nullptr, OptTryVbiFormat},
+ {"get-fmt-vbi-out", no_argument, nullptr, OptGetVbiOutFormat},
+ {"set-fmt-vbi-out", required_argument, nullptr, OptSetVbiOutFormat},
+ {"try-fmt-vbi-out", required_argument, nullptr, OptTryVbiOutFormat},
+ {"get-fmt-sdr", no_argument, nullptr, OptGetSdrFormat},
+ {"set-fmt-sdr", required_argument, nullptr, OptSetSdrFormat},
+ {"try-fmt-sdr", required_argument, nullptr, OptTrySdrFormat},
+ {"get-fmt-sdr-out", no_argument, nullptr, OptGetSdrOutFormat},
+ {"set-fmt-sdr-out", required_argument, nullptr, OptSetSdrOutFormat},
+ {"try-fmt-sdr-out", required_argument, nullptr, OptTrySdrOutFormat},
+ {"get-fmt-meta", no_argument, nullptr, OptGetMetaFormat},
+ {"set-fmt-meta", required_argument, nullptr, OptSetMetaFormat},
+ {"try-fmt-meta", required_argument, nullptr, OptTryMetaFormat},
+ {"get-fmt-meta-out", no_argument, nullptr, OptGetMetaOutFormat},
+ {"set-fmt-meta-out", required_argument, nullptr, OptSetMetaOutFormat},
+ {"try-fmt-meta-out", required_argument, nullptr, OptTryMetaOutFormat},
+ {"get-subdev-fmt", optional_argument, nullptr, OptGetSubDevFormat},
+ {"set-subdev-fmt", required_argument, nullptr, OptSetSubDevFormat},
+ {"try-subdev-fmt", required_argument, nullptr, OptTrySubDevFormat},
+ {"get-sliced-vbi-cap", no_argument, nullptr, OptGetSlicedVbiCap},
+ {"get-sliced-vbi-out-cap", no_argument, nullptr, OptGetSlicedVbiOutCap},
+ {"get-fbuf", no_argument, nullptr, OptGetFBuf},
+ {"set-fbuf", required_argument, nullptr, OptSetFBuf},
+ {"get-cropcap", no_argument, nullptr, OptGetCropCap},
+ {"get-crop", no_argument, nullptr, OptGetCrop},
+ {"set-crop", required_argument, nullptr, OptSetCrop},
+ {"get-cropcap-output", no_argument, nullptr, OptGetOutputCropCap},
+ {"get-crop-output", no_argument, nullptr, OptGetOutputCrop},
+ {"set-crop-output", required_argument, nullptr, OptSetOutputCrop},
+ {"get-cropcap-overlay", no_argument, nullptr, OptGetOverlayCropCap},
+ {"get-crop-overlay", no_argument, nullptr, OptGetOverlayCrop},
+ {"set-crop-overlay", required_argument, nullptr, OptSetOverlayCrop},
+ {"get-cropcap-output-overlay", no_argument, nullptr, OptGetOutputOverlayCropCap},
+ {"get-crop-output-overlay", no_argument, nullptr, OptGetOutputOverlayCrop},
+ {"set-crop-output-overlay", required_argument, nullptr, OptSetOutputOverlayCrop},
+ {"get-selection", required_argument, nullptr, OptGetSelection},
+ {"set-selection", required_argument, nullptr, OptSetSelection},
+ {"get-selection-output", required_argument, nullptr, OptGetOutputSelection},
+ {"set-selection-output", required_argument, nullptr, OptSetOutputSelection},
+ {"get-subdev-selection", required_argument, nullptr, OptGetSubDevSelection},
+ {"set-subdev-selection", required_argument, nullptr, OptSetSubDevSelection},
+ {"try-subdev-selection", required_argument, nullptr, OptTrySubDevSelection},
+ {"get-subdev-fps", optional_argument, nullptr, OptGetSubDevFPS},
+ {"set-subdev-fps", required_argument, nullptr, OptSetSubDevFPS},
+ {"get-jpeg-comp", no_argument, nullptr, OptGetJpegComp},
+ {"set-jpeg-comp", required_argument, nullptr, OptSetJpegComp},
+ {"get-modulator", no_argument, nullptr, OptGetModulator},
+ {"set-modulator", required_argument, nullptr, OptSetModulator},
+ {"get-priority", no_argument, nullptr, OptGetPriority},
+ {"set-priority", required_argument, nullptr, OptSetPriority},
+ {"wait-for-event", required_argument, nullptr, OptWaitForEvent},
+ {"poll-for-event", required_argument, nullptr, OptPollForEvent},
+ {"epoll-for-event", required_argument, nullptr, OptEPollForEvent},
+ {"overlay", required_argument, nullptr, OptOverlay},
+ {"sleep", required_argument, nullptr, OptSleep},
+ {"list-devices", no_argument, nullptr, OptListDevices},
+ {"list-dv-timings", optional_argument, nullptr, OptListDvTimings},
+ {"query-dv-timings", no_argument, nullptr, OptQueryDvTimings},
+ {"get-dv-timings", no_argument, nullptr, OptGetDvTimings},
+ {"set-dv-bt-timings", required_argument, nullptr, OptSetDvBtTimings},
+ {"get-dv-timings-cap", optional_argument, nullptr, OptGetDvTimingsCap},
+ {"freq-seek", required_argument, nullptr, OptFreqSeek},
+ {"encoder-cmd", required_argument, nullptr, OptEncoderCmd},
+ {"try-encoder-cmd", required_argument, nullptr, OptTryEncoderCmd},
+ {"decoder-cmd", required_argument, nullptr, OptDecoderCmd},
+ {"try-decoder-cmd", required_argument, nullptr, OptTryDecoderCmd},
+ {"set-edid", required_argument, nullptr, OptSetEdid},
+ {"clear-edid", optional_argument, nullptr, OptClearEdid},
+ {"get-edid", optional_argument, nullptr, OptGetEdid},
+ {"info-edid", optional_argument, nullptr, OptInfoEdid},
+ {"fix-edid-checksums", no_argument, nullptr, OptFixEdidChecksums},
+ {"tuner-index", required_argument, nullptr, OptTunerIndex},
+ {"list-buffers", no_argument, nullptr, OptListBuffers},
+ {"list-buffers-out", no_argument, nullptr, OptListBuffersOut},
+ {"list-buffers-vbi", no_argument, nullptr, OptListBuffersVbi},
+ {"list-buffers-sliced-vbi", no_argument, nullptr, OptListBuffersSlicedVbi},
+ {"list-buffers-vbi-out", no_argument, nullptr, OptListBuffersVbiOut},
+ {"list-buffers-sliced-vbi-out", no_argument, nullptr, OptListBuffersSlicedVbiOut},
+ {"list-buffers-sdr", no_argument, nullptr, OptListBuffersSdr},
+ {"list-buffers-sdr-out", no_argument, nullptr, OptListBuffersSdrOut},
+ {"list-buffers-meta", no_argument, nullptr, OptListBuffersMeta},
+ {"list-buffers-meta-out", no_argument, nullptr, OptListBuffersMetaOut},
+ {"stream-count", required_argument, nullptr, OptStreamCount},
+ {"stream-skip", required_argument, nullptr, OptStreamSkip},
+ {"stream-loop", no_argument, nullptr, OptStreamLoop},
+ {"stream-sleep", required_argument, nullptr, OptStreamSleep},
+ {"stream-poll", no_argument, nullptr, OptStreamPoll},
+ {"stream-no-query", no_argument, nullptr, OptStreamNoQuery},
#ifndef NO_STREAM_TO
- {"stream-to", required_argument, 0, OptStreamTo},
- {"stream-to-hdr", required_argument, 0, OptStreamToHdr},
- {"stream-lossless", no_argument, 0, OptStreamLossless},
- {"stream-to-host", required_argument, 0, OptStreamToHost},
+ {"stream-to", required_argument, nullptr, OptStreamTo},
+ {"stream-to-hdr", required_argument, nullptr, OptStreamToHdr},
+ {"stream-lossless", no_argument, nullptr, OptStreamLossless},
+ {"stream-to-host", required_argument, nullptr, OptStreamToHost},
#endif
- {"stream-buf-caps", no_argument, 0, OptStreamBufCaps},
- {"stream-mmap", optional_argument, 0, OptStreamMmap},
- {"stream-user", optional_argument, 0, OptStreamUser},
- {"stream-dmabuf", no_argument, 0, OptStreamDmaBuf},
- {"stream-from", required_argument, 0, OptStreamFrom},
- {"stream-from-hdr", required_argument, 0, OptStreamFromHdr},
- {"stream-from-host", required_argument, 0, OptStreamFromHost},
- {"stream-out-pattern", required_argument, 0, OptStreamOutPattern},
- {"stream-out-square", no_argument, 0, OptStreamOutSquare},
- {"stream-out-border", no_argument, 0, OptStreamOutBorder},
- {"stream-out-sav", no_argument, 0, OptStreamOutInsertSAV},
- {"stream-out-eav", no_argument, 0, OptStreamOutInsertEAV},
- {"stream-out-pixel-aspect", required_argument, 0, OptStreamOutPixelAspect},
- {"stream-out-video-aspect", required_argument, 0, OptStreamOutVideoAspect},
- {"stream-out-alpha", required_argument, 0, OptStreamOutAlphaComponent},
- {"stream-out-alpha-red-only", no_argument, 0, OptStreamOutAlphaRedOnly},
- {"stream-out-rgb-lim-range", required_argument, 0, OptStreamOutRGBLimitedRange},
- {"stream-out-hor-speed", required_argument, 0, OptStreamOutHorSpeed},
- {"stream-out-vert-speed", required_argument, 0, OptStreamOutVertSpeed},
- {"stream-out-perc-fill", required_argument, 0, OptStreamOutPercFill},
- {"stream-out-buf-caps", no_argument, 0, OptStreamOutBufCaps},
- {"stream-out-mmap", optional_argument, 0, OptStreamOutMmap},
- {"stream-out-user", optional_argument, 0, OptStreamOutUser},
- {"stream-out-dmabuf", no_argument, 0, OptStreamOutDmaBuf},
- {"list-patterns", no_argument, 0, OptListPatterns},
- {"version", no_argument, 0, OptVersion},
- {0, 0, 0, 0}
+ {"stream-buf-caps", no_argument, nullptr, OptStreamBufCaps},
+ {"stream-mmap", optional_argument, nullptr, OptStreamMmap},
+ {"stream-user", optional_argument, nullptr, OptStreamUser},
+ {"stream-dmabuf", no_argument, nullptr, OptStreamDmaBuf},
+ {"stream-from", required_argument, nullptr, OptStreamFrom},
+ {"stream-from-hdr", required_argument, nullptr, OptStreamFromHdr},
+ {"stream-from-host", required_argument, nullptr, OptStreamFromHost},
+ {"stream-out-pattern", required_argument, nullptr, OptStreamOutPattern},
+ {"stream-out-square", no_argument, nullptr, OptStreamOutSquare},
+ {"stream-out-border", no_argument, nullptr, OptStreamOutBorder},
+ {"stream-out-sav", no_argument, nullptr, OptStreamOutInsertSAV},
+ {"stream-out-eav", no_argument, nullptr, OptStreamOutInsertEAV},
+ {"stream-out-pixel-aspect", required_argument, nullptr, OptStreamOutPixelAspect},
+ {"stream-out-video-aspect", required_argument, nullptr, OptStreamOutVideoAspect},
+ {"stream-out-alpha", required_argument, nullptr, OptStreamOutAlphaComponent},
+ {"stream-out-alpha-red-only", no_argument, nullptr, OptStreamOutAlphaRedOnly},
+ {"stream-out-rgb-lim-range", required_argument, nullptr, OptStreamOutRGBLimitedRange},
+ {"stream-out-hor-speed", required_argument, nullptr, OptStreamOutHorSpeed},
+ {"stream-out-vert-speed", required_argument, nullptr, OptStreamOutVertSpeed},
+ {"stream-out-perc-fill", required_argument, nullptr, OptStreamOutPercFill},
+ {"stream-out-buf-caps", no_argument, nullptr, OptStreamOutBufCaps},
+ {"stream-out-mmap", optional_argument, nullptr, OptStreamOutMmap},
+ {"stream-out-user", optional_argument, nullptr, OptStreamOutUser},
+ {"stream-out-dmabuf", no_argument, nullptr, OptStreamOutDmaBuf},
+ {"list-patterns", no_argument, nullptr, OptListPatterns},
+ {"version", no_argument, nullptr, OptVersion},
+ {nullptr, 0, nullptr, 0}
};
static void usage_all()
@@ -667,7 +667,7 @@ int parse_subopt(char **subs, const char * const *subopts, char **value)
fprintf(stderr, "Invalid suboptions specified\n");
return -1;
}
- if (*value == NULL) {
+ if (*value == nullptr) {
fprintf(stderr, "No value given to suboption <%s>\n",
subopts[opt]);
return -1;
@@ -775,16 +775,16 @@ int parse_fmt(char *optarg, __u32 &width, __u32 &height, __u32 &pixelformat,
"quantization",
"xfer",
"sizeimage",
- NULL
+ nullptr
};
switch (parse_subopt(&subs, subopts, &value)) {
case 0:
- width = strtoul(value, 0L, 0);
+ width = strtoul(value, nullptr, 0);
fmts |= FmtWidth;
break;
case 1:
- height = strtoul(value, 0L, 0);
+ height = strtoul(value, nullptr, 0);
fmts |= FmtHeight;
break;
case 2:
@@ -796,7 +796,7 @@ int parse_fmt(char *optarg, __u32 &width, __u32 &height, __u32 &pixelformat,
if (be_pixfmt)
pixelformat |= 1U << 31;
} else if (isdigit(value[0])) {
- pixelformat = strtol(value, 0L, 0);
+ pixelformat = strtol(value, nullptr, 0);
} else {
fprintf(stderr, "The pixelformat '%s' is invalid\n", value);
std::exit(EXIT_FAILURE);
@@ -823,7 +823,7 @@ int parse_fmt(char *optarg, __u32 &width, __u32 &height, __u32 &pixelformat,
fmts |= FmtYCbCr;
break;
case 7:
- bytesperline[bpl_index] = strtoul(value, 0L, 0);
+ bytesperline[bpl_index] = strtoul(value, nullptr, 0);
if (bytesperline[bpl_index] > 0xffff) {
fprintf(stderr, "bytesperline can't be more than 65535\n");
bytesperline[bpl_index] = 0;
@@ -844,7 +844,7 @@ int parse_fmt(char *optarg, __u32 &width, __u32 &height, __u32 &pixelformat,
fmts |= FmtXferFunc;
break;
case 11:
- sizeimage[sizeimage_index] = strtoul(value, 0L, 0);
+ sizeimage[sizeimage_index] = strtoul(value, nullptr, 0);
sizeimage_index++;
fmts |= FmtSizeImage;
break;
@@ -931,7 +931,7 @@ static __u32 parse_event(const char *e, const char **name)
*name = "0";
if (isdigit(e[0])) {
- event = strtoul(e, 0L, 0);
+ event = strtoul(e, nullptr, 0);
if (event == V4L2_EVENT_CTRL) {
fprintf(stderr, "Missing control name for ctrl event, use ctrl=<name>\n");
misc_usage();
@@ -1005,7 +1005,7 @@ static int open_media_bus_info(const std::string &bus_info)
struct dirent *ep;
dp = opendir("/dev");
- if (dp == NULL)
+ if (dp == nullptr)
return -1;
while ((ep = readdir(dp))) {
@@ -1065,7 +1065,7 @@ static const char *make_devname(const char *device, const char *devname,
goto err;
if (device[0] == '0' && device[1] == 'x')
- iface_id = strtoul(device, NULL, 16);
+ iface_id = strtoul(device, nullptr, 16);
if (!iface_id) {
for (i = 0; i < topology.num_entities; i++)
@@ -1118,15 +1118,15 @@ int main(int argc, char **argv)
/* command args */
int ch;
const char *device = "/dev/video0"; /* -d device */
- const char *out_device = NULL;
- const char *export_device = NULL;
+ const char *out_device = nullptr;
+ const char *export_device = nullptr;
struct v4l2_capability vcap; /* list_cap */
__u32 wait_for_event = 0; /* wait for this event */
- const char *wait_event_id = NULL;
+ const char *wait_event_id = nullptr;
__u32 poll_for_event = 0; /* poll for this event */
- const char *poll_event_id = NULL;
+ const char *poll_event_id = nullptr;
__u32 epoll_for_event = 0; /* epoll for this event */
- const char *epoll_event_id = NULL;
+ const char *epoll_event_id = nullptr;
unsigned secs = 0;
char short_options[26 * 2 * 3 + 1];
int idx = 0;
@@ -1247,7 +1247,7 @@ int main(int argc, char **argv)
return 1;
break;
case OptSleep:
- secs = strtoul(optarg, 0L, 0);
+ secs = strtoul(optarg, nullptr, 0);
break;
case OptVersion:
print_version();
@@ -1515,7 +1515,7 @@ int main(int argc, char **argv)
if (wait_for_event == V4L2_EVENT_CTRL)
sub.id = common_find_ctrl_id(wait_event_id);
else if (wait_for_event == V4L2_EVENT_SOURCE_CHANGE)
- sub.id = strtoul(wait_event_id, 0L, 0);
+ sub.id = strtoul(wait_event_id, nullptr, 0);
if (!doioctl(fd, VIDIOC_SUBSCRIBE_EVENT, &sub))
if (!doioctl(fd, VIDIOC_DQEVENT, &ev))
print_event(&ev);
@@ -1531,7 +1531,7 @@ int main(int argc, char **argv)
if (poll_for_event == V4L2_EVENT_CTRL)
sub.id = common_find_ctrl_id(poll_event_id);
else if (poll_for_event == V4L2_EVENT_SOURCE_CHANGE)
- sub.id = strtoul(poll_event_id, 0L, 0);
+ sub.id = strtoul(poll_event_id, nullptr, 0);
if (!doioctl(fd, VIDIOC_SUBSCRIBE_EVENT, &sub)) {
fd_set fds;
__u32 seq = 0;
@@ -1542,7 +1542,7 @@ int main(int argc, char **argv)
FD_ZERO(&fds);
FD_SET(fd, &fds);
- res = select(fd + 1, NULL, NULL, &fds, NULL);
+ res = select(fd + 1, nullptr, nullptr, &fds, nullptr);
if (res <= 0)
break;
if (!doioctl(fd, VIDIOC_DQEVENT, &ev)) {
@@ -1572,7 +1572,7 @@ int main(int argc, char **argv)
if (epoll_for_event == V4L2_EVENT_CTRL)
sub.id = common_find_ctrl_id(epoll_event_id);
else if (epoll_for_event == V4L2_EVENT_SOURCE_CHANGE)
- sub.id = strtoul(epoll_event_id, 0L, 0);
+ sub.id = strtoul(epoll_event_id, nullptr, 0);
if (!doioctl(fd, VIDIOC_SUBSCRIBE_EVENT, &sub)) {
__u32 seq = 0;
@@ -64,7 +64,7 @@ static const struct board_list boards[] = {
sizeof(AC97_PREFIX) - 1,
ac97_regs,
ARRAY_SIZE(ac97_regs),
- NULL,
+ nullptr,
0,
},
{ /* From v4l2-dbg-bttv.h */
@@ -80,7 +80,7 @@ static const struct board_list boards[] = {
sizeof(SAA7134_PREFIX) - 1,
saa7134_regs,
ARRAY_SIZE(saa7134_regs),
- NULL,
+ nullptr,
0,
},
{ /* From v4l2-dbg-em28xx.h */
@@ -96,7 +96,7 @@ static const struct board_list boards[] = {
sizeof(TVP5150_PREFIX) - 1,
tvp5150_regs,
ARRAY_SIZE(tvp5150_regs),
- NULL,
+ nullptr,
0,
},
{ /* From v4l2-dbg-micron.h */
@@ -104,7 +104,7 @@ static const struct board_list boards[] = {
sizeof(MT9V011_PREFIX) - 1,
mt9v011_regs,
ARRAY_SIZE(mt9v011_regs),
- NULL,
+ nullptr,
0,
},
};
@@ -138,19 +138,19 @@ static char options[OptLast];
static unsigned capabilities;
static struct option long_options[] = {
- {"device", required_argument, 0, OptSetDevice},
- {"help", no_argument, 0, OptHelp},
- {"list-registers", optional_argument, 0, OptListRegisters},
- {"get-register", required_argument, 0, OptGetRegister},
- {"set-register", required_argument, 0, OptSetRegister},
- {"chip", required_argument, 0, OptChip},
- {"scan-chips", no_argument, 0, OptScanChips},
- {"info", no_argument, 0, OptGetDriverInfo},
- {"verbose", no_argument, 0, OptVerbose},
- {"log-status", no_argument, 0, OptLogStatus},
- {"list-symbols", no_argument, 0, OptListSymbols},
- {"wide", required_argument, 0, OptSetStride},
- {0, 0, 0, 0}
+ {"device", required_argument, nullptr, OptSetDevice},
+ {"help", no_argument, nullptr, OptHelp},
+ {"list-registers", optional_argument, nullptr, OptListRegisters},
+ {"get-register", required_argument, nullptr, OptGetRegister},
+ {"set-register", required_argument, nullptr, OptSetRegister},
+ {"chip", required_argument, nullptr, OptChip},
+ {"scan-chips", no_argument, nullptr, OptScanChips},
+ {"info", no_argument, nullptr, OptGetDriverInfo},
+ {"verbose", no_argument, nullptr, OptVerbose},
+ {"log-status", no_argument, nullptr, OptLogStatus},
+ {"list-symbols", no_argument, nullptr, OptListSymbols},
+ {"wide", required_argument, nullptr, OptSetStride},
+ {nullptr, 0, nullptr, 0}
};
static void usage()
@@ -307,7 +307,7 @@ static unsigned long long parse_reg(const struct board_list *curr_bd, const std:
}
}
}
- return strtoull(reg.c_str(), NULL, 0);
+ return strtoull(reg.c_str(), nullptr, 0);
}
static const char *reg_name(const struct board_list *curr_bd, unsigned long long reg)
@@ -322,7 +322,7 @@ static const char *reg_name(const struct board_list *curr_bd, unsigned long long
return curr_bd->regs[i].name;
}
}
- return NULL;
+ return nullptr;
}
static const char *binary(unsigned long long val)
@@ -379,7 +379,7 @@ static int parse_subopt(char **subs, const char * const *subopts, char **value)
usage();
std::exit(EXIT_FAILURE);
}
- if (*value == NULL) {
+ if (*value == nullptr) {
fprintf(stderr, "No value given to suboption <%s>\n",
subopts[opt]);
usage();
@@ -402,7 +402,7 @@ int main(int argc, char **argv)
struct v4l2_dbg_register set_reg;
struct v4l2_dbg_register get_reg;
struct v4l2_dbg_chip_info chip_info;
- const struct board_list *curr_bd = NULL;
+ const struct board_list *curr_bd = nullptr;
char short_options[26 * 2 * 3 + 1];
int idx = 0;
std::string reg_min_arg, reg_max_arg;
@@ -472,12 +472,12 @@ int main(int argc, char **argv)
case OptChip:
if (!memcmp(optarg, "subdev", 6) && isdigit(optarg[6])) {
match.type = V4L2_CHIP_MATCH_SUBDEV;
- match.addr = strtoul(optarg + 6, NULL, 0);
+ match.addr = strtoul(optarg + 6, nullptr, 0);
break;
}
if (!memcmp(optarg, "bridge", 6)) {
match.type = V4L2_CHIP_MATCH_BRIDGE;
- match.addr = strtoul(optarg + 6, NULL, 0);
+ match.addr = strtoul(optarg + 6, nullptr, 0);
break;
}
match.type = V4L2_CHIP_MATCH_BRIDGE;
@@ -493,19 +493,19 @@ int main(int argc, char **argv)
break;
case OptSetStride:
- forcedstride = strtoull(optarg, 0L, 0);
+ forcedstride = strtoull(optarg, nullptr, 0);
break;
case OptListRegisters:
subs = optarg;
- if (subs == NULL)
+ if (subs == nullptr)
break;
while (*subs != '\0') {
static const char * const subopts[] = {
"min",
"max",
- NULL
+ nullptr
};
switch (parse_subopt(&subs, subopts, &value)) {
@@ -597,7 +597,7 @@ int main(int argc, char **argv)
"VIDIOC_DBG_G_REGISTER") >= 0)
size = set_reg.size;
- set_reg.val = strtoull(argv[optind++], NULL, 0);
+ set_reg.val = strtoull(argv[optind++], nullptr, 0);
if (doioctl(fd, VIDIOC_DBG_S_REGISTER, &set_reg,
"VIDIOC_DBG_S_REGISTER") >= 0) {
const char *name = reg_name(curr_bd, set_reg.reg);
@@ -763,7 +763,7 @@ list_done:
static char buf[40960];
int len = -1;
- if (doioctl(fd, VIDIOC_LOG_STATUS, NULL, "VIDIOC_LOG_STATUS") == 0) {
+ if (doioctl(fd, VIDIOC_LOG_STATUS, nullptr, "VIDIOC_LOG_STATUS") == 0) {
printf("\nStatus Log:\n\n");
#ifdef HAVE_KLOGCTL
len = klogctl(3, buf, sizeof(buf) - 1);
@@ -791,7 +791,7 @@ list_done:
}
if (options[OptListSymbols]) {
- if (curr_bd == NULL) {
+ if (curr_bd == nullptr) {
printf("No symbols found for driver %s\n", vcap.driver);
}
else {
Found with modernize-use-nullptr Signed-off-by: Rosen Penev <rosenp@gmail.com> --- utils/cec-compliance/cec-compliance.cpp | 154 +++--- utils/cec-compliance/cec-test-adapter.cpp | 26 +- utils/cec-compliance/cec-test-power.cpp | 22 +- utils/cec-compliance/cec-test.cpp | 4 +- utils/cec-ctl/cec-ctl.cpp | 240 ++++----- utils/cec-follower/cec-follower.cpp | 44 +- utils/cec-follower/cec-processing.cpp | 16 +- utils/common/media-info.cpp | 20 +- utils/common/v4l2-info.cpp | 38 +- utils/libcecutil/cec-info.cpp | 8 +- utils/libcecutil/cec-log.cpp | 4 +- utils/libcecutil/cec-parse.cpp | 6 +- utils/rds-ctl/rds-ctl.cpp | 58 +-- utils/v4l2-compliance/v4l2-compliance.cpp | 78 +-- utils/v4l2-compliance/v4l2-test-buffers.cpp | 58 +-- utils/v4l2-compliance/v4l2-test-colors.cpp | 2 +- utils/v4l2-compliance/v4l2-test-controls.cpp | 6 +- utils/v4l2-compliance/v4l2-test-debug.cpp | 2 +- utils/v4l2-compliance/v4l2-test-formats.cpp | 4 +- utils/v4l2-compliance/v4l2-test-io-config.cpp | 2 +- utils/v4l2-compliance/v4l2-test-media.cpp | 8 +- utils/v4l2-ctl/v4l2-ctl-common.cpp | 30 +- utils/v4l2-ctl/v4l2-ctl-edid.cpp | 40 +- utils/v4l2-ctl/v4l2-ctl-io.cpp | 8 +- utils/v4l2-ctl/v4l2-ctl-meta.cpp | 6 +- utils/v4l2-ctl/v4l2-ctl-misc.cpp | 16 +- utils/v4l2-ctl/v4l2-ctl-overlay.cpp | 52 +- utils/v4l2-ctl/v4l2-ctl-sdr.cpp | 2 +- utils/v4l2-ctl/v4l2-ctl-selection.cpp | 20 +- utils/v4l2-ctl/v4l2-ctl-stds.cpp | 12 +- utils/v4l2-ctl/v4l2-ctl-streaming.cpp | 72 +-- utils/v4l2-ctl/v4l2-ctl-subdev.cpp | 56 +-- utils/v4l2-ctl/v4l2-ctl-tuner.cpp | 18 +- utils/v4l2-ctl/v4l2-ctl-vbi.cpp | 18 +- utils/v4l2-ctl/v4l2-ctl-vidcap.cpp | 12 +- utils/v4l2-ctl/v4l2-ctl-vidout.cpp | 2 +- utils/v4l2-ctl/v4l2-ctl.cpp | 468 +++++++++--------- utils/v4l2-dbg/v4l2-dbg.cpp | 58 +-- 38 files changed, 845 insertions(+), 845 deletions(-)