1 /* 2 * Copyright (C) 2013-2018 Team Kodi 3 * This file is part of Kodi - https://kodi.tv 4 * 5 * SPDX-License-Identifier: GPL-2.0-or-later 6 * See LICENSES/README.md for more information. 7 */ 8 9 #include "FileItemListModification.h" 10 11 #include "music/windows/MusicFileItemListModifier.h" 12 #include "playlists/SmartPlaylistFileItemListModifier.h" 13 #include "video/windows/VideoFileItemListModifier.h" 14 CFileItemListModification()15CFileItemListModification::CFileItemListModification() 16 { 17 m_modifiers.insert(new CSmartPlaylistFileItemListModifier()); 18 m_modifiers.insert(new CMusicFileItemListModifier()); 19 m_modifiers.insert(new CVideoFileItemListModifier()); 20 } 21 ~CFileItemListModification()22CFileItemListModification::~CFileItemListModification() 23 { 24 for (std::set<IFileItemListModifier*>::const_iterator modifier = m_modifiers.begin(); modifier != m_modifiers.end(); ++modifier) 25 delete *modifier; 26 27 m_modifiers.clear(); 28 } 29 GetInstance()30CFileItemListModification& CFileItemListModification::GetInstance() 31 { 32 static CFileItemListModification instance; 33 return instance; 34 } 35 CanModify(const CFileItemList & items) const36bool CFileItemListModification::CanModify(const CFileItemList &items) const 37 { 38 for (std::set<IFileItemListModifier*>::const_iterator modifier = m_modifiers.begin(); modifier != m_modifiers.end(); ++modifier) 39 { 40 if ((*modifier)->CanModify(items)) 41 return true; 42 } 43 44 return false; 45 } 46 Modify(CFileItemList & items) const47bool CFileItemListModification::Modify(CFileItemList &items) const 48 { 49 bool result = false; 50 for (std::set<IFileItemListModifier*>::const_iterator modifier = m_modifiers.begin(); modifier != m_modifiers.end(); ++modifier) 51 result |= (*modifier)->Modify(items); 52 53 return result; 54 } 55