/* streamer-tools OBS Camera Plugin - core library Copyright (C) 2026 CyberCoveLLC This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see */ #pragma once #include // The small shared pieces of the core library: its version string, and the // streamer-tools connection settings that both the API client and the OBS // adapter pass around. Everything substantial lives in its own header -- // api_client.h, session.h, http.h, json.h -- and none of it depends on OBS, // so the whole library builds and tests headlessly on all three platforms. namespace stplugin { // The core library's version string, injected by CMake from the top-level // project() version, so what OBS logs on load is the actual build. const char *core_version(); // What an operator types into the source's properties, and what ApiClient // needs to reach the two read-key-scoped endpoints in // apps/server/src/obs/plugin.routes.ts (streamer-tools repo). The read key is // a credential: it is masked in the properties UI and never logged (see // ApiClient::redactedUrl). struct ConnectionConfig { std::string server_url; std::string room_slug; std::string read_key; bool is_valid() const; }; } // namespace stplugin