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 <cstdint>
24#include <memory>
25
26class AbstractLibrary;
28namespace Library
29{
31 {
32 public:
33 enum class TrackSet :
34 uint8_t
35 {
36 All,
37 Selected
38 };
39
40 virtual ~PlayActionEventHandler() noexcept = default;
41
42 virtual void playNext(TrackSet trackSet) = 0;
43 virtual void append(TrackSet trackSet) = 0;
44 virtual void play(TrackSet trackSet) = 0;
45 virtual void playInNewTab(TrackSet trackSet) = 0;
46
47 static std::shared_ptr<PlayActionEventHandler>
48 create(LibraryPlaylistInteractor* playlistInteractor, AbstractLibrary* library);
49 };
50
51 using PlayActionEventHandlerPtr = std::shared_ptr<PlayActionEventHandler>;
52}
53
54#endif //SAYONARA_PLAYER_PLAYACTIONEVENTHANDLER_H
Definition AbstractLibrary.h:41
Definition LibraryPlaylistInteractor.h:34
Definition PlayActionEventHandler.h:31