aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorspiff_ <spiff_@svn>2010-04-27 23:12:15 +0000
committerspiff_ <spiff_@svn>2010-04-27 23:12:15 +0000
commitd9e6ddf42d0d2787a93eaec8706e26a90d931f41 (patch)
treee0bb05251020b106f1d459ee1d719dea1568d556
parent54fd0752af2cf12d99c85354818dac105b8216d3 (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.cpp14
-rw-r--r--xbmc/AddonDatabase.h2
-rw-r--r--xbmc/FileSystem/AddonsDirectory.cpp1
-rw-r--r--xbmc/addons/Addon.h2
-rw-r--r--xbmc/addons/AddonManager.cpp2
-rw-r--r--xbmc/addons/IAddon.h1
-rw-r--r--xbmc/addons/Repository.cpp2
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);
}