xbmc
MusicInfoLoader.h
1 /*
2  * Copyright (C) 2005-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 "BackgroundInfoLoader.h"
12 #include "MusicDatabase.h"
13 
14 class CFileItemList;
15 class CMusicThumbLoader;
16 
17 namespace MUSIC_INFO
18 {
20 {
21 public:
23  ~CMusicInfoLoader() override;
24 
25  void UseCacheOnHD(const std::string& strFileName);
26  bool LoadItem(CFileItem* pItem) override;
27  bool LoadItemCached(CFileItem* pItem) override;
28  bool LoadItemLookup(CFileItem* pItem) override;
29  static bool LoadAdditionalTagInfo(CFileItem* pItem);
30 
31 protected:
32  void OnLoaderStart() override;
33  void OnLoaderFinish() override;
34  void LoadCache(const std::string& strFileName, CFileItemList& items);
35  void SaveCache(const std::string& strFileName, CFileItemList& items);
36 protected:
37  std::string m_strCacheFileName;
38  CFileItemList* m_mapFileItems;
39  MAPSONGS m_songsMap;
40  std::string m_strPrevPath;
41  CMusicDatabase m_musicDatabase;
42  unsigned int m_databaseHits;
43  unsigned int m_tagReads;
44  CMusicThumbLoader *m_thumbLoader;
45 };
46 }
Definition: MusicThumbLoader.h:19
std::map< std::string, VECSONGS > MAPSONGS
A map of a vector of CSong objects key by filename, used for CMusicDatabase.
Definition: Song.h:217
Class to store and read tag information.
Definition: MusicDatabase.h:98
Represents a list of files.
Definition: FileItem.h:713
Definition: MusicInfoLoader.h:19
Definition: BackgroundInfoLoader.h:29
Represents a file on a share.
Definition: FileItem.h:102
Definition: Application.h:79