summaryrefslogtreecommitdiff
path: root/gd_content_interface.c
diff options
context:
space:
mode:
authorRaK <RaK@e10066b5-e1e2-0310-b819-94efdf66514b>2004-02-01 22:35:23 +0000
committerRaK <RaK@e10066b5-e1e2-0310-b819-94efdf66514b>2004-02-01 22:35:23 +0000
commit71c1f01d3921445579feea0015f550be2f9e98e0 (patch)
tree89b00c72ed4ed3801822fd3d1b4307d966259774 /gd_content_interface.c
parent89b813bb617c34c24a22bc05442331cbbe71f061 (diff)
downloadvdr-plugin-muggle-71c1f01d3921445579feea0015f550be2f9e98e0.tar.gz
vdr-plugin-muggle-71c1f01d3921445579feea0015f550be2f9e98e0.tar.bz2
Added View Artist -> Tracks
git-svn-id: https://vdr-muggle.svn.sourceforge.net/svnroot/vdr-muggle/trunk/muggle-plugin@12 e10066b5-e1e2-0310-b819-94efdf66514b
Diffstat (limited to 'gd_content_interface.c')
-rw-r--r--gd_content_interface.c72
1 files changed, 67 insertions, 5 deletions
diff --git a/gd_content_interface.c b/gd_content_interface.c
index becae1c..f3f1b47 100644
--- a/gd_content_interface.c
+++ b/gd_content_interface.c
@@ -3,8 +3,8 @@
* \brief Data Objects for content (e.g. mp3 files, movies)
* for the vdr muggle plugindatabase
********************************************************************
- * \version $Revision: 1.2 $
- * \date $Date: 2004/02/01 22:12:56 $
+ * \version $Revision: 1.3 $
+ * \date $Date: 2004/02/01 22:35:23 $
* \author Ralf Klueber, Lars von Wedel, Andreas Kellner
* \author file owner: $Author: RaK $
*
@@ -40,7 +40,7 @@ int GdInitDatabase(MYSQL *db)
}
if(mysql_real_connect(db,"localhost","root","",
- "GiantDisc",0,NULL,0) == NULL)
+ "GiantDisc2",0,NULL,0) == NULL)
{
return -2;
}
@@ -795,7 +795,9 @@ bool GdTreeNode::expand()
idfield = "album.artist";
} else if(m_level == 3) { // genre -> artist -> album
sprintf(sqlbuff,
- "SELECT DISTINCT album.title,tracks.sourceid"
+ "SELECT DISTINCT"
+ " album.title,"
+ " tracks.sourceid"
" FROM tracks,genre,album"
" WHERE (genre.id=tracks.genre1) AND"
" (album.cddbid=tracks.sourceid) AND"
@@ -881,7 +883,62 @@ bool GdTreeNode::expand()
return false;
}
break;
- default:
+ case 5: // Album -> Tracks
+ if(m_level == 1) { // Album
+ sprintf(sqlbuff,
+ "SELECT DISTINCT"
+ " CONCAT(album.artist,' - ',album.title) AS title,"
+ " album.cddbid"
+ " FROM album"
+ " WHERE 1 AND"
+ " %s"
+ " ORDER BY title"
+ , m_restriction.c_str());
+ idfield = "tracks.genre1";
+ } else if (m_level == 2) { //
+ sprintf(sqlbuff,
+ "SELECT DISTINCT tracks.title, tracks.id"
+ " FROM tracks,genre,album"
+ " WHERE (genre.id=tracks.genre1) AND"
+ " (album.cddbid=tracks.sourceid) AND"
+ " %s"
+ " ORDER BY tracks.tracknb"
+ , m_restriction.c_str());
+ idfield = "tracks.id";
+ } else {
+ mgWarning("View #%d level %d' not yet implemented", m_view, m_level);
+ m_expanded = false;
+ return false;
+ }
+ case 100:
+ if (m_level == 1) {
+ sprintf(sqlbuff,
+ "SELECT DISTINCT"
+ " CONCAT(album.artist,' - ',album.title) as title,"
+ " album.cddbid"
+ " FROM album,genre"
+ " WHERE "
+ " %s"
+ " ORDER BY title"
+ , m_restriction.c_str());
+ idfield = "tracks.sourceid";
+ } else if (m_level == 2) {
+ sprintf(sqlbuff,
+ "SELECT tracks.title,tracks.id"
+ " FROM tracks,genre,album"
+ " WHERE (genre.id=tracks.genre1) AND"
+ " (album.cddbid=tracks.sourceid) AND"
+ " %s"
+ " ORDER BY tracks.tracknb"
+ , m_restriction.c_str());
+ idfield = "tracks.id";
+ } else {
+ mgWarning("View #%d level %d' not yet implemented", m_view, m_level);
+ m_expanded = false;
+ return false;
+ }
+ break;
+default:
mgError("View '%d' not yet implemented", m_view);
}
@@ -928,6 +985,11 @@ bool GdTreeNode::expand()
"Genre -> Year -> Track" , // label,
"1");
m_children.push_back(new_child);
+ new_child = new GdTreeNode(this, // parent
+ "5" , // id
+ "Album -> Track" , // label,
+ "1");
+ m_children.push_back(new_child);
} else {
new_child = new GdTreeNode(this, // parent
"100" , // id