#pragma once #include "common/SignalVector.hpp" #include "singletons/Settings.hpp" namespace chatterino { class Settings; class Paths; class NotificationModel; enum class Platform : uint8_t { Twitch = 0, // 0 Mixer = 1, // 1 HitBox = 2, // 2 }; class NotificationController final : public Singleton { public: virtual void initialize(Settings &settings, Paths &paths) override; bool isChannelNotified(const QString &channelName, Platform p); void updateChannelNotification(const QString &channelName, Platform p); void addChannelNotification(const QString &channelName, UnsortedSignalVector &vector); void removeChannelNotification(const QString &channelName, UnsortedSignalVector &vector); UnsortedSignalVector getVector(Platform p); UnsortedSignalVector twitchVector; UnsortedSignalVector mixerVector; NotificationModel *createModel(QObject *parent, Platform p); private: bool initialized_ = false; ChatterinoSetting> twitchSetting_ = { "/notifications/twitch"}; ChatterinoSetting> mixerSetting_ = { "/notifications/mixer"}; }; } // namespace chatterino