[Windows] Fix driver version detection of AMD RDNA+ GPU on Windows 10
[xbmc.git] / xbmc / music / MusicFileItemClassify.cpp
blob01ff4f6abe32e2b180cc488cb210b2c935fb5f97
1 /*
2 * Copyright (C) 2005-2020 Team Kodi
3 * This file is part of Kodi - https://kodi.tv
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 * See LICENSES/README.md for more information.
7 */
9 #include "music/MusicFileItemClassify.h"
11 #include "FileItem.h"
12 #include "ServiceBroker.h"
13 #include "utils/FileExtensionProvider.h"
14 #include "utils/StringUtils.h"
15 #include "utils/URIUtils.h"
17 namespace KODI::MUSIC
20 bool IsAudio(const CFileItem& item)
22 /* check preset mime type */
23 if (StringUtils::StartsWithNoCase(item.GetMimeType(), "audio/"))
24 return true;
26 if (item.HasMusicInfoTag())
27 return true;
29 if (item.HasVideoInfoTag())
30 return false;
32 if (item.HasPictureInfoTag())
33 return false;
35 if (item.HasGameInfoTag())
36 return false;
38 if (IsCDDA(item))
39 return true;
41 if (StringUtils::StartsWithNoCase(item.GetMimeType(), "application/"))
42 { /* check for some standard types */
43 std::string extension = item.GetMimeType().substr(12);
44 if (StringUtils::EqualsNoCase(extension, "ogg") ||
45 StringUtils::EqualsNoCase(extension, "mp4") || StringUtils::EqualsNoCase(extension, "mxf"))
46 return true;
49 //! @todo If the file is a zip file, ask the game clients if any support this
50 // file before assuming it is audio
52 return URIUtils::HasExtension(item.GetPath(),
53 CServiceBroker::GetFileExtensionProvider().GetMusicExtensions());
56 bool IsAudioBook(const CFileItem& item)
58 return item.IsType(".m4b") || item.IsType(".mka");
61 bool IsCDDA(const CFileItem& item)
63 return URIUtils::IsCDDA(item.GetPath());
66 bool IsCUESheet(const CFileItem& item)
68 return URIUtils::HasExtension(item.GetPath(), ".cue");
71 bool IsLyrics(const CFileItem& item)
73 return URIUtils::HasExtension(item.GetPath(), ".cdg|.lrc");
76 bool IsMusicDb(const CFileItem& item)
78 return URIUtils::IsMusicDb(item.GetPath());
81 } // namespace KODI::MUSIC