Files
obs-studio/frontend/utility/QuickTransition.hpp
Sebastian Beckmann f80d35fa4a frontend: Remove "using namespace std" from headers
This is very dangerous as it propagates down everywhere the headers are
included in.
2025-12-17 18:51:35 -05:00

49 lines
1.6 KiB
C++

/******************************************************************************
Copyright (C) 2023 by Lain Bailey <lain@obsproject.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 <http://www.gnu.org/licenses/>.
******************************************************************************/
#pragma once
#include <obs.hpp>
#include <QMetaType>
class QPushButton;
struct QuickTransition {
QPushButton *button = nullptr;
OBSSource source;
obs_hotkey_id hotkey = OBS_INVALID_HOTKEY_ID;
int duration = 0;
int id = 0;
bool fadeToBlack = false;
inline QuickTransition() {}
inline QuickTransition(OBSSource source_, int duration_, int id_, bool fadeToBlack_ = false)
: source(source_),
duration(duration_),
id(id_),
fadeToBlack(fadeToBlack_),
renamedSignal(std::make_shared<OBSSignal>(obs_source_get_signal_handler(source), "rename",
SourceRenamed, this))
{
}
private:
static void SourceRenamed(void *param, calldata_t *data);
std::shared_ptr<OBSSignal> renamedSignal;
};