mirror-chatterino2/src/providers/ffz/FfzBadges.hpp

38 lines
774 B
C++
Raw Normal View History

#pragma once
#include <boost/optional.hpp>
#include <common/Singleton.hpp>
#include "common/Aliases.hpp"
2021-05-01 13:38:58 +02:00
#include "util/QStringHash.hpp"
#include <map>
2021-05-01 13:38:58 +02:00
#include <shared_mutex>
#include <vector>
namespace chatterino {
struct Emote;
using EmotePtr = std::shared_ptr<const Emote>;
class FfzBadges : public Singleton
{
public:
virtual void initialize(Settings &settings, Paths &paths) override;
FfzBadges() = default;
boost::optional<EmotePtr> getBadge(const UserId &id);
boost::optional<QColor> getBadgeColor(const UserId &id);
private:
void loadFfzBadges();
2021-05-01 13:38:58 +02:00
std::shared_mutex mutex_;
std::unordered_map<QString, int> badgeMap;
std::vector<EmotePtr> badges;
2021-05-01 13:38:58 +02:00
std::unordered_map<int, QColor> colorMap;
};
} // namespace chatterino