package 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 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) ois.readObject(); ois.close(); System.out.printf("\tLoaded %d frames\n", frames.size()); } frames = new ArrayList(); 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(); } } }