38209decac1d83ed758a98e58f1bd16868f985e7
Christian Heimke BlinkenSimJava v.0.1 (2004-...

Christian Heimke authored 13 years ago

1) import java.lang.*;
2) import java.applet.*;
3) import java.awt.*;
Christian Heimke BlinkenSimJava v.0.1.1 (200...

Christian Heimke authored 13 years ago

4) import java.net.*;
Christian Heimke BlinkenSimJava v.0.1 (2004-...

Christian Heimke authored 13 years ago

5) 
6) public class BlinkenSim extends Applet
7) { 
Christian Heimke BlinkenSimJava v.0.1.1 (200...

Christian Heimke authored 13 years ago

8)   private int pixelX = 0;
9)   private int pixelY = 0;
10)   private int colors = 0;
11)   private int backgroundX = 0;
12)   private int backgroundY = 0;
13)   private int windowX = 0;
14)   private int windowY = 0;
15)   private int startX = 0;
16)   private int startY = 0;
17)   private int distanceX = 0;
18)   private int distanceY = 0;
19)   private Image backgroundImg;
20)   private Image overlayImg;
Christian Heimke BlinkenSimJava v.0.1 (2004-...

Christian Heimke authored 13 years ago

21)   private DynMcufClient mcuf;
22)   private FrameProcessor frameProc;
23) 
24)   public void init( )
25)   {
Christian Heimke BlinkenSimJava v.0.1.1 (200...

Christian Heimke authored 13 years ago

26)     String param;
27)     URL url;
28)     String host;
Christian Heimke BlinkenSimJava v.0.1 (2004-...

Christian Heimke authored 13 years ago

29)     int port = 0;
30) 
Christian Heimke BlinkenSimJava v.0.1.1 (200...

Christian Heimke authored 13 years ago

31)     param = getParameter( "pixelX" );
32)     if( param != null )
33)       pixelX = Integer.parseInt( param );
34)     if( pixelX < 1 || pixelX > 100 )
35)       pixelX = 26;
36)     param = getParameter( "pixelY" );
37)     if( param != null )
38)       pixelY = Integer.parseInt( param );
39)     if( pixelY < 1 || pixelY > 100 )
40)       pixelY = 20;
41)     param = getParameter( "colors" );
42)     if( param != null )
43)       colors = Integer.parseInt( param );
44)     if( colors < 1 || colors > 256 )
45)       colors = 8;
46)     param = getParameter( "backgroundX" );
47)     if( param != null )
48)       backgroundX = Integer.parseInt( param );
49)     if( backgroundX < 1 || backgroundX > 2048 )
50)       backgroundX = 144;
51)     param = getParameter( "backgroundY" );
52)     if( param != null )
53)       backgroundY = Integer.parseInt( param );
54)     if( backgroundY < 1 || backgroundY > 2048 )
55)       backgroundY = 108;
56)     param = getParameter( "windowX" );
57)     if( param != null )
58)       windowX = Integer.parseInt( param );
59)     if( windowX < 1 || windowX > 256 )
60)       windowX = 2;
61)     param = getParameter( "windowY" );
62)     if( param != null )
63)       windowY = Integer.parseInt( param );
64)     if( windowY < 1 || windowY > 256 )
65)       windowY = 4;
66)     param = getParameter( "startX" );
67)     if( param != null )
68)       startX = Integer.parseInt( param );
69)     if( startX < 1 || startX > 2048 )
70)       startX = 21;
71)     param = getParameter( "startY" );
72)     if( param != null )
73)       startY = Integer.parseInt( param );
74)     if( startY < 1 || startY > 2048 )
75)       startY = 5;
76)     param = getParameter( "distanceX" );
77)     if( param != null )
78)       distanceX = Integer.parseInt( param );
79)     if( distanceX < 1 || distanceX > 512 )
80)       distanceX = 2;
81)     param = getParameter( "distanceY" );
82)     if( param != null )
83)       distanceY = Integer.parseInt( param );
84)     if( distanceY < 1 || distanceY > 512 )
85)       distanceY = 24;
86) 
87)     url = getDocumentBase( );
88)     if( url != null )
89)     {
90)       backgroundImg = getImage( url, getParameter( "background" ) );
91)       overlayImg = getImage( url, getParameter( "overlay" ) );
92)     }
93)     else
94)     {
95)       try
96)       {
97)         url = new URL( "file:" + getParameter( "background" ) );
98)         backgroundImg = getImage( url );
99)       }
100)       catch( MalformedURLException e )
101)       {
102)         backgroundImg = createImage( -1, -1 );
103)       }
104)       try
105)       {
106)         url = new URL( "file:" + getParameter( "overlay" ) );
107)         overlayImg = getImage( url );
108)       }
109)       catch( MalformedURLException e )
110)       {
111)         overlayImg = createImage( -1, -1 );
112)       }
113)     }
114) 
Christian Heimke BlinkenSimJava v.0.1 (2004-...

Christian Heimke authored 13 years ago

115)     host = getParameter( "host" );
Christian Heimke BlinkenSimJava v.0.1.1 (200...

Christian Heimke authored 13 years ago

116)     if( host == null || host.length( ) <= 0 )
Christian Heimke BlinkenSimJava v.0.1 (2004-...

Christian Heimke authored 13 years ago

117)       host = "proxy.blinkenlights.de";
118)     
Christian Heimke BlinkenSimJava v.0.1.1 (200...

Christian Heimke authored 13 years ago

119)     param = getParameter( "port" );
120)     if( param != null )
121)       port = Integer.parseInt( param );
Christian Heimke BlinkenSimJava v.0.1 (2004-...

Christian Heimke authored 13 years ago

122)     if( port <= 0 || port > 65535 )
123)       port = 4242;
124) 
125)     mcuf = new DynMcufClient( );
126)     frameProc = new FrameProcessor( this );
127)     mcuf.start( host, port, frameProc );
128)   }
129) 
130)   public void stop( )
131)   {
132)     mcuf.stop( );
133)     mcuf = null;
134)     frameProc = null;
135)   }
136) 
137)   public void paint( Graphics g )
138)   {
139)     byte[][][] data;
140)     Image img;
141)     Graphics gBuf;
Christian Heimke BlinkenSimJava v.0.1.1 (200...

Christian Heimke authored 13 years ago

142)     int y, yy, x, xx, c;
143)     
Christian Heimke BlinkenSimJava v.0.1 (2004-...

Christian Heimke authored 13 years ago

144)     Frame frame = frameProc.getFrame( );
Christian Heimke BlinkenSimJava v.0.1.1 (200...

Christian Heimke authored 13 years ago

145)     frame.resize( pixelY, pixelX, 1 );
Christian Heimke BlinkenSimJava v.0.1 (2004-...

Christian Heimke authored 13 years ago

146)     data = frame.getData( );
147)     
Christian Heimke BlinkenSimJava v.0.1.1 (200...

Christian Heimke authored 13 years ago

148)     img = createImage( backgroundX, backgroundY );
Christian Heimke BlinkenSimJava v.0.1 (2004-...

Christian Heimke authored 13 years ago

149)     gBuf = img.getGraphics( );
150) 
Christian Heimke BlinkenSimJava v.0.1.1 (200...

Christian Heimke authored 13 years ago

151)     gBuf.drawImage( backgroundImg, 0, 0, this );
Christian Heimke BlinkenSimJava v.0.1 (2004-...

Christian Heimke authored 13 years ago

152) 
Christian Heimke BlinkenSimJava v.0.1.1 (200...

Christian Heimke authored 13 years ago

153)     for( y = 0, yy = startY; y < pixelY; y++, yy += distanceY )
Christian Heimke BlinkenSimJava v.0.1 (2004-...

Christian Heimke authored 13 years ago

154)     {
Christian Heimke BlinkenSimJava v.0.1.1 (200...

Christian Heimke authored 13 years ago

155)       for( x = 0, xx = startX; x < pixelX; x++, xx += distanceX )
Christian Heimke BlinkenSimJava v.0.1 (2004-...

Christian Heimke authored 13 years ago

156)       {
Christian Heimke BlinkenSimJava v.0.1.1 (200...

Christian Heimke authored 13 years ago

157)         c = ((data[y][x][0] & 0xFF) * (colors - 1) + 0x7F) / 0xFF;
158)         gBuf.drawImage( overlayImg, xx, yy, xx + windowX, yy + windowY,
159)                         c * windowX, 0, c * windowX + windowX, windowY, this );