1<?php
2/*
3 * vim:set softtabstop=4 shiftwidth=4 expandtab:
4 *
5 * LICENSE: GNU Affero General Public License, version 3 (AGPL-3.0-or-later)
6 * Copyright 2001 - 2020 Ampache.org
7 *
8 * This program is free software: you can redistribute it and/or modify
9 * it under the terms of the GNU Affero General Public License as published by
10 * the Free Software Foundation, either version 3 of the License, or
11 * (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 * GNU Affero General Public License for more details.
17 *
18 * You should have received a copy of the GNU Affero General Public License
19 * along with this program.  If not, see <https://www.gnu.org/licenses/>.
20 *
21 */
22
23namespace Ampache\Gui\Song;
24
25interface SongViewAdapterInterface
26{
27    public function getId(): int;
28
29    public function getRating(): string;
30
31    public function getAverageRating(): string;
32
33    public function getUserFlags(): string;
34
35    public function getWaveformUrl(): string;
36
37    public function canAutoplayNext(): bool;
38
39    public function canAppendNext(): bool;
40
41    public function getDirectplayButton(): string;
42
43    public function getAutoplayNextButton(): string;
44
45    public function getAppendNextButton(): string;
46
47    public function getCustomPlayActions(): string;
48
49    public function getTemporaryPlaylistButton(): string;
50
51    public function canPostShout(): bool;
52
53    public function getPostShoutUrl(): string;
54
55    public function getPostShoutIcon(): string;
56
57    public function canShare(): bool;
58
59    public function getShareUi(): string;
60
61    public function canDownload(): bool;
62
63    public function getExternalPlayUrl(): string;
64
65    public function getExternalPlayIcon(): string;
66
67    public function getDownloadUrl(): string;
68
69    public function getDownloadIcon(): string;
70
71    public function canDisplayStats(): bool;
72
73    public function getDisplayStatsUrl(): string;
74
75    public function getDisplayStatsIcon(): string;
76
77    public function isEditable(): bool;
78
79    public function getEditButtonTitle(): string;
80
81    public function getEditIcon(): string;
82
83    public function canToggleState(): bool;
84
85    public function getToggleStateButton(): string;
86
87    public function getDeletionUrl(): string;
88
89    public function getDeletionIcon(): string;
90
91    public function canBeDeleted(): bool;
92
93    public function getProperties(): array;
94}
95