#pragma once #include #include #include #include #include "cvmmap_streamer/ipc/contracts.hpp" namespace cvmmap_streamer::sim { struct RuntimeConfig { std::uint32_t frames{360}; std::uint32_t fps{60}; std::uint16_t width{64}; std::uint16_t height{48}; std::optional emit_reset_at{}; std::optional emit_reset_every{}; std::optional switch_format_at{}; std::optional switch_width{}; std::optional switch_height{}; std::string label{"sim"}; std::string shm_name{"cvmmap_sim"}; std::string zmq_endpoint{"ipc:///tmp/cvmmap_sim"}; std::uint8_t channels{3}; ipc::Depth depth{ipc::Depth::U8}; ipc::PixelFormat pixel_format{ipc::PixelFormat::BGR}; [[nodiscard]] std::uint32_t payload_size_bytes() const; }; std::expected parse_runtime_config(int argc, char **argv); void print_help(); }