Merge pull request #25808 from CastagnaIT/fix_url_parse
[xbmc.git] / xbmc / music / ContextMenus.h
blobd96da332136687281b691061e18b62f400711a1b
1 /*
2 * Copyright (C) 2016-2018 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 #pragma once
11 #include "ContextMenuItem.h"
12 #include "media/MediaType.h"
14 #include <memory>
16 class CFileItem;
18 namespace CONTEXTMENU
21 struct CMusicInfo : CStaticContextMenuAction
23 explicit CMusicInfo(MediaType mediaType);
24 bool IsVisible(const CFileItem& item) const override;
25 bool Execute(const std::shared_ptr<CFileItem>& item) const override;
27 private:
28 const MediaType m_mediaType;
31 struct CAlbumInfo : CMusicInfo
33 CAlbumInfo() : CMusicInfo(MediaTypeAlbum) {}
36 struct CArtistInfo : CMusicInfo
38 CArtistInfo() : CMusicInfo(MediaTypeArtist) {}
41 struct CSongInfo : CMusicInfo
43 CSongInfo() : CMusicInfo(MediaTypeSong) {}
46 struct CMusicBrowse : CStaticContextMenuAction
48 CMusicBrowse() : CStaticContextMenuAction(37015) {} // Browse into
49 bool IsVisible(const CFileItem& item) const override;
50 bool Execute(const std::shared_ptr<CFileItem>& item) const override;
53 struct CMusicPlay : CStaticContextMenuAction
55 CMusicPlay() : CStaticContextMenuAction(208) {} // Play
56 bool IsVisible(const CFileItem& item) const override;
57 bool Execute(const std::shared_ptr<CFileItem>& item) const override;
60 struct CMusicPlayUsing : CStaticContextMenuAction
62 CMusicPlayUsing() : CStaticContextMenuAction(15213) {} // Play using...
63 bool IsVisible(const CFileItem& item) const override;
64 bool Execute(const std::shared_ptr<CFileItem>& _item) const override;
67 struct CMusicPlayNext : CStaticContextMenuAction
69 CMusicPlayNext() : CStaticContextMenuAction(10008) {} // Play next
70 bool IsVisible(const CFileItem& item) const override;
71 bool Execute(const std::shared_ptr<CFileItem>& item) const override;
74 struct CMusicQueue : CStaticContextMenuAction
76 CMusicQueue() : CStaticContextMenuAction(13347) {} // Queue item
77 bool IsVisible(const CFileItem& item) const override;
78 bool Execute(const std::shared_ptr<CFileItem>& item) const override;
81 } // namespace CONTEXTMENU