Merge pull request #4594 from FernetMenta/paplayer
[xbmc.git] / xbmc / FileItemListModification.cpp
bloba092e57f8de01edab6aab3de1cd5df54a013b810
1 /*
2 * Copyright (C) 2013 Team XBMC
3 * http://xbmc.org
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.
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.
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/>.
21 #include "FileItemListModification.h"
23 #include "playlists/SmartPlaylistFileItemListModifier.h"
25 using namespace std;
27 CFileItemListModification::CFileItemListModification()
29 m_modifiers.insert(new CSmartPlaylistFileItemListModifier());
32 CFileItemListModification::~CFileItemListModification()
34 for (set<IFileItemListModifier*>::const_iterator modifier = m_modifiers.begin(); modifier != m_modifiers.end(); ++modifier)
35 delete *modifier;
37 m_modifiers.clear();
40 CFileItemListModification& CFileItemListModification::Get()
42 static CFileItemListModification instance;
43 return instance;
46 bool CFileItemListModification::CanModify(const CFileItemList &items) const
48 for (set<IFileItemListModifier*>::const_iterator modifier = m_modifiers.begin(); modifier != m_modifiers.end(); ++modifier)
50 if ((*modifier)->CanModify(items))
51 return true;
54 return false;
57 bool CFileItemListModification::Modify(CFileItemList &items) const
59 bool result = false;
60 for (set<IFileItemListModifier*>::const_iterator modifier = m_modifiers.begin(); modifier != m_modifiers.end(); ++modifier)
61 result |= (*modifier)->Modify(items);
63 return result;