kodi
VideoThumbLoader.h
1 /*
2  * Copyright (C) 2012-2018 Team Kodi
3  * This file is part of Kodi - https://kodi.tv
4  *
5  * SPDX-License-Identifier: GPL-2.0-or-later
6  * See LICENSES/README.md for more information.
7  */
8 
9 #pragma once
10 
11 #include "FileItem.h"
12 #include "ThumbLoader.h"
13 
14 #include <map>
15 #include <vector>
16 
17 class CStreamDetails;
18 class CVideoDatabase;
19 class EmbeddedArt;
20 
21 using ArtMap = std::map<std::string, std::string>;
22 using ArtCache = std::map<std::pair<MediaType, int>, ArtMap>;
23 
25 {
26 public:
28  ~CVideoThumbLoader() override;
29 
30  void OnLoaderStart() override;
31  void OnLoaderFinish() override;
32 
33  bool LoadItem(CFileItem* pItem) override;
34  bool LoadItemCached(CFileItem* pItem) override;
35  bool LoadItemLookup(CFileItem* pItem) override;
36 
43  virtual bool FillThumb(CFileItem &item);
44 
51  static std::string GetLocalArt(const CFileItem &item, const std::string &type, bool checkFolder = false);
52 
58  static std::vector<std::string> GetArtTypes(const std::string &type);
59 
60  static bool IsValidArtType(const std::string& potentialArtType);
61 
62  static bool IsArtTypeInWhitelist(const std::string& artType, const std::vector<std::string>& whitelist, bool exact);
63 
68  static std::string GetEmbeddedThumbURL(const CFileItem &item);
69 
74  bool FillLibraryArt(CFileItem &item) override;
75 
76 protected:
77  CVideoDatabase *m_videoDatabase;
78  ArtCache m_artCache;
79 
85 
86  const ArtMap& GetArtFromCache(const std::string &mediaType, const int id);
87 };
Definition: EmbeddedArt.h:38
Definition: VideoThumbLoader.h:24
Definition: VideoDatabase.h:419
static std::string GetLocalArt(const CFileItem &item, const std::string &type, bool checkFolder=false)
Find a particular art type for a given item, optionally checking at the folder level.
Definition: VideoThumbLoader.cpp:509
Definition: StreamDetails.h:92
static std::string GetEmbeddedThumbURL(const CFileItem &item)
helper function to retrieve a thumb URL for embedded video thumbs
Definition: VideoThumbLoader.cpp:554
bool FillLibraryArt(CFileItem &item) override
helper function to fill the art for a video library item
Definition: VideoThumbLoader.cpp:356
static std::vector< std::string > GetArtTypes(const std::string &type)
return the available art types for a given media type
Definition: VideoThumbLoader.cpp:114
virtual bool FillThumb(CFileItem &item)
Fill the thumb of a video item First uses a cached thumb from a previous run, then checks for a local...
Definition: VideoThumbLoader.cpp:477
bool LoadItem(CFileItem *pItem) override
Look for a thumbnail for pItem.
Definition: VideoThumbLoader.cpp:167
void DetectAndAddMissingItemData(CFileItem &item)
Tries to detect missing data/info from a file and adds those.
Definition: VideoThumbLoader.cpp:565
Represents a file on a share.
Definition: FileItem.h:102
Definition: ThumbLoader.h:17