telegram/TMessagesProj/jni/voip/tgcalls/desktop_capturer/DesktopCaptureSource.cpp
2025-11-22 14:04:28 +01:00

68 lines
1.6 KiB
C++

//
// DesktopCaptureSource.m
// TgVoipWebrtc
//
// Created by Mikhail Filimonov on 29.12.2020.
// Copyright © 2020 Mikhail Filimonov. All rights reserved.
//
#include "tgcalls/desktop_capturer/DesktopCaptureSource.h"
namespace tgcalls {
std::string DesktopCaptureSourceData::cachedKey() const {
return std::to_string(aspectSize.width)
+ 'x'
+ std::to_string(aspectSize.height)
+ ':'
+ std::to_string(fps)
+ ':'
+ (captureMouse ? '1' : '0');
}
DesktopCaptureSource::DesktopCaptureSource(
long long uniqueId,
std::string title,
bool isWindow)
: _uniqueId(uniqueId)
, _title(std::move(title))
, _isWindow(isWindow) {
}
long long DesktopCaptureSource::uniqueId() const {
return _uniqueId;
}
bool DesktopCaptureSource::isWindow() const {
return _isWindow;
}
std::string DesktopCaptureSource::deviceIdKey() const {
return std::string("desktop_capturer_")
+ (_isWindow ? "window_" : "screen_")
+ std::to_string(uniqueId());
}
std::string DesktopCaptureSource::title() const {
return _isWindow ? _title : "Screen";
}
std::string DesktopCaptureSource::uniqueKey() const {
return std::to_string(_uniqueId)
+ ':'
+ (_isWindow ? "Window" : "Screen");
}
std::string DesktopCaptureSource::deviceIdKey() {
return static_cast<const DesktopCaptureSource*>(this)->deviceIdKey();
}
std::string DesktopCaptureSource::title() {
return static_cast<const DesktopCaptureSource*>(this)->title();
}
std::string DesktopCaptureSource::uniqueKey() {
return static_cast<const DesktopCaptureSource*>(this)->uniqueKey();
}
} // namespace tgcalls