#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 // Mixer, // 1 }; 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, Platform p); void removeChannelNotification(const QString &channelName, Platform p); void playSound(); UnsortedSignalVector getVector(Platform p); std::map> channelMap; NotificationModel *createModel(QObject *parent, Platform p); private: bool initialized_ = false; ChatterinoSetting> twitchSetting_ = { "/notifications/twitch"}; /* ChatterinoSetting> mixerSetting_ = { "/notifications/mixer"}; */ }; } // namespace chatterino