hide user profile avatar if obs is running

This commit is contained in:
fourtf 2020-07-12 22:44:33 +02:00
parent 515657be19
commit 9739d8d9c3
4 changed files with 69 additions and 1 deletions

View file

@ -219,6 +219,7 @@ SOURCES += \
src/util/JsonQuery.cpp \
src/util/RapidjsonHelpers.cpp \
src/util/StreamLink.cpp \
src/util/StreamerMode.cpp \
src/util/Twitch.cpp \
src/util/NuulsUploader.cpp \
src/util/WindowsHelper.cpp \
@ -435,6 +436,7 @@ HEADERS += \
src/util/PostToThread.hpp \
src/util/QObjectRef.hpp \
src/util/QStringHash.hpp \
src/util/StreamerMode.hpp \
src/util/Twitch.hpp \
src/util/rangealgorithm.hpp \
src/util/RapidjsonHelpers.hpp \

54
src/util/StreamerMode.cpp Normal file
View file

@ -0,0 +1,54 @@
#include "StreamerMode.hpp"
#ifdef USEWINSDK
# include <Windows.h>
# include <VersionHelpers.h>
# include <WtsApi32.h>
# pragma comment(lib, "Wtsapi32.lib")
#endif
namespace chatterino {
const QStringList &broadcastingBinaries()
{
#ifdef USEWINSDK
static QStringList bins = {"obs.exe", "obs64.exe"};
#else
static QStringList bins = {};
#endif
return bins;
}
bool isInStreamerMode()
{
#ifdef USEWINSDK
if (IsWindowsVistaOrGreater())
{
WTS_PROCESS_INFO *pWPIs = nullptr;
DWORD dwProcCount = 0;
if (WTSEnumerateProcesses(WTS_CURRENT_SERVER_HANDLE, NULL, 1, &pWPIs,
&dwProcCount))
{
//Go through all processes retrieved
for (DWORD i = 0; i < dwProcCount; i++)
{
QString processName = QString::fromUtf16(
reinterpret_cast<char16_t *>(pWPIs[i].pProcessName));
qDebug() << processName;
if (broadcastingBinaries().contains(processName))
return true;
}
}
if (pWPIs)
WTSFreeMemory(pWPIs);
}
#endif
return false;
}
} // namespace chatterino

View file

@ -0,0 +1,8 @@
#pragma once
namespace chatterino {
const QStringList &broadcastingBinaries();
bool isInStreamerMode();
} // namespace chatterino

View file

@ -14,6 +14,7 @@
#include "util/LayoutCreator.hpp"
#include "util/PostToThread.hpp"
#include "util/Shortcut.hpp"
#include "util/StreamerMode.hpp"
#include "widgets/Label.hpp"
#include "widgets/helper/ChannelView.hpp"
#include "widgets/helper/EffectLabel.hpp"
@ -484,7 +485,10 @@ void UserInfoPopup::updateUserData()
[] {
// failure
});
this->loadAvatar(user.profileImageUrl);
if (!isInStreamerMode())
{
this->loadAvatar(user.profileImageUrl);
}
getHelix()->getUserFollowers(
user.id,