mirror of
https://github.com/obsproject/obs-studio.git
synced 2024-09-20 13:08:50 +02:00
4687e99563
mt19937 is a deterministic RNG and was not seeded, so the state parameter was identical for all runs. Switch to using Qt's QRandomGenerator::system() which is implemented as a CSPRNG on all platforms we care about.
46 lines
990 B
C++
46 lines
990 B
C++
#pragma once
|
|
|
|
#include <QObject>
|
|
#include <QString>
|
|
#include <random>
|
|
#include <string>
|
|
|
|
#include "auth-oauth.hpp"
|
|
|
|
#ifdef BROWSER_AVAILABLE
|
|
class BrowserDock;
|
|
#endif
|
|
|
|
inline const std::vector<Auth::Def> youtubeServices = {
|
|
{"YouTube - RTMP", Auth::Type::OAuth_LinkedAccount, true, true},
|
|
{"YouTube - RTMPS", Auth::Type::OAuth_LinkedAccount, true, true},
|
|
{"YouTube - HLS", Auth::Type::OAuth_LinkedAccount, true, true}};
|
|
|
|
class YoutubeAuth : public OAuthStreamKey {
|
|
Q_OBJECT
|
|
|
|
bool uiLoaded = false;
|
|
std::string section;
|
|
|
|
#ifdef BROWSER_AVAILABLE
|
|
QSharedPointer<BrowserDock> chat;
|
|
QSharedPointer<QAction> chatMenu;
|
|
#endif
|
|
|
|
virtual bool RetryLogin() override;
|
|
virtual void SaveInternal() override;
|
|
virtual bool LoadInternal() override;
|
|
virtual void LoadUI() override;
|
|
|
|
QString GenerateState();
|
|
|
|
public:
|
|
YoutubeAuth(const Def &d);
|
|
|
|
void SetChatId(QString &chat_id);
|
|
void ResetChat();
|
|
|
|
static std::shared_ptr<Auth> Login(QWidget *parent,
|
|
const std::string &service);
|
|
};
|