package com.xenoage.zong.musicxml.types;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;
import com.xenoage.utils.annotations.MaybeNull;
import com.xenoage.utils.xml.XmlReader;
import com.xenoage.utils.xml.XmlWriter;
import com.xenoage.zong.musicxml.util.IncompleteMusicXML;
/**
* MusicXML sound.
*
* @author Andreas Wenger
*/
@IncompleteMusicXML(missing = "midi-instrument,offset,dynamics,dacapo,segno,dalsegno,"
+ "coda,tocoda,divisions,forward-repeat,fine,time-only,pizzicato,pan,elevation,damper-pedal,"
+ "soft-pedal,sostenuto-pedal")
@AllArgsConstructor @Getter @Setter
public final class MxlSound {
public static final String elemName = "sound";
@MaybeNull private Float tempo;
/**
* Returns null, if no supported data was found.
*/
@MaybeNull public static MxlSound read(XmlReader reader) {
Float tempo = reader.getAttributeFloat("tempo");
if (tempo != null)
return new MxlSound(tempo);
else
return null;
}
public void write(XmlWriter writer) {
if (tempo != null) {
writer.writeElementStart(elemName);
writer.writeAttribute("tempo", tempo);
writer.writeElementEnd();
}
}
}