/*
*      TG77Tune.java
*
*/


import java.io.*;

public class TG77Tune  {
    public String infile, outfile;
    boolean verbose = true;
    public TG77Tune() {
    }

    public void parseArgs(String[] args) {
        infile = args[0];
        outfile = args[1];
        int[] tuningArray = load(infile);
        byte[] byteArray = makeTuning(tuningArray);
        outfile = args[1];
        writeTuning(outfile, byteArray);
    }

    public int[] load(String inFileName) {
        File  tuneFile = new File(infile);
        int tuningArray[] = new int[128];
        int count = 0;
        BufferedReader in = null;
        try {
            in = new BufferedReader(new FileReader(inFileName));
            String line = "";
            while ((line = in.readLine()) != null && count < 128) {
                tuningArray[count] = Integer.parseInt(line);
                count++;
            }
            in.close();

        } catch (Exception e) {
            e.printStackTrace();
        }
        return tuningArray;
    }


    public byte[] makeTuning(int[] tuningArray) {
        byte byteArray[] = new byte[256];
        int value = tuningArray[2];
        for (int i = 0; i < 255; i = i + 2) {
            byteArray[ i ] = (byte)((tuningArray[i/2] /128) );
            byteArray[ i + 1 ] = (byte) ((tuningArray[i/2] % 128) );
        }
        return byteArray;
    }

    public void writeTuning(String fileName, byte[] byteArray) {
        try
        {
            char array1[] = { 0xF0,0x43,0x00,0x7a,0x02,0x24,0x4c,0x4d,0x20,0x20,0x38,0x31,0x30,0x31,0x4d,0x54 };
            char array2[] = { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 };
            char array3[] = {'R','e', 'v', 'e','l' ,'a', 't','i','o', 'n',0x00, 0xf7 };
            //char array3[] = {'T','E','S','T',' ',' ',' ',' ',' ',' ',0x00,0xF7};
            FileOutputStream out = new FileOutputStream(fileName);
            CharArrayWriter outChar = new CharArrayWriter( );
            for (int i = 0; i < array1.length; i++) {
                outChar.write(array1[i]);
            }
            for (int i = 0; i < array2.length; i++) {
                outChar.write(array2[i]);
            }
            for (int i = 0; i < byteArray.length; i++) {
                outChar.write(byteArray[i]);
            }
            for (int i = 0; i < array3.length; i++) {
                outChar.write(array3[i]);
            }
            String outString =  outChar.toString();
            for (int i= 0; i < outString.length(); i++) {
                out.write(outChar.toString().charAt(i));
            }
            out.close();
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        if (args.length < 2) {
            System.exit(1);
        }
        TG77Tune tuning = new TG77Tune();
        tuning.parseArgs(args);
    }


}


/*** TG77Tune.java ***/

