From: David ‘Bombe’ Roden Date: Fri, 27 Jul 2012 05:51:19 +0000 (+0200) Subject: Add interface for track derivatives. X-Git-Url: https://git.pterodactylus.net/?a=commitdiff_plain;h=bf68ec3a8e29824239452d18adc311362fc49755;p=demoscenemusic.git Add interface for track derivatives. --- diff --git a/src/main/java/net/pterodactylus/demoscenemusic/data/TrackDerivative.java b/src/main/java/net/pterodactylus/demoscenemusic/data/TrackDerivative.java new file mode 100644 index 0000000..1a923f5 --- /dev/null +++ b/src/main/java/net/pterodactylus/demoscenemusic/data/TrackDerivative.java @@ -0,0 +1,66 @@ +/* + * DemosceneMusic - TrackDerivative.java - Copyright © 2012 David Roden + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package net.pterodactylus.demoscenemusic.data; + +import net.pterodactylus.demoscenemusic.core.Core; + +/** + * A track derivative contains a version of a {@link Track}. Most notable + * different derivatives will be an original file (like a MOD or SID file) and a + * rendered audio file. + * + * @author David ‘Bombe’ Roden + */ +public interface TrackDerivative extends Base { + + /** + * Returns the version of the derivative. Currently there are five used + * versions: “data.original,” “data.original.executable,” “audio.lossy,” + * “audio.lossless,” and “data.unknown” (for unknown derivatives). + * + * @return The version of the derivative + */ + public String getVersion(); + + /** + * Sets the version of the derivative. + * + * @param version + * The version of the derivative + * @return This derivative + */ + public TrackDerivative setVersion(String version); + + /** + * Returns the path where this derivative is stored. This path is relative + * to the {@link Core#getDataDirectory()}. + * + * @return The path of this derivative + */ + public String getPath(); + + /** + * Sets the path of this derivative. + * + * @param path + * The new path of this derivative + * @return This derivative + */ + public TrackDerivative setPath(String path); + +}