Update of /cvsroot/javaamp/javaamp/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16107/src Modified Files: JavaAmp.java Language.java PreferencesDialog.java SimpleVisualization.java Visualization.java VisualizationBridge.java Log Message: Timer, other changes Index: Language.java =================================================================== RCS file: /cvsroot/javaamp/javaamp/src/Language.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Language.java 19 Mar 2006 10:17:40 -0000 1.1 +++ Language.java 25 Mar 2006 06:51:45 -0000 1.2 @@ -3,19 +3,133 @@ public class Language { + static Properties english; static Properties lang; + static { + english = new Properties(); + english.put("ABOVE_SPLINE", "Requested point above spline region"); + english.put("ACTIVATE_EQUALIZER", "Activate equalizer"); + english.put("ADD", "Add"); + english.put("ADD_SHORT", "+"); + english.put("ADD_DIRECTORY", "Add directory to playlist"); + english.put("ADD_FILES", "Add files to playlist"); + english.put("ADD_URL", "Add URL"); + english.put("ALL", "All"); + english.put("ALL_FILES", "All files"); + english.put("ALLOW_MULTIPLE", "Allow multiple instances"); + english.put("APPEARANCE", "Appearance"); + english.put("BELOW_SPLINE", "Requested point below spline region"); + english.put("CANCEL", "Cancel"); + english.put("CHECK_NEW", "Check for new versions at startup"); + english.put("CLOSE", "Close"); + english.put("CENTER", "Center"); + english.put("DELETE", "Delete"); + english.put("DIRECTORY", "Directory"); + english.put("ENABLE_PROXY", "Enable proxy"); + english.put("ENTER_URL", "Enter URL:"); + english.put("EQF_FILES", "EQF files"); + english.put("ERROR_LOADING_GRAPHICS", "Error loading one or more graphics"); + english.put("EXIT", "Exit"); + english.put("FILE", "File"); + english.put("FILE_INFORMATIONS", "File informations"); + english.put("FILE_LENGTH", "File length"); + english.put("FILE_SIZE", "File size"); + english.put("FIND_LANGUAGES", "Find more languages"); + english.put("FMUSIC_ERROR", "FMusic error"); + english.put("FSOUND_ERROR", "FSound error"); + english.put("GENERAL", "General"); + english.put("GENERAL_PREFERENCES", "General preferences"); + english.put("GENERATE_HTML", "Generate HTML list"); + english.put("INTERNET_SETTINGS", "Internet connection settings"); + english.put("INVERT", "Invert"); + english.put("JAVAAMP_ERROR", "JavaAmp: Error"); + english.put("JAVAAMP_WARNING", "JavaAmp: Warning"); + english.put("KEY", "Key"); + english.put("LANGUAGE", "Language:"); + english.put("LAST_MODIFIED", "Last modified"); + english.put("LEFT", "left"); + english.put("LOAD", "Load"); + english.put("LOAD_EQF", "Load EQF"); + english.put("LOAD_FROM_EQF", "From EQF-file"); + english.put("LOAD_INFORMATIONS_EXACTLY", "Load informations (exactly)"); + english.put("LOAD_INFORMATIONS_UNEXACTLY", "Load informations (unexactly)"); + english.put("LOAD_PLAYLIST", "Load playlist"); + english.put("LOADING_INFORMATIONS", "Loading file informations..."); + english.put("MISCELLANEOUS", "Miscellaneous"); + english.put("MISCELLANEOUS_SHORT", "Msc"); + english.put("M3U_FILES", "M3U files"); + english.put("M3U_AND_PLS_FILES", "M3U and PLS files"); + english.put("NEXT", "Next"); + english.put("NOT_DELETED", "File cannot be deleted"); + english.put("NOT_ENOUGH_POINTS_BUILD", "Not enough points to build spline"); + english.put("NOT_ENOUGH_POINTS_COMPUTE", "Not enough points to compute value"); + english.put("NOT_SAME_NUMBER", "Not same number of x and f(x)"); + english.put("NOTHING", "Nothing"); + english.put("OFF", "Off"); + english.put("ON", "On"); + english.put("ONE_FILE", "One file"); + english.put("ONLY_FILES", "Only files can be deleted"); + english.put("OPEN", "Open"); + english.put("OPEN_FILES", "Open file(s)"); + english.put("PAN", "Balance"); + english.put("PAUSE", "Pause"); + english.put("PHYSICALLY", "Physically"); + english.put("PLAY", "Play"); + english.put("PLAYLIST", "Playlist"); + english.put("PLS_FILES", "PLS files"); + english.put("PLUGINS", "Plug-ins"); + english.put("POSITION", "Position"); + english.put("PREAMPLIFIER", "Preamplifier"); + english.put("PREFERENCES", "Preferences"); + english.put("PRESET", "Preset"); + english.put("PRESETS", "Presets"); + english.put("PREVIOUS", "Previous"); + english.put("PROTOCOL", "Protocol"); + english.put("PROXY_HOST", "Proxy Host:"); + english.put("PROXY_PORT", "Proxy Port:"); + english.put("REMOVE", "Remove"); + english.put("REMOVE_SHORT", "-"); + english.put("REPEAT", "Repeat"); + english.put("RIGHT", "right"); + english.put("SAVE", "Save"); + english.put("SAVE_PLAYLIST", "Save playlist"); + english.put("SAVE_EQF", "Save EQF"); + english.put("SAVE_TO_EQF", "To EQF file"); + english.put("SCROLL_TITLE", "Scroll title in the taskbar"); + english.put("SELECT", "Select"); + english.put("SELECT_SHORT", "Sel"); + english.put("SELECTION", "Selection"); + english.put("SHOW_EQUALIZER", "Show equalizer"); + english.put("SHOW_JAVAAMP_IN", "Show JavaAmp in:"); + english.put("SHOW_PLAYLIST", "Show playlist"); + english.put("SHOW_SPLASH", "Show splash screen"); + english.put("SHUFFLE", "Shuffle"); + english.put("START_VISUALIZATION", "Start visualization"); + english.put("STOP", "Stop"); + english.put("SYSTRAY", "System tray"); + english.put("TASKBAR", "Taskbar"); + english.put("TITLES", "Titles"); + english.put("TRACK_ID", "Track ID"); + english.put("UNDEFINED", "Undefined"); + english.put("UNKNOWN", "Unknown"); + english.put("UNKNOWN_ERROR", "Unknown error"); + english.put("UNKNOWN_FILE_EXCEPTION", "Unknown file exception"); + english.put("UNABLE_OPEN_HTML", "Unable to open HTML file"); + english.put("URL", "URL"); + english.put("VALUE", "Value"); + english.put("VISUALIZATION", "Visualization"); + english.put("VOLUME", "Volume"); + } + public final static void loadLanguage(Class cls, String language) throws Exception { Properties p = new Properties(); - try { - p.load(new FileInputStream(new File(System.getProperty("user.dir"), - "/language/languages.ini"))); - } - catch(Exception e) { - p.load(cls.getResourceAsStream("/language/languages.ini")); - } + p.load(new FileInputStream(new File(System.getProperty("user.dir"), + "/language/languages.ini"))); int j = 0, k = -1; + if(language.equals("English")) + j++; for(int i = 0; i < p.keySet().toArray().length; i++) { if(p.keySet().toArray()[i].toString().equals(language)) { j++; @@ -27,35 +141,35 @@ } if(j < 1) throw new Exception("Language not defined"); + if(language.equals("English")) { + lang = english; + return; + } String file = p.get(language).toString(); p = new Properties(); - try { - p.load(new FileInputStream(new File(System.getProperty("user.dir"), - "/language/" + file))); - } - catch(Exception e) { - p.load(cls.getResourceAsStream("/language/" + file)); - } + p.load(new FileInputStream(new File(System.getProperty("user.dir"), + "/language/" + file))); lang = p; } - public final static String[] getAvailableLanguages(Class cls) - throws Exception { + public final static String[] getAvailableLanguages(Class cls) { Properties p = new Properties(); try { p.load(new FileInputStream(new File(System.getProperty("user.dir"), "/language/languages.ini"))); } catch(Exception e) { - p.load(cls.getResourceAsStream("/language/languages.ini")); + return new String[] { "English" }; } - String[] s = new String[p.keySet().toArray().length]; + String[] s = new String[p.keySet().toArray().length + 1]; + s[0] = "English"; for(int i = 0; i < p.keySet().toArray().length; i++) - s[i] = p.keySet().toArray()[i].toString(); + s[i + 1] = p.keySet().toArray()[i].toString(); return s; } public final static String get(String key) { - return lang.get(key).toString(); + String val = lang.get(key).toString(); + return val != null ? val : english.get(key).toString(); } } \ No newline at end of file Index: VisualizationBridge.java =================================================================== RCS file: /cvsroot/javaamp/javaamp/src/VisualizationBridge.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- VisualizationBridge.java 28 Feb 2006 13:21:20 -0000 1.5 +++ VisualizationBridge.java 25 Mar 2006 06:51:45 -0000 1.6 @@ -29,10 +29,20 @@ return; } Mouse.setGrabbed(true); - vis.init(owner.playDialog.splSpectrum.spec); + vis.init1(owner.playDialog.splSpectrum.spec); + vis.init(); + long time = System.nanoTime(); //if(fullscreen) { // TODO: Support for not fullscreen rendering while(!Display.isCloseRequested() && !Keyboard.isKeyDown(Keyboard.KEY_ESCAPE)) { + if(System.nanoTime() >= time + vis.delay) { + long tn = System.nanoTime(); + if(tn >= time + vis.delay) { + vis.timer(); + time -= vis.delay; + } + time = tn; + } vis.render(); Display.update(); } Index: PreferencesDialog.java =================================================================== RCS file: /cvsroot/javaamp/javaamp/src/PreferencesDialog.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- PreferencesDialog.java 22 Mar 2006 18:26:59 -0000 1.2 +++ PreferencesDialog.java 25 Mar 2006 06:51:45 -0000 1.3 @@ -133,7 +133,6 @@ lblLanguage = new JLabel(Language.get("LANGUAGE")); lblLanguage.setBounds(15, 15, lblLanguage.getFontMetrics( lblLanguage.getFont()).stringWidth(lblLanguage.getText()), 20); - panGenPref.add(lblLanguage); String[] langs = Language.getAvailableLanguages(owner.getClass()); Arrays.sort(langs); @@ -153,7 +152,6 @@ lblFindLanguages.setBounds(250, 15, lblFindLanguages.getFontMetrics( lblFindLanguages.getFont()).stringWidth(Language.get( "FIND_LANGUAGES")), 20); - panGenPref.add(lblFindLanguages); panInternet = new JPanel(null); panInternet.setBorder(BorderFactory.createTitledBorder( @@ -202,19 +200,23 @@ Language.get("GENERAL_PREFERENCES") + " - " + Language.get("PLAYLIST"))); panPlaylist.setBounds(170, 10, 395, 400); + panTitles = new JPanel(null); panTitles.setBorder(BorderFactory.createTitledBorder( Language.get("GENERAL_PREFERENCES") + " - " + Language.get("TITLES"))); panTitles.setBounds(170, 10, 395, 400); + panApperance = new JPanel(null); panApperance.setBorder(BorderFactory.createTitledBorder( Language.get("APPEARANCE"))); panApperance.setBounds(170, 10, 395, 400); + panPlugins = new JPanel(null); panPlugins.setBorder(BorderFactory.createTitledBorder( Language.get("PLUGINS"))); panPlugins.setBounds(170, 10, 395, 400); + panVisualization = new JPanel(null); panVisualization.setBorder(BorderFactory.createTitledBorder( Language.get("PLUGINS") + " - " + Index: JavaAmp.java =================================================================== RCS file: /cvsroot/javaamp/javaamp/src/JavaAmp.java,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- JavaAmp.java 19 Mar 2006 10:17:39 -0000 1.12 +++ JavaAmp.java 25 Mar 2006 06:51:45 -0000 1.13 @@ -24,7 +24,7 @@ public JavaAmp() throws Exception { try { - Language.loadLanguage(getClass(), "German"); + Language.loadLanguage(getClass(), "English"); } catch(Exception e) { String[] langs = Language.getAvailableLanguages(getClass()); @@ -97,7 +97,6 @@ } public final static void main(String[] args) { - Locale.setDefault(Locale.ENGLISH); Toolkit.getDefaultToolkit().setDynamicLayout(false); System.setProperty("sun.awt.noerasebackground", "true"); try { Index: Visualization.java =================================================================== RCS file: /cvsroot/javaamp/javaamp/src/Visualization.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- Visualization.java 26 Feb 2006 12:55:28 -0000 1.2 +++ Visualization.java 25 Mar 2006 06:51:45 -0000 1.3 @@ -1,8 +1,16 @@ import java.nio.*; -public interface Visualization { +public abstract class Visualization { - public void init(FloatBuffer spectrum); - public void render(); - public void stop(); + FloatBuffer spectrum; + long delay; + + protected final void init1(FloatBuffer spec) { + spectrum = spec; + } + + public void init() { } + public abstract void render(); + public void stop() { } + public void timer() { } } \ No newline at end of file Index: SimpleVisualization.java =================================================================== RCS file: /cvsroot/javaamp/javaamp/src/SimpleVisualization.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- SimpleVisualization.java 19 Mar 2006 10:17:39 -0000 1.5 +++ SimpleVisualization.java 25 Mar 2006 06:51:45 -0000 1.6 @@ -7,9 +7,8 @@ import static org.lwjgl.opengl.GL11.*; import static org.lwjgl.opengl.glu.GLU.*; -public class SimpleVisualization implements Visualization { +public class SimpleVisualization extends Visualization { - FloatBuffer spectrum; Random rnd; Spline splinex, spliney, splinez; Vector<float[]> points; @@ -17,9 +16,7 @@ float[] sum; float camx, camy, camz, pi; - public void init(FloatBuffer spec) { - spectrum = spec; - + public void init() { rnd = new Random(); points = new Vector<float[]>(); old = new float[300][30]; @@ -27,6 +24,7 @@ camx = rnd.nextFloat() * 60f; camy = rnd.nextFloat() * 20; camz = rnd.nextFloat() * 30f - 10f; + delay = (long)10E6; glClearColor(0, 0, 0, 1); glColor3f(1, 1, 1); @@ -37,6 +35,48 @@ } public void render() { + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + glLoadIdentity(); + + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + gluPerspective(60, 800f / 600f, 0.1f, 1000f); + gluLookAt(camx, camy, camz, camx, 0, 200, 0, 1, 0); + glMatrixMode(GL_MODELVIEW); + + glPointSize(2); + glBegin(GL_POINTS); + for(int i = 0; i < points.size(); i++) { + float[] t = points.get(i); + glColor3f(t[3] / 100f, t[3] / 100f, t[3] / 100f); + glVertex3f(t[0], t[1], t[2]); + } + glEnd(); + + for(int i = 0; i < 20; i++) { + glColor3f((float)i / 19f, 0, 0); + glBegin(GL11.GL_LINE_LOOP); + for(int j = 0; j < 180; j++) + glVertex3f(30 + (float)Math.cos(Math.toRadians(j * 2)) * 35f, + (float)Math.sin(Math.toRadians(j * 2)) * 35f, 350f - + sum[i] * 40); + glEnd(); + } + + for(int i = 0; i < 300; i++) { + glColor3f(0, 0.5f + (float)i / 598, 0); + glBegin(GL_LINE_STRIP); + glVertex3f(-2, 0, i); + for(int j = 0; j < 30; j++) + glVertex3f(j * 2, old[i][j] * 20, i); + glVertex3f(60, 0, i); + glEnd(); + } + + glFinish(); + } + + public void timer() { for(int i = 1; i < 300; i++) System.arraycopy(old[i], 0, old[i - 1], 0, 30); for(int i = 0; i < 30; i++) @@ -105,45 +145,5 @@ camz = (float)splinez.spline_value(pi); } } - - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - glLoadIdentity(); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - gluPerspective(60, 800f / 600f, 0.1f, 1000f); - gluLookAt(camx, camy, camz, camx, 0, 200, 0, 1, 0); - glMatrixMode(GL_MODELVIEW); - - glPointSize(2); - glBegin(GL_POINTS); - for(int i = 0; i < points.size(); i++) { - float[] t = points.get(i); - glColor3f(t[3] / 100f, t[3] / 100f, t[3] / 100f); - glVertex3f(t[0], t[1], t[2]); - } - glEnd(); - - for(int i = 0; i < 20; i++) { - glColor3f((float)i / 19f, 0, 0); - glBegin(GL11.GL_LINE_LOOP); - for(int j = 0; j < 180; j++) - glVertex3f(30 + (float)Math.cos(Math.toRadians(j * 2)) * 35f, - (float)Math.sin(Math.toRadians(j * 2)) * 35f, 350f - - sum[i] * 40); - glEnd(); - } - - for(int i = 0; i < 300; i++) { - glColor3f(0, 0.5f + (float)i / 598, 0); - glBegin(GL_LINE_STRIP); - glVertex3f(-2, 0, i); - for(int j = 0; j < 30; j++) - glVertex3f(j * 2, old[i][j] * 20, i); - glVertex3f(60, 0, i); - glEnd(); - } - - glFinish(); } } \ No newline at end of file |