#include "utils/log.h"
#include "Artist.h"
#include "Album.h"
+#include "MusicThumbLoader.h"
using namespace std;
using namespace XFILE;
CMusicInfoLoader::CMusicInfoLoader() : CBackgroundInfoLoader(1)
{
m_mapFileItems = new CFileItemList;
+
+ m_thumbLoader = new CMusicThumbLoader();
}
CMusicInfoLoader::~CMusicInfoLoader()
{
StopThread();
delete m_mapFileItems;
+ delete m_thumbLoader;
}
void CMusicInfoLoader::OnLoaderStart()
m_pProgressCallback->SetProgressMax(m_pVecItems->GetFileCount());
m_musicDatabase.Open();
+
+ if (m_thumbLoader)
+ m_thumbLoader->Initialize();
}
bool CMusicInfoLoader::LoadAdditionalTagInfo(CFileItem* pItem)
if (pItem->m_bIsFolder || pItem->IsPlayList() || pItem->IsNFO() || pItem->IsInternetStream())
return false;
+ // Get thumb for item
+ if (m_thumbLoader)
+ m_thumbLoader->LoadItem(pItem);
+
if (pItem->HasMusicInfoTag() && pItem->GetMusicInfoTag()->Loaded())
return true;
m_pVecItems->Save();
m_musicDatabase.Close();
+
+ if (m_thumbLoader)
+ m_thumbLoader->Deinitialize();
}
void CMusicInfoLoader::UseCacheOnHD(const CStdString& strFileName)
#include "MusicDatabase.h"
class CFileItemList;
+class CMusicThumbLoader;
namespace MUSIC_INFO
{
CMusicDatabase m_musicDatabase;
unsigned int m_databaseHits;
unsigned int m_tagReads;
+ CMusicThumbLoader *m_thumbLoader;
};
}
m_albumArt.clear();
}
+void CMusicThumbLoader::Deinitialize()
+{
+ m_database->Close();
+ m_albumArt.clear();
+}
+
void CMusicThumbLoader::OnLoaderStart()
{
Initialize();
void CMusicThumbLoader::OnLoaderFinish()
{
- m_database->Close();
- m_albumArt.clear();
+ Deinitialize();
}
bool CMusicThumbLoader::LoadItem(CFileItem* pItem)
virtual ~CMusicThumbLoader();
virtual void Initialize();
+ virtual void Deinitialize();
+
virtual bool LoadItem(CFileItem* pItem);
/*! \brief helper function to fill the art for a video library item
static bool FillThumb(CFileItem &item);
static bool GetEmbeddedThumb(const std::string &path, MUSIC_INFO::EmbeddedArt &art);
-
+
protected:
virtual void OnLoaderStart();
virtual void OnLoaderFinish();