Merge branch 'container_foldername'
[vuplus_xbmc] / xbmc / filesystem / VideoDatabaseDirectory / DirectoryNodeTvShowsOverview.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 "DirectoryNodeTvShowsOverview.h"
23 #include "FileItem.h"
24 #include "guilib/LocalizeStrings.h"
25
26 using namespace XFILE::VIDEODATABASEDIRECTORY;
27
28 Node TvShowChildren[] = {
29                           { NODE_TYPE_GENRE,         1, 135 },
30                           { NODE_TYPE_TITLE_TVSHOWS, 2, 369 },
31                           { NODE_TYPE_YEAR,          3, 562 },
32                           { NODE_TYPE_ACTOR,         4, 344 },
33                           { NODE_TYPE_STUDIO,        5, 20388 },
34                         };
35
36 CDirectoryNodeTvShowsOverview::CDirectoryNodeTvShowsOverview(const CStdString& strName, CDirectoryNode* pParent)
37   : CDirectoryNode(NODE_TYPE_TVSHOWS_OVERVIEW, strName, pParent)
38 {
39
40 }
41
42 NODE_TYPE CDirectoryNodeTvShowsOverview::GetChildType() const
43 {
44   if (GetName()=="0")
45     return NODE_TYPE_EPISODES;
46
47   for (unsigned int i = 0; i < sizeof(TvShowChildren) / sizeof(Node); ++i)
48     if (GetID() == TvShowChildren[i].id)
49       return TvShowChildren[i].node;
50
51   return NODE_TYPE_NONE;
52 }
53
54 CStdString CDirectoryNodeTvShowsOverview::GetLocalizedName() const
55 {
56   for (unsigned int i = 0; i < sizeof(TvShowChildren) / sizeof(Node); ++i)
57     if (GetID() == TvShowChildren[i].id)
58       return g_localizeStrings.Get(TvShowChildren[i].label);
59   return "";
60 }
61
62 bool CDirectoryNodeTvShowsOverview::GetContent(CFileItemList& items) const
63 {
64   for (unsigned int i = 0; i < sizeof(TvShowChildren) / sizeof(Node); ++i)
65   {
66     CFileItemPtr pItem(new CFileItem(g_localizeStrings.Get(TvShowChildren[i].label)));
67     CStdString strDir;
68     strDir.Format("%ld/", TvShowChildren[i].id);
69     pItem->m_strPath = BuildPath() + strDir;
70     pItem->m_bIsFolder = true;
71     pItem->SetCanQueue(false);
72     items.Add(pItem);
73   }
74
75   return true;
76 }