Files
obs-streamer-tools-plugin/core/include/stplugin/core.h
T

49 lines
1.8 KiB
C++
Raw Normal View History

/*
streamer-tools OBS Camera Plugin - core library
Copyright (C) 2026 CyberCoveLLC <jknapp85@gmail.com>
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 <https://www.gnu.org/licenses/>
*/
#pragma once
#include <string>
// 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