Sayonara Player
Loading...
Searching...
No Matches
PlayActionEventHandler.h
1/* PlayActionEventHandler.h, (Created on 28.02.2024) */
2
3/* Copyright (C) 2011-2024 Michael Lugmair
4 *
5 * This file is part of Sayonara Player
6 *
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16
17 * You should have received a copy of the GNU General Public License
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 */
20#ifndef SAYONARA_PLAYER_PLAYACTIONEVENTHANDLER_H
21#define SAYONARA_PLAYER_PLAYACTIONEVENTHANDLER_H
22
23#include <memory>
24
25class AbstractLibrary;
27namespace Library
28{
30 {
31 public:
32 enum class TrackSet :
33 uint8_t
34 {
35 All,
36 Selected
37 };
38
39 virtual ~PlayActionEventHandler() noexcept = default;
40
41 virtual void playNext(TrackSet trackSet) = 0;
42 virtual void append(TrackSet trackSet) = 0;
43 virtual void play(TrackSet trackSet) = 0;
44 virtual void playInNewTab(TrackSet trackSet) = 0;
45
46 static std::shared_ptr<PlayActionEventHandler>
47 create(LibraryPlaylistInteractor* playlistInteractor, AbstractLibrary* library);
48 };
49
50 using PlayActionEventHandlerPtr = std::shared_ptr<PlayActionEventHandler>;
51}
52
53#endif //SAYONARA_PLAYER_PLAYACTIONEVENTHANDLER_H
Definition: AbstractLibrary.h:41
Definition: LibraryPlaylistInteractor.h:34
Definition: PlayActionEventHandler.h:30