#pragma once #include #include #include namespace sc { struct SendCommand { std::string_view target = "monitor"; // monitor, window, region std::string_view peer_address; // optional int bitrate_kbps = 4000; }; struct ReceiveCommand { std::string_view peer_address; // optional int local_rtp_port = 5004; }; using Command = std::variant; // Parse command line arguments. Prints usage and returns std::nullopt on error. // `argv` is `char const* const*` so both `main`'s `char**` and const arrays // convert implicitly. std::optional parse_cli(int argc, const char* const argv[]); } // namespace sc