[cstdstring] demise Format, replacing with StringUtils::Format
[vuplus_xbmc] / xbmc / filesystem / MusicDatabaseDirectory / DirectoryNodeAlbumRecentlyAdded.cpp
1 /*
2  *      Copyright (C) 2005-2013 Team XBMC
3  *      http://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, see
17  *  <http://www.gnu.org/licenses/>.
18  *
19  */
20
21 #include "DirectoryNodeAlbumRecentlyAdded.h"
22 #include "music/MusicDatabase.h"
23 #include "FileItem.h"
24 #include "utils/StringUtils.h"
25
26 using namespace XFILE::MUSICDATABASEDIRECTORY;
27
28 CDirectoryNodeAlbumRecentlyAdded::CDirectoryNodeAlbumRecentlyAdded(const CStdString& strName, CDirectoryNode* pParent)
29   : CDirectoryNode(NODE_TYPE_ALBUM_RECENTLY_ADDED, strName, pParent)
30 {
31
32 }
33
34 NODE_TYPE CDirectoryNodeAlbumRecentlyAdded::GetChildType() const
35 {
36   if (GetName()=="-1")
37     return NODE_TYPE_ALBUM_RECENTLY_ADDED_SONGS;
38
39   return NODE_TYPE_SONG;
40 }
41
42 CStdString CDirectoryNodeAlbumRecentlyAdded::GetLocalizedName() const
43 {
44   if (GetID() == -1)
45     return g_localizeStrings.Get(15102); // All Albums
46   CMusicDatabase db;
47   if (db.Open())
48     return db.GetAlbumById(GetID());
49   return "";
50 }
51
52 bool CDirectoryNodeAlbumRecentlyAdded::GetContent(CFileItemList& items) const
53 {
54   CMusicDatabase musicdatabase;
55   if (!musicdatabase.Open())
56     return false;
57
58   VECALBUMS albums;
59   if (!musicdatabase.GetRecentlyAddedAlbums(albums))
60   {
61     musicdatabase.Close();
62     return false;
63   }
64
65   for (int i=0; i<(int)albums.size(); ++i)
66   {
67     CAlbum& album=albums[i];
68     CStdString strDir = StringUtils::Format("%s%ld/", BuildPath().c_str(), album.idAlbum);
69     CFileItemPtr pItem(new CFileItem(strDir, album));
70     items.Add(pItem);
71   }
72
73   musicdatabase.Close();
74   return true;
75 }