Christian Heimke commited on 2011-07-15 09:23:59
Showing 9 changed files, with 95 additions and 25 deletions.
... | ... |
@@ -3,6 +3,11 @@ Copyright (C) 2004-2008: Stefan Schuermans <stefan@schuermans.info> |
3 | 3 |
Copyleft: GNU public license - http://www.gnu.org/copyleft/gpl.html |
4 | 4 |
a blinkenarea.org project |
5 | 5 |
|
6 |
+version 1.3.4 date 2008-09-14 |
|
7 |
+----------------------------- |
|
8 |
+ - also setting aspect when resizing to a known format |
|
9 |
+ - support for Blinkenlights Stereoscope formats |
|
10 |
+ |
|
6 | 11 |
version 1.3.3 date 2008-08-10 |
7 | 12 |
----------------------------- |
8 | 13 |
- new release due to new BlinkenLib 0.1.2 (bug in resizing) |
... | ... |
@@ -1,5 +1,5 @@ |
1 | 1 |
# BlinkenLightsInteractiveMovieProgram |
2 |
-# version 1.3.3 date 2008-08-10 |
|
2 |
+# version 1.3.4 date 2008-09-14 |
|
3 | 3 |
# Copyright (C) 2004-2008: Stefan Schuermans <stefan@schuermans.info> |
4 | 4 |
# Copyleft: GNU public license - http://www.gnu.org/copyleft/gpl.html |
5 | 5 |
# a blinkenarea.org project |
... | ... |
@@ -1,5 +1,5 @@ |
1 | 1 |
/* BlinkenLightsInteractiveMovieProgram |
2 |
- * version 1.3.3 date 2008-08-10 |
|
2 |
+ * version 1.3.4 date 2008-09-14 |
|
3 | 3 |
* Copyright (C) 2004-2008: Stefan Schuermans <stefan@schuermans.info> |
4 | 4 |
* Copyleft: GNU public license - http://www.gnu.org/copyleft/gpl.html |
5 | 5 |
* a blinkenarea.org project |
... | ... |
@@ -28,20 +28,25 @@ public class Blimp extends JApplet |
28 | 28 |
//configuration constants |
29 | 29 |
static final int constColorCntX = 2, constColorCntY = 4; |
30 | 30 |
static final int constColorCnt = constColorCntX * constColorCntY; |
31 |
- static final int defHeight = 8, defWidth = 8, defChannels = 1, defMaxval = 127, defDuration = 100; |
|
31 |
+ static final int defHeight = 12, defWidth = 30, defChannels = 1, defMaxval = 15, defDuration = 100; |
|
32 |
+ static final double defAspect = 0.65; |
|
32 | 33 |
static final int ZoomAspectResolution = 30; |
33 | 34 |
|
34 | 35 |
//known formats |
35 | 36 |
static final String[] knownFormats = |
36 | 37 |
{ |
37 |
- "Blinkenlights (18x8-1/2)", |
|
38 |
- "Blinkenlights Arcade (26x20-1/16)", |
|
39 |
- "Blinkenlights reloaded (18x8-1/16)", |
|
40 |
- "bluebox (98x7-1/128)", |
|
41 |
- "PixelCurtain (18x8-3/256)", |
|
42 |
- "TROIA big walls (104x32-1/128)", |
|
43 |
- "TROIA ceiling (104x80-1/128)", |
|
44 |
- "TROIA small walls (80x32-1/128)", |
|
38 |
+ "Blinkenlights (18x8-1/2) [a=0.55]", |
|
39 |
+ "Blinkenlights Arcade (26x20-1/16) [a=0.5]", |
|
40 |
+ "Blinkenlights reloaded (18x8-1/16) [a=0.55]", |
|
41 |
+ "Blinkenlights Stereoscope West upper (22x8-1/16) [a=0.65]", |
|
42 |
+ "Blinkenlights Stereoscope West lower (22x7-1/16) [a=0.65]", |
|
43 |
+ "Blinkenlights Stereoscope East upper (30x12-1/16) [a=0.65]", |
|
44 |
+ "Blinkenlights Stereoscope East lower (30x9-1/16) [a=0.65]", |
|
45 |
+ "bluebox (98x7-1/128) [a=0.32]", |
|
46 |
+ "ColorCurtain (18x8-3/256) [a=1.0]", |
|
47 |
+ "TROIA big walls (104x32-1/128) [a=1.0]", |
|
48 |
+ "TROIA ceiling (104x80-1/128) [a=1.0]", |
|
49 |
+ "TROIA small walls (80x32-1/128) [a=1.0]", |
|
45 | 50 |
}; |
46 | 51 |
|
47 | 52 |
//known sizes |
... | ... |
@@ -49,6 +54,10 @@ public class Blimp extends JApplet |
49 | 54 |
{ |
50 | 55 |
"Blinkenlights (18x8)", |
51 | 56 |
"Blinkenlights Arcade (26x20)", |
57 |
+ "Blinkenlights Stereoscope West upper (22x8)", |
|
58 |
+ "Blinkenlights Stereoscope West lower (22x7)", |
|
59 |
+ "Blinkenlights Stereoscope East upper (30x12)", |
|
60 |
+ "Blinkenlights Stereoscope East lower (30x9)", |
|
52 | 61 |
"bluebox (98x7)", |
53 | 62 |
"TROIA big walls (104x32)", |
54 | 63 |
"TROIA ceiling (104x80)", |
... | ... |
@@ -201,7 +210,7 @@ public class Blimp extends JApplet |
201 | 210 |
labelStatus.setText( "new movie..." ); |
202 | 211 |
curFile = null; |
203 | 212 |
curMovie = new BlinkenMovie( defHeight, defWidth, defChannels, defMaxval ); |
204 |
- curMovie.insertInfo( 0, "creator", "Blimp (version 1.3.3 date 2008-08-10)" ); |
|
213 |
+ curMovie.insertInfo( 0, "creator", "Blimp (version 1.3.4 date 2008-09-14)" ); |
|
205 | 214 |
curMovie.insertFrame( 0, new BlinkenFrame( defHeight, defWidth, defChannels, defMaxval, defDuration ) ); |
206 | 215 |
curMovieChanged = false; |
207 | 216 |
|
... | ... |
@@ -437,6 +446,19 @@ public class Blimp extends JApplet |
437 | 446 |
return ""; |
438 | 447 |
} |
439 | 448 |
|
449 |
+ //get aspect from square bracket in string |
|
450 |
+ private String getAspect( String str ) |
|
451 |
+ { |
|
452 |
+ Pattern pattern; |
|
453 |
+ Matcher matcher; |
|
454 |
+ |
|
455 |
+ pattern = Pattern.compile( "^.*\\[([^\\[\\]]*)\\]$" ); |
|
456 |
+ if( (matcher = pattern.matcher( str )).find( ) ) |
|
457 |
+ return matcher.group( 1 ); |
|
458 |
+ else |
|
459 |
+ return ""; |
|
460 |
+ } |
|
461 |
+ |
|
440 | 462 |
//resize to format |
441 | 463 |
private boolean actionEditResizeToFormat( String format ) |
442 | 464 |
{ |
... | ... |
@@ -466,6 +488,36 @@ public class Blimp extends JApplet |
466 | 488 |
return true; |
467 | 489 |
} |
468 | 490 |
|
491 |
+ //set aspect (in context of resizing movie) |
|
492 |
+ private boolean actionEditResizeSetAspect( String aspect ) |
|
493 |
+ { |
|
494 |
+ Pattern aspectPattern; |
|
495 |
+ Matcher aspectMatcher; |
|
496 |
+ double aspectValue; |
|
497 |
+ |
|
498 |
+ //initialize aspect pattern |
|
499 |
+ aspectPattern = Pattern.compile( "^a=([0-9.]+)$" ); |
|
500 |
+ |
|
501 |
+ //check aspect |
|
502 |
+ if( ! (aspectMatcher = aspectPattern.matcher( aspect )).find( ) ) //abort and return error if aspect not valid |
|
503 |
+ return false; |
|
504 |
+ |
|
505 |
+ //parse aspect if specified |
|
506 |
+ try |
|
507 |
+ { |
|
508 |
+ aspectValue = Double.parseDouble( aspectMatcher.group( 1 ) ); |
|
509 |
+ } |
|
510 |
+ catch( NumberFormatException e ) |
|
511 |
+ { |
|
512 |
+ return false; |
|
513 |
+ } |
|
514 |
+ |
|
515 |
+ //set new aspect |
|
516 |
+ sliderAspect.setValue( aspectZoomToSliderValue( aspectValue ) ); |
|
517 |
+ |
|
518 |
+ return true; |
|
519 |
+ } |
|
520 |
+ |
|
469 | 521 |
//"Edit Resize Movie user defined format..." was chosen from menu |
470 | 522 |
private void actionEditResizeUser( ) |
471 | 523 |
{ |
... | ... |
@@ -1030,7 +1082,7 @@ public class Blimp extends JApplet |
1030 | 1082 |
{ |
1031 | 1083 |
JOptionPane.showMessageDialog( dialogParent, |
1032 | 1084 |
"BlinkenLightsInteractiveMovieProgram\n" + |
1033 |
- "version 1.3.3 date 2008-08-10\n" + |
|
1085 |
+ "version 1.3.4 date 2008-09-14\n" + |
|
1034 | 1086 |
"Copyright (C) 2004-2008: Stefan Schuermans <stefan@schuermans.info>\n" + |
1035 | 1087 |
"Copyleft: GNU public license - http://www.gnu.org/copyleft/gpl.html\n" + |
1036 | 1088 |
"a blinkenarea.org project", |
... | ... |
@@ -1144,6 +1196,18 @@ public class Blimp extends JApplet |
1144 | 1196 |
menuFrameSelDelete.setEnabled( valid ); |
1145 | 1197 |
} |
1146 | 1198 |
|
1199 |
+ //convert aspect or zoom to aspect or zoom slider value |
|
1200 |
+ private int aspectZoomToSliderValue( double aspectZoom ) |
|
1201 |
+ { |
|
1202 |
+ double value = Math.log( aspectZoom ) / Math.log( 2.0 ); |
|
1203 |
+ value *= (double)ZoomAspectResolution; |
|
1204 |
+ if( value >= 0.0 ) |
|
1205 |
+ value += 0.5; |
|
1206 |
+ else |
|
1207 |
+ value -= 0.5; |
|
1208 |
+ return (int)value; |
|
1209 |
+ } |
|
1210 |
+ |
|
1147 | 1211 |
//set zoom and aspect value of frame |
1148 | 1212 |
private void setZoomAspect( ) |
1149 | 1213 |
{ |
... | ... |
@@ -1202,7 +1266,7 @@ public class Blimp extends JApplet |
1202 | 1266 |
|
1203 | 1267 |
//set new zoom value without triggering events |
1204 | 1268 |
noRecurseZoomAspect = true; |
1205 |
- sliderZoom.setValue( (int)((Math.log( zoom ) / Math.log( 2.0 )) * (double)ZoomAspectResolution + 0.5) ); |
|
1269 |
+ sliderZoom.setValue( aspectZoomToSliderValue( zoom ) ); |
|
1206 | 1270 |
noRecurseZoomAspect = false; |
1207 | 1271 |
|
1208 | 1272 |
//set zoom and aspect value of frame |
... | ... |
@@ -1270,7 +1334,7 @@ public class Blimp extends JApplet |
1270 | 1334 |
|
1271 | 1335 |
//set new aspect value without triggering events |
1272 | 1336 |
noRecurseZoomAspect = true; |
1273 |
- sliderAspect.setValue( (int)((Math.log( aspect ) / Math.log( 2.0 )) * (double)ZoomAspectResolution + 0.5) ); |
|
1337 |
+ sliderAspect.setValue( aspectZoomToSliderValue( aspect ) ); |
|
1274 | 1338 |
noRecurseZoomAspect = false; |
1275 | 1339 |
|
1276 | 1340 |
//set zoom and aspect value of frame |
... | ... |
@@ -1870,6 +1934,7 @@ public class Blimp extends JApplet |
1870 | 1934 |
if( i < menuEditResizeKnown.length ) |
1871 | 1935 |
{ |
1872 | 1936 |
actionEditResizeToFormat( getFormatOrSize( knownFormats[i] ) ); |
1937 |
+ actionEditResizeSetAspect( getAspect( knownFormats[i] ) ); |
|
1873 | 1938 |
break; |
1874 | 1939 |
} |
1875 | 1940 |
|
... | ... |
@@ -2013,7 +2078,7 @@ public class Blimp extends JApplet |
2013 | 2078 |
//initialize current movie, frame |
2014 | 2079 |
curDir = new File( "." ); |
2015 | 2080 |
curMovie = new BlinkenMovie( defHeight, defWidth, defChannels, defMaxval ); |
2016 |
- curMovie.insertInfo( 0, "creator", "Blimp (version 1.3.3 date 2008-08-10)" ); |
|
2081 |
+ curMovie.insertInfo( 0, "creator", "Blimp (version 1.3.4 date 2008-09-14)" ); |
|
2017 | 2082 |
curMovie.insertFrame( 0, new BlinkenFrame( defHeight, defWidth, defChannels, defMaxval, defDuration ) ); |
2018 | 2083 |
curFrame = null; |
2019 | 2084 |
|
... | ... |
@@ -2308,7 +2373,7 @@ public class Blimp extends JApplet |
2308 | 2373 |
panelAspectName.add( labelAspectName ); |
2309 | 2374 |
labelAspect = new JLabel( "", JLabel.CENTER ); |
2310 | 2375 |
panelAspectName.add( labelAspect ); |
2311 |
- sliderAspect = new JSlider( JSlider.VERTICAL, -3 * ZoomAspectResolution, 3 * ZoomAspectResolution, 0 ); |
|
2376 |
+ sliderAspect = new JSlider( JSlider.VERTICAL, -3 * ZoomAspectResolution, 3 * ZoomAspectResolution, aspectZoomToSliderValue( defAspect ) ); |
|
2312 | 2377 |
sliderAspect.setSnapToTicks( true ); |
2313 | 2378 |
sliderAspect.addChangeListener( this ); |
2314 | 2379 |
sliderAspect.setToolTipText( "aspect" ); |
... | ... |
@@ -2668,7 +2733,7 @@ public class Blimp extends JApplet |
2668 | 2733 |
|
2669 | 2734 |
//running as command line tool |
2670 | 2735 |
System.out.println( "BlinkenLightsInteractiveMovieProgram\n" + |
2671 |
- "version 1.3.3 date 2008-08-10\n" + |
|
2736 |
+ "version 1.3.4 date 2008-09-14\n" + |
|
2672 | 2737 |
"Copyright (C) 2004-2008: Stefan Schuermans <stefan@schuermans.info>\n" + |
2673 | 2738 |
"Copyleft: GNU public license - http://www.gnu.org/copyleft/gpl.html\n" + |
2674 | 2739 |
"a blinkenarea.org project\n" ); |
... | ... |
@@ -2679,7 +2744,7 @@ public class Blimp extends JApplet |
2679 | 2744 |
|
2680 | 2745 |
//get initial movie |
2681 | 2746 |
movie = new BlinkenMovie( defHeight, defWidth, defChannels, defMaxval ); |
2682 |
- movie.insertInfo( 0, "creator", "Blimp (version 1.3.3 date 2008-08-10)" ); |
|
2747 |
+ movie.insertInfo( 0, "creator", "Blimp (version 1.3.4 date 2008-09-14)" ); |
|
2683 | 2748 |
movie.insertFrame( 0, new BlinkenFrame( defHeight, defWidth, defChannels, defMaxval, defDuration ) ); |
2684 | 2749 |
|
2685 | 2750 |
//process parameters |
... | ... |
@@ -1,5 +1,5 @@ |
1 | 1 |
/* BlinkenLightsInteractiveMovieProgram |
2 |
- * version 1.3.3 date 2008-08-10 |
|
2 |
+ * version 1.3.4 date 2008-09-14 |
|
3 | 3 |
* Copyright (C) 2004-2008: Stefan Schuermans <stefan@schuermans.info> |
4 | 4 |
* Copyleft: GNU public license - http://www.gnu.org/copyleft/gpl.html |
5 | 5 |
* a blinkenarea.org project |
... | ... |
@@ -1,5 +1,5 @@ |
1 | 1 |
/* BlinkenLightsInteractiveMovieProgram |
2 |
- * version 1.3.3 date 2008-08-10 |
|
2 |
+ * version 1.3.4 date 2008-09-14 |
|
3 | 3 |
* Copyright (C) 2004-2008: Stefan Schuermans <stefan@schuermans.info> |
4 | 4 |
* Copyleft: GNU public license - http://www.gnu.org/copyleft/gpl.html |
5 | 5 |
* a blinkenarea.org project |
... | ... |
@@ -1,5 +1,5 @@ |
1 | 1 |
/* BlinkenLightsInteractiveMovieProgram |
2 |
- * version 1.3.3 date 2008-08-10 |
|
2 |
+ * version 1.3.4 date 2008-09-14 |
|
3 | 3 |
* Copyright (C) 2004-2008: Stefan Schuermans <stefan@schuermans.info> |
4 | 4 |
* Copyleft: GNU public license - http://www.gnu.org/copyleft/gpl.html |
5 | 5 |
* a blinkenarea.org project |
... | ... |
@@ -1,5 +1,5 @@ |
1 | 1 |
/* BlinkenLightsInteractiveMovieProgram |
2 |
- * version 1.3.3 date 2008-08-10 |
|
2 |
+ * version 1.3.4 date 2008-09-14 |
|
3 | 3 |
* Copyright (C) 2004-2008: Stefan Schuermans <stefan@schuermans.info> |
4 | 4 |
* Copyleft: GNU public license - http://www.gnu.org/copyleft/gpl.html |
5 | 5 |
* a blinkenarea.org project |
... | ... |
@@ -1,5 +1,5 @@ |
1 | 1 |
/* BlinkenLightsInteractiveMovieProgram |
2 |
- * version 1.3.3 date 2008-08-10 |
|
2 |
+ * version 1.3.4 date 2008-09-14 |
|
3 | 3 |
* Copyright (C) 2004-2008: Stefan Schuermans <stefan@schuermans.info> |
4 | 4 |
* Copyleft: GNU public license - http://www.gnu.org/copyleft/gpl.html |
5 | 5 |
* a blinkenarea.org project |
... | ... |
@@ -1,5 +1,5 @@ |
1 | 1 |
/* BlinkenLightsInteractiveMovieProgram |
2 |
- * version 1.3.3 date 2008-08-10 |
|
2 |
+ * version 1.3.4 date 2008-09-14 |
|
3 | 3 |
* Copyright (C) 2004-2008: Stefan Schuermans <stefan@schuermans.info> |
4 | 4 |
* Copyleft: GNU public license - http://www.gnu.org/copyleft/gpl.html |
5 | 5 |
* a blinkenarea.org project |
6 | 6 |