#pragma once #include #include #include #include #include #include #include namespace ZShell::wallpaper { class WallpaperCache { public: void setDbPath(const QString& path); [[nodiscard]] QString dbPath() const; [[nodiscard]] QImage decodeImage( const QString& path, const QSize& decodeSize) const; [[nodiscard]] QByteArray posterBlob(const QString& path) const; [[nodiscard]] QVariantMap cropsForPath(const QString& path) const; private: [[nodiscard]] QByteArray cachedBlob(const QString& path) const; mutable std::mutex m_mtx; QString m_dbPath; }; } // namespace ZShell::wallpaper