Merge branch 'container_foldername'
[vuplus_xbmc] / xbmc / filesystem / MusicDatabaseDirectory / DirectoryNodeAlbum.cpp
1 /*
2  *      Copyright (C) 2005-2008 Team XBMC
3  *      http://www.xbmc.org
4  *
5  *  This Program is free software; you can redistribute it and/or modify
6  *  it under the terms of the GNU General Public License as published by
7  *  the Free Software Foundation; either version 2, or (at your option)
8  *  any later version.
9  *
10  *  This Program is distributed in the hope that it will be useful,
11  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  *  GNU General Public License for more details.
14  *
15  *  You should have received a copy of the GNU General Public License
16  *  along with XBMC; see the file COPYING.  If not, write to
17  *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
18  *  http://www.gnu.org/copyleft/gpl.html
19  *
20  */
21
22 #include "DirectoryNodeAlbum.h"
23 #include "QueryParams.h"
24 #include "music/MusicDatabase.h"
25
26 using namespace XFILE::MUSICDATABASEDIRECTORY;
27
28 CDirectoryNodeAlbum::CDirectoryNodeAlbum(const CStdString& strName, CDirectoryNode* pParent)
29   : CDirectoryNode(NODE_TYPE_ALBUM, strName, pParent)
30 {
31
32 }
33
34 NODE_TYPE CDirectoryNodeAlbum::GetChildType() const
35 {
36   return NODE_TYPE_SONG;
37 }
38
39 CStdString CDirectoryNodeAlbum::GetLocalizedName() const
40 {
41   if (GetID() == -1)
42     return g_localizeStrings.Get(15102); // All Albums
43   CMusicDatabase db;
44   if (db.Open())
45     return db.GetAlbumById(GetID());
46   return "";
47 }
48
49 bool CDirectoryNodeAlbum::GetContent(CFileItemList& items) const
50 {
51   CMusicDatabase musicdatabase;
52   if (!musicdatabase.Open())
53     return false;
54
55   CQueryParams params;
56   CollectQueryParams(params);
57
58   bool bSuccess=musicdatabase.GetAlbumsNav(BuildPath(), items, params.GetGenreId(), params.GetArtistId(),-1,-1);
59
60   musicdatabase.Close();
61
62   return bSuccess;
63 }