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