Files
obs-streamer-tools-plugin/core/include/stplugin/core.h
shadowdaoandClaude Sonnet 5 969b8db94a
Build / macOS (macos-latest) (push) Successful in 33s
Build / Linux (ubuntu-24.04) (push) Successful in 54s
Build / Windows (windows-latest) (push) Successful in 12m10s
license: relicense first-party code from GPL-2.0-or-later to Apache-2.0
Owner sign-off: replace root LICENSE with Apache License 2.0, add a root
NOTICE file, and swap the GPL-2.0 boilerplate header in every first-party
core/ and obs-adapter/ source file for a short Apache-2.0 notice.

This resolves review finding C2 (GPLv2 top-level LICENSE vs. the vendored
Apache-2.0 LiveKit SDK is a license-compatibility violation): the whole
repo is now Apache-2.0, matching LiveKit, so there's no GPL/Apache clash
left. Updated the README Status gate and the CI workflow comment to reflect
that C2 is resolved, while leaving the C1 WebRTC/OpenH264 patent/royalty
gate untouched -- that question is still open and still blocks release.

third_party/ stays under its own upstream licenses; only this project's own
code changed hands. All 6 CTest suites still pass after the header swap.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RL8abRmgFXkVASHkkqiJbE
2026-09-07 04:44:16 -07:00

42 lines
1.4 KiB
C++

/*
streamer-tools OBS Camera Plugin - core library
Copyright (C) 2026 CyberCoveLLC <jknapp85@gmail.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
*/
#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