rendered paste bodypackage com.cp.atheater;
import java.awt.image.BufferedImage;
import java.util.ArrayList;
import java.net.ServerSocket;
import java.net.Socket;
import java.io.*;
import com.cp.atheater.gif.GifDecoder;
public class Main
{
public static ArrayList<ASCIIFrame> frames;
public static void main(String[] args) throws Exception
{
int resolution = new Integer(args[1]);
String file = args[0];
System.out.println("Checking for converted movie...");
if (new File(file + ".ser").exists())
{
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file + ".ser"));
frames = (ArrayList<ASCIIFrame>) ois.readObject();
ois.close();
System.out.printf("\tLoaded %d frames\n", frames.size());
}
frames = new ArrayList<ASCIIFrame>();
Converter converter = new Converter();
GifDecoder decoder = new GifDecoder();
decoder.read(file);
System.out.println("Converting...");
for (int index = 0; index < decoder.getFrameCount(); index++)
{
BufferedImage image = decoder.getFrame(index);
int delay = decoder.getDelay(index);
System.out.printf("\tFrame %d - %dx%d, %dms\n", index, image.getHeight(), image.getWidth(), delay);
frames.add(new ASCIIFrame(converter.convert(image, resolution), delay));
}
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(file + ".ser"));
out.writeObject(frames);
out.close();
ServerSocket listener = new ServerSocket(31337);
System.out.println("Listening...");
while (true)
{
Socket socket = listener.accept();
System.out.printf("Now playing to %s\n", socket.getInetAddress().getHostAddress());
new Thread(new MoviePlayer(socket)).start();
}
}
}