/*
* Computoser is a music-composition algorithm and a website to present the results
* Copyright (C) 2012-2014 Bozhidar Bozhanov
*
* Computoser is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* Computoser 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 Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with Computoser. If not, see <http://www.gnu.org/licenses/>.
*/
package com.music.model.prefs;
import com.music.model.Scale;
public class UserPreferences {
// set of instruments
private boolean classical;
private Ternary accompaniment = Ternary.OPTIONAL;
private Ternary drums = Ternary.OPTIONAL;
private Tempo tempo = Tempo.ANY;
private Ternary electronic = Ternary.OPTIONAL;
private Ternary dramatic = Ternary.OPTIONAL;
private Ternary simplePhrases = Ternary.OPTIONAL;
private Mood mood = Mood.ANY;
private Scale scale = null;
private Variation variation = Variation.ANY;
private boolean preferDissonance;
private int instrument = -1;
public boolean isClassical() {
return classical;
}
public void setClassical(boolean classical) {
this.classical = classical;
}
public Tempo getTempo() {
return tempo;
}
public void setTempo(Tempo tempo) {
this.tempo = tempo;
}
public Ternary getAccompaniment() {
return accompaniment;
}
public void setAccompaniment(Ternary accompaniment) {
this.accompaniment = accompaniment;
}
public Ternary getDrums() {
return drums;
}
public void setDrums(Ternary drums) {
this.drums = drums;
}
public Mood getMood() {
return mood;
}
public void setMood(Mood mood) {
this.mood = mood;
}
public Ternary getElectronic() {
return electronic;
}
public void setElectronic(Ternary electronic) {
this.electronic = electronic;
}
public Ternary getDramatic() {
return dramatic;
}
public void setDramatic(Ternary dramatic) {
this.dramatic = dramatic;
}
public Ternary getSimplePhrases() {
return simplePhrases;
}
public void setSimplePhrases(Ternary simpleMotif) {
this.simplePhrases = simpleMotif;
}
public boolean isPreferDissonance() {
return preferDissonance;
}
public void setPreferDissonance(boolean preferDissonance) {
this.preferDissonance = preferDissonance;
}
public int getInstrument() {
return instrument;
}
public void setInstrument(int instrument) {
this.instrument = instrument;
}
public Variation getVariation() {
return variation;
}
public void setVariation(Variation variation) {
this.variation = variation;
}
public Scale getScale() {
return scale;
}
public void setScale(Scale scale) {
this.scale = scale;
}
/**
* Returns whether there has been a change in preferences
* @return
*/
public boolean isDefault() {
return !classical && accompaniment == Ternary.OPTIONAL
&& drums == Ternary.OPTIONAL && mood == Mood.ANY
&& simplePhrases == Ternary.OPTIONAL
&& electronic == Ternary.OPTIONAL
&& variation == Variation.ANY
&& dramatic == Ternary.OPTIONAL && tempo == Tempo.ANY
&& !preferDissonance && instrument == -1 && scale == null;
}
}