package model.audio;
public class GainMetaData {
/**
* the default gain used by mp3gain
*/
public final static int DEFAULT_GAIN = 89;
/**
* the target gain
*/
private int targetGain;
/**
* the recommended track gain change
*/
private double recommendedTrackGainChange;
/**
* the recommended album gain change
*/
private double recommendedAlbumGainChange;
/**
* the recommendd track volume change
*/
private double recommendedTrackVolumeChange;
/**
* the recommended album volume change
*/
private double recommendedAlbumVolumeChange;
/**
* the file path
*/
private String filePath;
/**
* Constructor
*
* @param filePath
* the filepath
* @param targetGain
* the target gain
*/
public GainMetaData(String filePath, int targetGain) {
this.filePath = filePath;
this.targetGain = targetGain;
}
public String getFilePath() {
return filePath;
}
public void setFilePath(String filePath) {
this.filePath = filePath;
}
public void setDefaultGain(int defaultGain) {
this.targetGain = defaultGain;
}
public void setRecommendedTrackGainChange(double recommendedTrackGainChange) {
this.recommendedTrackGainChange = recommendedTrackGainChange;
}
public void setRecommendedAlbumGainChange(double recommendedAlbumGainChange) {
this.recommendedAlbumGainChange = recommendedAlbumGainChange;
}
public void setRecommendedTrackVolumeChange(double recommendedTrackVolumeChange) {
this.recommendedTrackVolumeChange = recommendedTrackVolumeChange;
}
public void setRecommendedAlbumVolumeChange(double recommendedAlbumVolumeChange) {
this.recommendedAlbumVolumeChange = recommendedAlbumVolumeChange;
}
public double getRecommendedTrackGainChange() {
return recommendedTrackGainChange;
}
public double getRecommendedAlbumGainChange() {
return recommendedAlbumGainChange;
}
public double getRecommendedTrackVolumeChange() {
return recommendedTrackVolumeChange;
}
public double getRecommendedAlbumVolumeChange() {
return recommendedAlbumVolumeChange;
}
// (target-89) + (gain change * 1.5)
public double getTrackGainChange() {
return (targetGain - DEFAULT_GAIN) + (recommendedTrackGainChange * 1.5);
}
public double getAlbumGainChange() {
return (targetGain - DEFAULT_GAIN) + (recommendedAlbumGainChange * 1.5);
}
/**
* gets the track volume calculated as 89 - recommended track volume change
*
* @return the track volume
*/
public double getTrackVolume() {
return DEFAULT_GAIN - this.recommendedTrackVolumeChange;
}
/**
* gets the album volume calculated as 89 - recommended album volume change
*
* @return the album volume
*/
public double getAlbumVolume() {
return DEFAULT_GAIN - this.recommendedAlbumVolumeChange;
}
}