From: WiESi <wi...@us...> - 2006-03-25 21:11:49
|
Update of /cvsroot/javaamp/javaamp/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17256/src Modified Files: JavaAmp.java Settings.java Log Message: Changes in settings Index: JavaAmp.java =================================================================== RCS file: /cvsroot/javaamp/javaamp/src/JavaAmp.java,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- JavaAmp.java 25 Mar 2006 10:35:19 -0000 1.14 +++ JavaAmp.java 25 Mar 2006 21:11:40 -0000 1.15 @@ -32,7 +32,7 @@ }); try { - Language.loadLanguage(getClass(), "English"); + Language.loadLanguage(getClass(), Settings.language); } catch(Exception e) { String[] langs = Language.getAvailableLanguages(getClass()); Index: Settings.java =================================================================== RCS file: /cvsroot/javaamp/javaamp/src/Settings.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Settings.java 25 Mar 2006 10:35:19 -0000 1.1 +++ Settings.java 25 Mar 2006 21:11:40 -0000 1.2 @@ -1,9 +1,34 @@ import java.awt.*; import java.io.*; import java.util.*; +import org.lwjgl.fmod3.*; public class Settings { + private final static String[] SPEAKER_MODES = new String[] { + "DOLBYDIGITAL", "HEADPHONES", "MONO", "QUAD", "STEREO", "SURROUND", + "DTS", "PROLOGIC2", "PROLOGIC2_INTERIOR" + }; + private final static int[] SPEAKER_MODES_VALS = new int[] { + FSound.FSOUND_SPEAKERMODE_DOLBYDIGITAL, + FSound.FSOUND_SPEAKERMODE_HEADPHONES, FSound.FSOUND_SPEAKERMODE_MONO, + FSound.FSOUND_SPEAKERMODE_QUAD, FSound.FSOUND_SPEAKERMODE_STEREO, + FSound.FSOUND_SPEAKERMODE_SURROUND, FSound.FSOUND_SPEAKERMODE_DTS, + FSound.FSOUND_SPEAKERMODE_PROLOGIC2, + FSound.FSOUND_SPEAKERMODE_PROLOGIC2_INTERIOR + }; + + private final static String[] MIXER_TYPES = new String[] { + "AUTODETECT", "QUALITY_AUTODETECT", "QUALITY_MMXP5", "QUALITY_MMXP6", + "MONO", "QUALITY_MONO", "MAX" + }; + private final static int[] MIXER_TYPES_VALS = new int[] { + FSound.FSOUND_MIXER_AUTODETECT, FSound.FSOUND_MIXER_QUALITY_AUTODETECT, + FSound.FSOUND_MIXER_QUALITY_MMXP5, FSound.FSOUND_MIXER_QUALITY_MMXP6, + FSound.FSOUND_MIXER_MONO, FSound.FSOUND_MIXER_QUALITY_MONO, + FSound.FSOUND_MIXER_MAX + }; + static String language; static String proxyHost; static int proxyPort; @@ -16,6 +41,13 @@ static boolean docking; static int dockingd; + static int mixrate; + static int maxchannels; + static int buffersize; + static int speakermode; + static int mixertype; + static String driver; + static boolean playDialogVisible; static int playDialogX; static int playDialogY; @@ -35,75 +67,73 @@ Properties p = new Properties(); p.load(new FileInputStream(new File(System.getProperty("user.dir"), "config.ini"))); - language = p.get("Language").toString(); - if(language == null) - language = "English"; - proxyHost = p.get("ProxyHost").toString(); - if(proxyHost == null) - proxyHost = ""; - String t = p.get("ProxyPort").toString(); - if(t == null) + language = getStringValue(p.get("Language"), "English"); + proxyHost = getStringValue(p.get("ProxyHost"), ""); + proxyPort = getIntValue(p.get("ProxyPort"), -1); + if(proxyPort < 0 || proxyPort > 65535) proxyPort = -1; - else - try { - proxyPort = Integer.parseInt(t); - if(proxyPort < 0 || proxyPort > 65535) - proxyPort = -1; - } - catch(Exception e) { - proxyPort = -1; - } - t = p.get("Splash").toString(); - if(t == null) - splash = true; - else - splash = Boolean.valueOf(t); - t = p.get("Multiple").toString(); - if(t == null) - multiple = true; - else - multiple = Boolean.valueOf(t); - t = p.get("Update").toString(); - if(t == null) - update = true; - else - update = Boolean.valueOf(t); - t = p.get("ShowInTaskbar").toString(); - if(t == null) - showInTaskbar = true; - else - showInTaskbar = Boolean.valueOf(t); - t = p.get("ShowInSysTray").toString(); - if(t == null) - showInSysTray = false; - else - showInSysTray = Boolean.valueOf(t); - t = p.get("ScrollTitle").toString(); - if(t == null) - scrollTitle = false; - else - scrollTitle = Boolean.valueOf(t); - t = p.get("Docking").toString(); - if(t == null) - docking = true; - else - docking = Boolean.valueOf(t); - t = p.get("DockingDistance").toString(); - if(t == null) - dockingd = 10; - else - try { - dockingd = Integer.parseInt(t); - if(dockingd < 0) - dockingd = 0; - else if(dockingd > 50) - dockingd = 50; - } - catch(Exception e) { - dockingd = 10; - } + splash = getBooleanValue(p.get("Splash"), true); + multiple = getBooleanValue(p.get("Multiple"), true); + update = getBooleanValue(p.get("Update"), true); + showInTaskbar = getBooleanValue(p.get("ShowInTaskbar"), true); + showInSysTray = getBooleanValue(p.get("ShowInSysTray"), false); + scrollTitle = getBooleanValue(p.get("ScrollTitle"), false); + docking = getBooleanValue(p.get("Docking"), true); + dockingd = getIntValue(p.get("DockingDistance"), 10); + if(dockingd < 0) + dockingd = 0; + else if(dockingd > 50) + dockingd = 50; + mixrate = getIntValue(p.get("MixRate"), 44100); + if(mixrate < 4000) + mixrate = 4000; + else if(mixrate > 65535) + mixrate = 65535; + maxchannels = getIntValue(p.get("MaxChannels"), 16); + if(maxchannels < 1) + maxchannels = 1; + else if(maxchannels > 1024) + maxchannels = 1024; + buffersize = getIntValue(p.get("BufferSize"), 400); + if(buffersize < 50) + buffersize = 50; + else if(buffersize > 5000) + buffersize = 5000; + + + int speakermode; // TODO + int mixertype; + String driver; + + + int x = (Toolkit.getDefaultToolkit().getScreenSize().width - 275) / + 2; + int y = (Toolkit.getDefaultToolkit().getScreenSize().height - 345) / + 2; + playDialogVisible = getBooleanValue(p.get("PlayDialogVisible"), + true); + playDialogX = getIntValue(p.get("PlayDialogX"), x); + playDialogY = getIntValue(p.get("PlayDialogY"), y); + equalizerDialogVisible = getBooleanValue(p.get( + "EqualizerDialogVisible"), true); + equalizerDialogX = getIntValue(p.get("EqualizerDialogX"), x); + equalizerDialogY = getIntValue(p.get("EqualizerDialogX"), y + 115); + playlistDialogVisible = getBooleanValue(p.get( + "PlaylistDialogVisible"), true); + playlistDialogX = getIntValue(p.get("PlaylistDialogX"), x); + playlistDialogY = getIntValue(p.get("PlaylistDialogY"), y + 230); + playlistDialogWidth = getIntValue(p.get("PlaylistDialogWidth"), + 275); + if(playlistDialogWidth < 275) + playlistDialogWidth = 275; + playlistDialogHeight = getIntValue(p.get("PlaylistDialogHeight"), + 115); + if(playlistDialogHeight < 115) + playlistDialogHeight = 115; + } catch(Exception e) { + e.printStackTrace(); language = "English"; proxyHost = ""; proxyPort = -1; @@ -137,9 +167,60 @@ } } + private final static boolean getBooleanValue(Object o, boolean def) { + try { + return Boolean.valueOf(o.toString()); + } + catch(Exception e) { + } + return def; + } + + private final static int getIntValue(Object o, int def) { + try { + return Integer.parseInt(o.toString()); + } + catch(Exception e) { + } + return def; + } + + private final static String getStringValue(Object o, String def) { + try { + return o.toString(); + } + catch(Exception e) { + } + return def; + } + + private final static String getStringByValue(int value, String[] keys, + int[] values, String def) { + try { + for(int i = 0; i < keys.length; i++) + if(values[i] == value) + return keys[i]; + } + catch(Exception e) { + } + return def; + } + + private final static int getValueByString(String key, String[] keys, + int[] values, int def) { + try { + for(int i = 0; i < keys.length; i++) + if(keys[i].equalsIgnoreCase(key)) + return values[i]; + } + catch(Exception e) { + } + return def; + } + public final static void storeSettings() throws Exception { Properties p = new Properties(); - p.put("Lanuage", language); + p.put("Language", language); p.put("ProxyHost", proxyHost); p.put("ProxyPort", "" + proxyPort); p.put("Splash", Boolean.toString(splash)); @@ -150,6 +231,26 @@ p.put("ScrollTitle", Boolean.toString(scrollTitle)); p.put("Docking", Boolean.toString(docking)); p.put("DockingDistance", "" + dockingd); + p.put("MixRate", "" + mixrate); + p.put("MaxChannels", "" + maxchannels); + p.put("BufferSize", "" + buffersize); + p.put("SpeakerMode", getStringByValue(speakermode, SPEAKER_MODES, + SPEAKER_MODES_VALS, "STEREO")); + p.put("MixerType", getStringByValue(mixertype, MIXER_TYPES, + MIXER_TYPES_VALS, "AUTODETECT")); + p.put("Driver", driver); + p.put("PlayDialogVisible", Boolean.toString(playDialogVisible)); + p.put("PlayDialogX", "" + playDialogX); + p.put("PlayDialogY", "" + playDialogY); + p.put("EqualizerDialogVisible", Boolean.toString( + equalizerDialogVisible)); + p.put("EqualizerDialogX", "" + equalizerDialogX); + p.put("EqualizerDialogY", "" + equalizerDialogY); + p.put("PlaylistDialogVisible", Boolean.toString(playlistDialogVisible)); + p.put("PlaylistDialogX", "" + playlistDialogX); + p.put("PlaylistDialogY", "" + playlistDialogY); + p.put("PlaylistDialogWidth", "" + playlistDialogWidth); + p.put("PlaylistDialogHeight", "" + playlistDialogHeight); p.store(new FileOutputStream(new File(System.getProperty("user.dir"), "config.ini")), null); } |