Reworked how mp3s are being read and loaded int player
This commit is contained in:
@@ -0,0 +1,172 @@
|
||||
/**
|
||||
*
|
||||
* Project: Eight Track, File: Mp3UploadResults.java
|
||||
*
|
||||
* Copyright 2019-2019 Locusworks LLC.
|
||||
* All rights reserved. Federal copyright law prohibits unauthorized reproduction by
|
||||
* any means and imposes fines up to $25,000 for violation. No part of this material
|
||||
* may be reproduced, transmitted, transcribed, stored in a retrieval system, copied,
|
||||
* modified, duplicated, adapted or translated into another program language in any
|
||||
* form or by any means, electronic, mechanical, photocopying, recording, or
|
||||
* otherwise, without the prior written permission from Locusworks. Locusworks
|
||||
* affirms that Eight-Track(R) software and data is subject to United States
|
||||
* Government Purpose Rights. Contact Locusworks, 1313 Lawnview Drive
|
||||
* Forney TX 75126, (802) 488-0438, for commercial licensing opportunities.
|
||||
*
|
||||
* IN NO EVENT SHALL LOCUSWORKS BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL,
|
||||
* INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT
|
||||
* OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF LOCUSWORKS HAS BEEN
|
||||
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. NO RESPONSIBILITY IS ASSUMED BY
|
||||
* LOCUSWORKS FOR ITS USE, OR FOR ANY INFRINGEMENTS OF PATENTS OR OTHER RIGHTS OF
|
||||
* THIRD PARTIES RESULTING FROM ITS USE. LOCUSWORKS SPECIFICALLY DISCLAIMS ANY
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE AND
|
||||
* ACCOMPANYING DOCUMENTATION, IF ANY, PROVIDED HEREUNDER IS PROVIDED "AS
|
||||
* IS". LOCUSWORKS HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES,
|
||||
* ENHANCEMENTS, OR MODIFICATIONS.
|
||||
*/
|
||||
package net.locusworks.discord.eighttrack.audio;
|
||||
|
||||
import com.mpatric.mp3agic.ID3v2;
|
||||
|
||||
public class Mp3UploadResults {
|
||||
|
||||
private String genre;
|
||||
private String composure;
|
||||
private String album;
|
||||
private String trackNumber;
|
||||
private String discNumber;
|
||||
private String artist;
|
||||
private String title;
|
||||
private String releaseDate;
|
||||
|
||||
private byte[] rawData;
|
||||
private Throwable err;
|
||||
|
||||
public Mp3UploadResults(ID3v2 tag, byte[] data) {
|
||||
parseResults(tag);
|
||||
this.rawData = data;
|
||||
}
|
||||
|
||||
public Mp3UploadResults(Throwable err) {
|
||||
this.err = err;
|
||||
}
|
||||
|
||||
private void parseResults(ID3v2 metadata) {
|
||||
genre = metadata.getGenreDescription();
|
||||
composure = metadata.getComposer();
|
||||
album = metadata.getAlbum();
|
||||
trackNumber = metadata.getTrack();
|
||||
discNumber = metadata.getPartOfSet();
|
||||
artist = metadata.getArtist();
|
||||
title = metadata.getTitle();
|
||||
releaseDate = metadata.getDate();
|
||||
}
|
||||
|
||||
public final byte[] getData() {
|
||||
return this.rawData;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the genre
|
||||
*/
|
||||
public final String getGenre() {
|
||||
return genre;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the composure
|
||||
*/
|
||||
public final String getComposure() {
|
||||
return composure;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the album
|
||||
*/
|
||||
public final String getAlbum() {
|
||||
return album;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the trackNumber
|
||||
*/
|
||||
public final String getTrackNumber() {
|
||||
return trackNumber;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the discNumber
|
||||
*/
|
||||
public final String getDiscNumber() {
|
||||
return discNumber;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the artist
|
||||
*/
|
||||
public final String getArtist() {
|
||||
return artist;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the title
|
||||
*/
|
||||
public final String getTitle() {
|
||||
return title;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the releaseDate
|
||||
*/
|
||||
public final String getReleaseDate() {
|
||||
return releaseDate;
|
||||
}
|
||||
|
||||
public boolean validFile() {
|
||||
return (getTitle() != null && !getTitle().isEmpty() && getArtist() != null && !getArtist().trim().isEmpty()) || this.err != null;
|
||||
}
|
||||
|
||||
public boolean hasError() {
|
||||
return this.err != null;
|
||||
}
|
||||
|
||||
public Throwable getError() {
|
||||
return this.err;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
if (this.hasError()) {
|
||||
return "Unable to parse file due to exception: " + this.err.getMessage();
|
||||
}
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
if (getTitle() != null)
|
||||
sb.append(String.format("%-10s: %s%n", "Title", getTitle()));
|
||||
|
||||
if (getArtist() != null)
|
||||
sb.append(String.format("%-10s: %s%n", "Artist", getArtist()));
|
||||
|
||||
if (getAlbum() != null)
|
||||
sb.append(String.format("%-10s: %s%n", "Album", getAlbum()));
|
||||
|
||||
if (getTrackNumber() != null)
|
||||
sb.append(String.format("%-10s: %s%n", "Track", getTrackNumber()));
|
||||
|
||||
if (getDiscNumber() != null)
|
||||
sb.append(String.format("%-10s: %s%n", "Disc", getDiscNumber()));
|
||||
|
||||
if (getReleaseDate() != null)
|
||||
sb.append(String.format("%-10s: %s%n", "Year", getReleaseDate()));
|
||||
|
||||
if (getGenre() != null)
|
||||
sb.append(String.format("%-10s: %s%n", "Genre", getGenre()));
|
||||
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
public void clear() {
|
||||
rawData = new byte[0];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user