2 * DemosceneMusic - TrackDerivative.java - Copyright © 2012 David Roden
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 package net.pterodactylus.demoscenemusic.data;
20 import net.pterodactylus.demoscenemusic.core.Core;
23 * A track derivative contains a version of a {@link Track}. Most notable
24 * different derivatives will be an original file (like a MOD or SID file) and a
25 * rendered audio file.
27 * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
29 public interface TrackDerivative extends Base {
32 * Returns the version of the derivative. Currently there are five used
33 * versions: “data.original,” “data.original.executable,” “audio.lossy,”
34 * “audio.lossless,” and “data.unknown” (for unknown derivatives).
36 * @return The version of the derivative
38 public String getVersion();
41 * Sets the version of the derivative.
44 * The version of the derivative
45 * @return This derivative
47 public TrackDerivative setVersion(String version);
50 * Returns the path where this derivative is stored. This path is relative
51 * to the {@link Core#getDataDirectory()}.
53 * @return The path of this derivative
55 public String getPath();
58 * Sets the path of this derivative.
61 * The new path of this derivative
62 * @return This derivative
64 public TrackDerivative setPath(String path);