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.
9 #include "music/MusicFileItemClassify.h"
12 #include "ServiceBroker.h"
13 #include "utils/FileExtensionProvider.h"
14 #include "utils/StringUtils.h"
15 #include "utils/URIUtils.h"
20 bool IsAudio(const CFileItem
& item
)
22 /* check preset mime type */
23 if (StringUtils::StartsWithNoCase(item
.GetMimeType(), "audio/"))
26 if (item
.HasMusicInfoTag())
29 if (item
.HasVideoInfoTag())
32 if (item
.HasPictureInfoTag())
35 if (item
.HasGameInfoTag())
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"))
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