diff --git a/src/com/limelight/Limelight.java b/src/com/limelight/Limelight.java index 1ba14a9..ba72123 100644 --- a/src/com/limelight/Limelight.java +++ b/src/com/limelight/Limelight.java @@ -10,7 +10,6 @@ import com.limelight.nvstream.NvConnectionListener; import com.limelight.nvstream.StreamConfiguration; import com.limelight.nvstream.av.video.VideoDecoderRenderer; import com.limelight.nvstream.http.NvHTTP; -import com.limelight.settings.PreferencesManager.Preferences.Resolution; import java.io.FileNotFoundException; import java.net.InetAddress; import java.net.SocketException; @@ -105,26 +104,6 @@ public class Limelight implements NvConnectionListener { } } - /* - * Creates a StreamConfiguration given a Resolution. - * Used to specify what kind of stream will be used. - */ - private static StreamConfiguration createConfiguration(Resolution res) { - switch(res) { - case RES_720_30: - return new StreamConfiguration(1280, 720, 30); - case RES_720_60: - return new StreamConfiguration(1280, 720, 60); - case RES_1080_30: - return new StreamConfiguration(1920, 1080, 30); - case RES_1080_60: - return new StreamConfiguration(1920, 1080, 60); - default: - // this should never happen, if it does we want the NPE to occur so we know something is wrong - return null; - } - } - /** * The entry point for the application.
* Does some initializations and then creates the main frame. @@ -184,19 +163,7 @@ public class Limelight implements NvConnectionListener { } else host = args[args.length-1]; - Resolution streamRes = Resolution.RES_720_30; - - if (resolution == 720 && refresh == 30) { - streamRes = Resolution.RES_720_30; - } else if (resolution == 720 && refresh == 60) { - streamRes = Resolution.RES_720_60; - } else if (resolution == 1080 && refresh == 30) { - streamRes = Resolution.RES_1080_30; - } else if (resolution == 1080 && refresh == 60) { - streamRes = Resolution.RES_1080_60; - } - - StreamConfiguration streamConfig = createConfiguration(streamRes); + StreamConfiguration streamConfig = new StreamConfiguration((resolution/9)*16, resolution, refresh); Limelight limelight = new Limelight(host); if (!pair) diff --git a/src/com/limelight/settings/PreferencesManager.java b/src/com/limelight/settings/PreferencesManager.java deleted file mode 100644 index 0e6b890..0000000 --- a/src/com/limelight/settings/PreferencesManager.java +++ /dev/null @@ -1,145 +0,0 @@ -package com.limelight.settings; - -import java.io.File; -import java.io.Serializable; - -/** - * Manages user preferences - * @author Diego Waxemberg - */ -public abstract class PreferencesManager { - private static Preferences cachedPreferences = null; - - /** - * Writes the specified preferences to the preferences file and updates the cached preferences. - * @param prefs the preferences to be written out - */ - public static void writePreferences(Preferences prefs) { - System.out.println("Writing Preferences"); - File prefFile = SettingsManager.getInstance().getSettingsFile(); - - SettingsManager.writeSettings(prefFile, prefs); - cachedPreferences = prefs; - } - - /** - * Reads the user preferences from the preferences file and caches them - * @return the user preferences - */ - public static Preferences getPreferences() { - if (cachedPreferences == null) { - System.out.println("Reading Preferences"); - File prefFile = SettingsManager.getInstance().getSettingsFile(); - Preferences savedPref = (Preferences)SettingsManager.readSettings(prefFile); - cachedPreferences = savedPref; - } - if (cachedPreferences == null) { - System.out.println("Unabled to get preferences, using default"); - cachedPreferences = new Preferences(); - writePreferences(cachedPreferences); - } - return cachedPreferences; - } - - /** - * Represents a user's preferences - * @author Diego Waxemberg - */ - public static class Preferences implements Serializable { - private static final long serialVersionUID = -5575445156215348048L; - - /** - * The possible resolutions for the stream - */ - public enum Resolution { RES_720_30("1280x720 (30Hz)"), RES_720_60("1280x720 (60Hz)"), - RES_1080_30("1920x1080 (30Hz)"), RES_1080_60("1920x1080 (60Hz)"); - public String name; - - /* - * Creates a new resolution with the specified name - */ - private Resolution(String name) { - this.name = name; - } - - /** - * Gets the specified name for this resolution - * @return the specified name of this resolution - */ - @Override - public String toString() { - return name; - } - }; - - private Resolution res; - private boolean fullscreen; - private String host; - - /** - * constructs default preferences: 720p 30Hz fullscreen - */ - public Preferences() { - this(Resolution.RES_720_30, true); - } - - /** - * Constructs a preference with the specified values - * @param res the Resolution to use - * @param fullscreen whether to start the stream in fullscreen - */ - public Preferences(Resolution res, boolean fullscreen) { - this.res = res; - this.fullscreen = fullscreen; - this.host = "GeForce PC host"; - } - - /** - * The saved host in this preference - * @return the last used host - */ - public String getHost() { - return host; - } - - /** - * Sets the host for this preference - * @param host the host to save - */ - public void setHost(String host) { - this.host = host; - } - - /** - * Gets the resolution in this preference - * @return the stored resolution - */ - public Resolution getResolution() { - return res; - } - - /** - * Gets whether to use fullscreen - * @return the stored fullscreen mode - */ - public boolean getFullscreen() { - return fullscreen; - } - - /** - * Sets the resolution in this preference - * @param res the resolution to save - */ - public void setResolution(Resolution res) { - this.res = res; - } - - /** - * Sets the fullscreen mode of this preference - * @param fullscreen whether to use fullscreen - */ - public void setFullscreen(boolean fullscreen) { - this.fullscreen = fullscreen; - } - } -} diff --git a/src/com/limelight/settings/SettingsManager.java b/src/com/limelight/settings/SettingsManager.java deleted file mode 100644 index 13dcaa1..0000000 --- a/src/com/limelight/settings/SettingsManager.java +++ /dev/null @@ -1,161 +0,0 @@ -package com.limelight.settings; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; -import java.io.Serializable; - -/** - * Manages the settings files - * @author Diego Waxemberg - */ -public class SettingsManager { - /** - * Directory to which settings will be saved - */ - public static String SETTINGS_DIR = System.getProperty("user.home") + File.separator + "Limelight"; - - //directory to hold limelight settings - private File settingsDir; - - private File settingsFile; - private File gamepadFile; - - private static SettingsManager manager; - - /* - * Constructs a manager that initializes the settings files - */ - private SettingsManager() { - settingsFile = new File(SETTINGS_DIR + File.separator + "settings.lime"); - gamepadFile = new File(SETTINGS_DIR + File.separator + "gamepad.lime"); - settingsDir = new File(SETTINGS_DIR); - } - - /** - * Gets an instance of the manager, this is a singleton - * @return the instance of the manager - */ - public static SettingsManager getInstance() { - if (manager == null) { - manager = new SettingsManager(); - } - return manager; - } - - /** - * Gets the gamepad preference file, if the file does not exist, it is created first - * @return the gamepad preference file - */ - public File getGamepadFile() { - if (!settingsDir.exists()) { - settingsDir.mkdirs(); - } - - if (!gamepadFile.exists()) { - try { - gamepadFile.createNewFile(); - } catch (IOException e) { - System.out.println("Unable to create gamepad file"); - return null; - } - } - - return gamepadFile; - } - - /** - * Gets the settings file (user preferences), if the file does not exist, it is created first - * @return the settings file - */ - public File getSettingsFile() { - if (!settingsDir.exists()) { - settingsDir.mkdirs(); - } - - if (!settingsFile.exists()) { - try { - settingsFile.createNewFile(); - } catch (IOException e) { - System.out.println("Unable to create setting file"); - return null; - } - } - - return settingsFile; - } - - /** - * Reads the specified file as a settings file and returns the result. - *
A settings file must be a java serialized object - * @param file the file to read in - * @return the settings represented in this file - */ - public static Object readSettings(File file) { - ObjectInputStream ois = null; - Object settings = null; - try { - ois = new ObjectInputStream(new FileInputStream(file)); - Object savedSettings = ois.readObject(); - settings = savedSettings; - } catch (ClassNotFoundException e) { - System.out.println("Saved file is not of the correct type. It might have been modified externally."); - - } catch (FileNotFoundException e) { - System.out.println("Could not find " + file.getName() + " settings file"); - e.printStackTrace(); - - } catch (IOException e) { - System.out.println("Could not read " + file.getName() + " settings file"); - e.printStackTrace(); - - } finally { - if (ois != null) { - try { - ois.close(); - - } catch (IOException e) { - System.out.println("Could not close gamepad settings file"); - e.printStackTrace(); - } - } - } - return settings; - } - - /** - * Writes the specified settings to the desired file - * @param file the file to write the settings to - * @param settings the settings to be written out - */ - public static void writeSettings(File file, Serializable settings) { - ObjectOutputStream ous = null; - - try { - ous = new ObjectOutputStream(new FileOutputStream(file)); - ous.writeObject(settings); - - } catch (FileNotFoundException e) { - System.out.println("Could not find " + file.getName() + " settings file"); - e.printStackTrace(); - - } catch (IOException e) { - System.out.println("Could not write to " + file.getName() + " settings file"); - e.printStackTrace(); - - } finally { - if (ous != null) { - try { - ous.close(); - } catch (IOException e) { - System.out.println("Unable to close " + file.getName() + " settings file"); - e.printStackTrace(); - } - } - } - } -}