package turgen.plugin;

import turgen.dtb.DOS2Binary;
import turgen.generator.PulseCrate;
import turgen.playlist.AbstractPlayListItem;


public interface BinaryConvertor {

    public static final int REC_MOD_CS_T2000=0;
    public static final int REC_MOD_CS_ST=1;
    public static final int REC_MOD_PL_KSOT2000=2;
    public static final int REC_MOD_PL_T2000F=3;
    public static final int REC_MOD_PL_BLIZZARD=4;
    public static final int REC_MOD_PL_TURBO_ROM=5;
    public static final int REC_MOD_PL_AST=6;
    public static int REC_MOD_PL_HARD_TURBO=7;
    public static int REC_MOD_UN_STANDARD=8;
    public static int REC_MOD_PL_LOWER_SILESIA_2000=9;

    public boolean acceptsBinary(DOS2Binary bf);
    public boolean acceptsRecorderModification(int recorderModification);
    public boolean exhaustsRecorderModification(int recorderModification);

    public int getPilotToneCount(DOS2Binary bf);

    public String getDescription();

    public AbstractPlayListItem getPlaylistItem(DOS2Binary bf,String inFile,String outFile,PulseCrate speed,int[] silenceList);

    public PulseCrate[] getSpeeds(int recorderModification);

    public boolean hasLoader();

    public boolean requiresPulses();


}
