From 64515bdeb7e4b96a16b685e84ce6011387592c57 Mon Sep 17 00:00:00 2001 From: Daniel Aberger Date: Fri, 6 Nov 2015 18:15:26 +0100 Subject: [PATCH] initial commit --- src/com/ixab/ConfigHandling/Config.java | 32 +++++++++++++ .../ConfigHandling/ConfigFileHandler.java | 48 +++++++++++++++++++ src/com/ixab/GUI/ConfigMenu.form | 13 +++++ src/com/ixab/GUI/ConfigMenu.java | 4 ++ src/com/ixab/GUI/StreamChooserMenu.form | 13 +++++ src/com/ixab/GUI/StreamChooserMenu.java | 4 ++ src/com/ixab/Main.java | 28 +++++++++++ src/com/ixab/StreamHandling/StreamOpener.java | 39 +++++++++++++++ 8 files changed, 181 insertions(+) create mode 100644 src/com/ixab/ConfigHandling/Config.java create mode 100644 src/com/ixab/ConfigHandling/ConfigFileHandler.java create mode 100644 src/com/ixab/GUI/ConfigMenu.form create mode 100644 src/com/ixab/GUI/ConfigMenu.java create mode 100644 src/com/ixab/GUI/StreamChooserMenu.form create mode 100644 src/com/ixab/GUI/StreamChooserMenu.java create mode 100644 src/com/ixab/Main.java create mode 100644 src/com/ixab/StreamHandling/StreamOpener.java diff --git a/src/com/ixab/ConfigHandling/Config.java b/src/com/ixab/ConfigHandling/Config.java new file mode 100644 index 0000000..cf07b3b --- /dev/null +++ b/src/com/ixab/ConfigHandling/Config.java @@ -0,0 +1,32 @@ +package com.ixab.ConfigHandling; + +import java.io.Serializable; +import java.util.ArrayList; + +public class Config implements Serializable { + private String LSPath; + private ArrayList streamNames; + public Config() { + this.streamNames = new ArrayList(); + } + public void setLSPath(String path) { + this.LSPath = path; + } + public String getLSPath() { + return this.LSPath; + } + + public String getStreamName(int streamIndex) { + return this.streamNames.get(streamIndex-1); + } + + public void addStream(String streamName) { + this.streamNames.add(streamName); + } + public ArrayList getStreams() { + return this.streamNames; + } + public int getStreamCount() { + return this.streamNames.size(); + } +} diff --git a/src/com/ixab/ConfigHandling/ConfigFileHandler.java b/src/com/ixab/ConfigHandling/ConfigFileHandler.java new file mode 100644 index 0000000..9c33b9e --- /dev/null +++ b/src/com/ixab/ConfigHandling/ConfigFileHandler.java @@ -0,0 +1,48 @@ +package com.ixab.ConfigHandling; + +import java.io.*; + +public class ConfigFileHandler { + public static Config load(String path) { + Config c = null; + try + { + FileInputStream fileIn = new FileInputStream(path); + ObjectInputStream in = new ObjectInputStream(fileIn); + c = (Config) in.readObject(); + in.close(); + fileIn.close(); + }catch(IOException i) + { + i.printStackTrace(); + return null; + }catch(ClassNotFoundException e) + { + System.out.println("Config class not found"); + e.printStackTrace(); + return null; + } + return c; + } + public static void save(Config c, String path) { + try + { + FileOutputStream fileOut = + new FileOutputStream("config.dat"); + ObjectOutputStream out = new ObjectOutputStream(fileOut); + out.writeObject(c); + out.close(); + fileOut.close(); + System.out.printf("Config data is saved in config.dat"); + }catch(IOException i) + { + i.printStackTrace(); + } + } + public static Config load() { + return load("config.dat"); + } + public static void save(Config c) { + save(c, "config.dat"); + } +} diff --git a/src/com/ixab/GUI/ConfigMenu.form b/src/com/ixab/GUI/ConfigMenu.form new file mode 100644 index 0000000..2d5db54 --- /dev/null +++ b/src/com/ixab/GUI/ConfigMenu.form @@ -0,0 +1,13 @@ + +
+ + + + + + + + + + +
diff --git a/src/com/ixab/GUI/ConfigMenu.java b/src/com/ixab/GUI/ConfigMenu.java new file mode 100644 index 0000000..ba8820e --- /dev/null +++ b/src/com/ixab/GUI/ConfigMenu.java @@ -0,0 +1,4 @@ +package com.ixab.GUI; + +public class ConfigMenu { +} diff --git a/src/com/ixab/GUI/StreamChooserMenu.form b/src/com/ixab/GUI/StreamChooserMenu.form new file mode 100644 index 0000000..a90b69e --- /dev/null +++ b/src/com/ixab/GUI/StreamChooserMenu.form @@ -0,0 +1,13 @@ + +
+ + + + + + + + + + +
diff --git a/src/com/ixab/GUI/StreamChooserMenu.java b/src/com/ixab/GUI/StreamChooserMenu.java new file mode 100644 index 0000000..c0dc2b6 --- /dev/null +++ b/src/com/ixab/GUI/StreamChooserMenu.java @@ -0,0 +1,4 @@ +package com.ixab.GUI; + +public class StreamChooserMenu { +} diff --git a/src/com/ixab/Main.java b/src/com/ixab/Main.java new file mode 100644 index 0000000..de04810 --- /dev/null +++ b/src/com/ixab/Main.java @@ -0,0 +1,28 @@ +package com.ixab; + +import com.ixab.ConfigHandling.Config; +import com.ixab.ConfigHandling.ConfigFileHandler; +import com.ixab.StreamHandling.StreamOpener; + +public class Main { + private static boolean running = true; + public static void exitProgram() { + running = false; + } + public static void main(String[] args) { + while (running) { + // TODO: config dialog + // TODO: stream choosing + } + // begin test + //Config c = new Config(); + Config c = ConfigFileHandler.load(); + //c.addStream("cohhcarnage"); + //c.setLSPath("e:\\downloads\\livestreamer-v1.11.1\\livestreamer.exe"); + //ConfigFileHandler.save(c); + + StreamOpener so = new StreamOpener(c, 1, "best"); + so.start(); + // end test + } +} diff --git a/src/com/ixab/StreamHandling/StreamOpener.java b/src/com/ixab/StreamHandling/StreamOpener.java new file mode 100644 index 0000000..3891af8 --- /dev/null +++ b/src/com/ixab/StreamHandling/StreamOpener.java @@ -0,0 +1,39 @@ +package com.ixab.StreamHandling; + +import com.ixab.ConfigHandling.Config; + +import java.io.BufferedReader; +import java.io.InputStreamReader; + +public class StreamOpener extends Thread { + private Config c; + private int streamIndex; + private String quality; + public StreamOpener(Config c, int streamIndex, String quality) { + this.c = c; + this.streamIndex = streamIndex; + this.quality = quality; + } + public void run() { + try { + Runtime rt = Runtime.getRuntime(); + //Process pr = rt.exec("cmd /c dir"); + Process pr = rt.exec(c.getLSPath()+" twitch.tv/"+c.getStreamName(streamIndex)+" "+quality); + + BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream())); + + String line=null; + + while((line=input.readLine()) != null) { + System.out.println(line); + } + + int exitVal = pr.waitFor(); + System.out.println("Exited with error code " + exitVal); + + } catch(Exception e) { + System.out.println(e.toString()); + e.printStackTrace(); + } + } +}