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