package vermilion;

/**
 * Used to transport a parameter change (or other event cue) from the composer
 * to the router.
 */
public class PlaybackEvent
{
    public String machineID;
    
    // We have this here because commands in patterns don't all store the
    // parameter name over and over again.
    public String parameterID;

    // This only stores a value, no parameterID, trackNum etc.
    public ParameterBase commandVal;

    public int trackNumber = 0;

    public PlaybackEvent(String machID, String parName, ParameterBase cmdValue, int trackNum)
    {
        machineID = machID;
        parameterID = parName;
        commandVal = cmdValue;
        trackNumber = trackNum;
    }

    @Override
    public String toString()
    {
        return machineID + "." + parameterID + " = " + commandVal.printValue();
    }
}
