kodi
VideoItemArtworkHandler.h
1 /*
2  * Copyright (C) 2005-2023 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 <memory>
12 #include <string>
13 #include <vector>
14 
15 class CFileItem;
16 class CMediaSource;
17 
18 namespace VIDEO
19 {
21 {
22 public:
23  virtual ~IVideoItemArtworkHandler() = default;
24 
25  virtual std::string GetCurrentArt() const = 0;
26 
27  virtual std::string GetEmbeddedArt() const { return {}; }
28  virtual std::vector<std::string> GetRemoteArt() const { return {}; }
29  virtual std::string GetLocalArt() const { return {}; }
30 
31  virtual std::string GetDefaultIcon() const = 0;
32  virtual bool SupportsFlippedArt() const { return false; }
33 
34  virtual void AddItemPathToFileBrowserSources(std::vector<CMediaSource>& sources) {}
35 
36  virtual std::string UpdateEmbeddedArt(const std::string& art) { return art; }
37  virtual std::string UpdateRemoteArt(const std::vector<std::string>& art, int index)
38  {
39  return art[index];
40  }
41 
42  virtual void PersistArt(const std::string& art) = 0;
43 };
44 
46 {
47 public:
48  static std::unique_ptr<IVideoItemArtworkHandler> Create(const std::shared_ptr<CFileItem>& item,
49  const std::string& mediaType,
50  const std::string& artType);
51 };
52 
53 } // namespace VIDEO
Definition: VideoItemArtworkHandler.h:45
Represents a share.
Definition: MediaSource.h:22
Definition: Application.h:72
Definition: VideoItemArtworkHandler.h:20
Represents a file on a share.
Definition: FileItem.h:102