diff options
author | spiff_ <spiff_@svn> | 2010-04-27 23:12:15 +0000 |
---|---|---|
committer | spiff_ <spiff_@svn> | 2010-04-27 23:12:15 +0000 |
commit | d9e6ddf42d0d2787a93eaec8706e26a90d931f41 (patch) | |
tree | e0bb05251020b106f1d459ee1d719dea1568d556 | |
parent | 54fd0752af2cf12d99c85354818dac105b8216d3 (diff) |
added: fanart support for addons
git-svn-id: https://xbmc.svn.sourceforge.net/svnroot/xbmc/trunk@29567 568bbfeb-2a22-0410-94d2-cc84cf5bfa90
-rw-r--r-- | xbmc/AddonDatabase.cpp | 14 | ||||
-rw-r--r-- | xbmc/AddonDatabase.h | 2 | ||||
-rw-r--r-- | xbmc/FileSystem/AddonsDirectory.cpp | 1 | ||||
-rw-r--r-- | xbmc/addons/Addon.h | 2 | ||||
-rw-r--r-- | xbmc/addons/AddonManager.cpp | 2 | ||||
-rw-r--r-- | xbmc/addons/IAddon.h | 1 | ||||
-rw-r--r-- | xbmc/addons/Repository.cpp | 2 |
7 files changed, 19 insertions, 5 deletions
diff --git a/xbmc/AddonDatabase.cpp b/xbmc/AddonDatabase.cpp index fb9e30ca18..5426c05f53 100644 --- a/xbmc/AddonDatabase.cpp +++ b/xbmc/AddonDatabase.cpp @@ -47,7 +47,8 @@ bool CAddonDatabase::CreateTables() CLog::Log(LOGINFO, "create addon table"); m_pDS->exec("CREATE TABLE addon (id integer primary key, type text," "name text, summary text, description text, stars integer," - "path text, addonID text, icon text, version text, changelog text)\n"); + "path text, addonID text, icon text, version text, " + "changelog text, fanart text)\n"); CLog::Log(LOGINFO, "create addon index"); m_pDS->exec("CREATE INDEX idxAddon ON addon(addonID)"); @@ -78,6 +79,10 @@ bool CAddonDatabase::UpdateOldVersion(int version) { m_pDS->exec("alter table addon add changelog text"); } + if (version < 4) + { + m_pDS->exec("alter table addon add fanart text"); + } return true; } @@ -91,14 +96,14 @@ int CAddonDatabase::AddAddon(const AddonPtr& addon, CStdString sql = FormatSQL("insert into addon (id, type, name, summary," "description, stars, path, icon, changelog, " - "addonID, version)" + "fanart, addonID, version)" " values(NULL, '%s', '%s', '%s', '%s', %i," - "'%s', '%s', '%s', '%s','%s')", + "'%s', '%s', '%s', '%s', '%s','%s')", TranslateType(addon->Type(),false).c_str(), addon->Name().c_str(), addon->Summary().c_str(), addon->Description().c_str(),addon->Stars(), addon->Path().c_str(), addon->Props().icon.c_str(), - addon->ChangeLog().c_str(), + addon->ChangeLog().c_str(),addon->FanArt().c_str(), addon->ID().c_str(), addon->Version().str.c_str()); m_pDS->exec(sql.c_str()); int idAddon = (int)m_pDS->lastinsertid(); @@ -154,6 +159,7 @@ bool CAddonDatabase::GetAddon(int id, AddonPtr& addon) props.changelog = m_pDS2->fv("changelog").get_asString(); props.path = m_pDS2->fv("path").get_asString(); props.icon = m_pDS2->fv("icon").get_asString(); + props.fanart = m_pDS2->fv("fanart").get_asString(); addon = CAddonMgr::AddonFromProps(props); return true; } diff --git a/xbmc/AddonDatabase.h b/xbmc/AddonDatabase.h index 46c990e80f..d5362b5723 100644 --- a/xbmc/AddonDatabase.h +++ b/xbmc/AddonDatabase.h @@ -51,7 +51,7 @@ public: protected: virtual bool CreateTables(); virtual bool UpdateOldVersion(int version); - virtual int GetMinVersion() const { return 3; } + virtual int GetMinVersion() const { return 4; } const char *GetDefaultDBName() const { return "Addons"; } }; diff --git a/xbmc/FileSystem/AddonsDirectory.cpp b/xbmc/FileSystem/AddonsDirectory.cpp index 49aacdfd86..d03b6ab072 100644 --- a/xbmc/FileSystem/AddonsDirectory.cpp +++ b/xbmc/FileSystem/AddonsDirectory.cpp @@ -161,6 +161,7 @@ void CAddonsDirectory::GenerateListing(CURL &path, VECADDONS& addons, CFileItemL pItem->SetLabel(addon->Name()); pItem->SetLabel2(addon->Summary()); pItem->SetThumbnailImage(addon->Icon()); + pItem->SetProperty("fanart_image",addon->FanArt()); CAddonDatabase::SetPropertiesFromAddon(addon,pItem); AddonPtr addon2; if (CAddonMgr::Get()->GetAddon(addon->ID(),addon2)) diff --git a/xbmc/addons/Addon.h b/xbmc/addons/Addon.h index d36bad174d..e8afcb23fd 100644 --- a/xbmc/addons/Addon.h +++ b/xbmc/addons/Addon.h @@ -96,6 +96,7 @@ public: CStdString icon; CStdString disclaimer; CStdString changelog; + CStdString fanart; std::set<CONTENT_TYPE> contents; ADDONDEPS dependencies; int stars; @@ -136,6 +137,7 @@ public: const CStdString LibName() const { return m_strLibName; } const CStdString Author() const { return m_props.author; } const CStdString ChangeLog() const { return m_props.changelog; } + const CStdString FanArt() const { return m_props.fanart; } const CStdString Icon() const; const int Stars() const { return m_props.stars; } const CStdString Disclaimer() const { return m_props.disclaimer; } diff --git a/xbmc/addons/AddonManager.cpp b/xbmc/addons/AddonManager.cpp index cfe202bc03..15050d0b67 100644 --- a/xbmc/addons/AddonManager.cpp +++ b/xbmc/addons/AddonManager.cpp @@ -479,6 +479,8 @@ bool CAddonMgr::AddonFromInfoXML(const TiXmlElement *rootElement, addonProps.icon = "icon.png"; /* Set Changelog */ addonProps.changelog = CUtil::AddFileToFolder(addonProps.path,"changelog.txt"); + /* Set Fanart */ + addonProps.changelog = CUtil::AddFileToFolder(addonProps.path,"fanart.jpg"); /* Retrieve license */ element = rootElement->FirstChildElement("license"); diff --git a/xbmc/addons/IAddon.h b/xbmc/addons/IAddon.h index 9c16f624dd..e8a6cbef16 100644 --- a/xbmc/addons/IAddon.h +++ b/xbmc/addons/IAddon.h @@ -90,6 +90,7 @@ namespace ADDON virtual const CStdString Profile() const =0; virtual const CStdString LibName() const =0; virtual const CStdString ChangeLog() const =0; + virtual const CStdString FanArt() const =0; virtual const CStdString Author() const =0; virtual const CStdString Icon() const =0; virtual const int Stars() const =0; diff --git a/xbmc/addons/Repository.cpp b/xbmc/addons/Repository.cpp index 397b4dd06a..86aca5f72d 100644 --- a/xbmc/addons/Repository.cpp +++ b/xbmc/addons/Repository.cpp @@ -146,11 +146,13 @@ VECADDONS CRepository::Parse() addon->Props().path = CUtil::AddFileToFolder(m_datadir,addon->ID()+"/"+addon->ID()+"-"+addon->Version().str+".zip"); addon->Props().icon = CUtil::AddFileToFolder(m_datadir,addon->ID()+"/icon.png"); addon->Props().changelog = CUtil::AddFileToFolder(m_datadir,addon->ID()+"/changelog-"+addon->Version().str+".txt"); + addon->Props().fanart = CUtil::AddFileToFolder(m_datadir,addon->ID()+"/fanart.jpg"); } else { addon->Props().path = CUtil::AddFileToFolder(m_datadir,addon->ID()+"/"); addon->Props().changelog = CUtil::AddFileToFolder(m_datadir,addon->ID()+"/changelog.txt"); + addon->Props().fanart = CUtil::AddFileToFolder(m_datadir,addon->ID()+"/fanart.jpg"); } result.push_back(addon); } |