xbmc
EmbeddedArt.h
1 /*
2  * Copyright (C) 2015-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 "IArchivable.h"
12 
13 #include <stdint.h>
14 #include <string>
15 #include <vector>
16 
18 {
19 public:
20  EmbeddedArtInfo() = default;
21  EmbeddedArtInfo(size_t size, const std::string &mime, const std::string& type = "");
22  virtual ~EmbeddedArtInfo() = default;
23 
24  // implementation of IArchivable
25  void Archive(CArchive& ar) override;
26 
27  void Set(size_t size, const std::string &mime, const std::string& type = "");
28  void Clear();
29  bool Empty() const;
30  bool Matches(const EmbeddedArtInfo &right) const;
31  void SetType(const std::string& type) { m_type = type; }
32 
33  size_t m_size = 0;
34  std::string m_mime;
35  std::string m_type;
36 };
37 
39 {
40 public:
41  EmbeddedArt() = default;
42  EmbeddedArt(const uint8_t *data, size_t size,
43  const std::string &mime, const std::string& type = "");
44 
45  void Set(const uint8_t *data, size_t size,
46  const std::string &mime, const std::string& type = "");
47 
48  std::vector<uint8_t> m_data;
49 };
Definition: EmbeddedArt.h:38
Definition: EmbeddedArt.h:17
Definition: Archive.h:29
Definition: IArchivable.h:13