5 #include <boost/optional.hpp> 6 #include <unordered_map> 13 #include "pajlada/signals/signal.hpp" 17 #include <shared_mutex> 22 using EmotePtr = std::shared_ptr<const Emote>;
29 using QIconPtr = std::shared_ptr<QIcon>;
30 using ImagePtr = std::shared_ptr<Image>;
31 using BadgeIconCallback = std::function<void(QString, const QIconPtr)>;
37 boost::optional<EmotePtr>
badge(
const QString &
set,
38 const QString &version)
const;
40 boost::optional<EmotePtr>
badge(
const QString &
set)
const;
45 BadgeIconCallback callback);
51 void loadTwitchBadges();
53 void loadEmoteImage(
const QString &name, ImagePtr image,
54 BadgeIconCallback &&callback);
56 std::shared_mutex badgesMutex_;
57 QMap<QString, QIconPtr> badgesMap_;
59 std::mutex queueMutex_;
60 std::queue<QPair<QString, BadgeIconCallback>> callbackQueue_;
62 std::shared_mutex loadedMutex_;
66 std::unordered_map<QString, std::unordered_map<QString, EmotePtr>>>
void getBadgeIcons(const QList< DisplayBadge > &badges, BadgeIconCallback callback)
Definition: TwitchBadges.cpp:184
boost::optional< EmotePtr > badge(const QString &set, const QString &version) const
Definition: TwitchBadges.cpp:110
void getBadgeIcon(const QString &name, BadgeIconCallback callback)
Definition: TwitchBadges.cpp:140
Definition: DisplayBadge.hpp:6
Definition: TwitchBadges.hpp:27
Definition: Application.cpp:48
std::shared_ptr< const Emote > EmotePtr
Definition: Emote.hpp:38
Definition: UniqueAccess.hpp:53
QString name
Definition: Credentials.cpp:94
static TwitchBadges * instance()
Definition: TwitchBadges.cpp:239