Blimp v.0.2 (2004-11-10)
Christian Heimke authored 13 years ago
|
3) * Copyright (C) 2004: Stefan Schuermans <1stein@schuermans.info>
4) * Copyleft: GNU public license - http://www.gnu.org/copyleft/gpl.html
5) * a blinkenarea.org project
6) * powered by eventphone.de
7) */
8)
9) import java.util.*;
10) import java.util.regex.*;
11) import java.io.*;
12)
13) public class BlinkenMovie
14) {
15)
16) private int height;
17) private int width;
18) private int channels;
19) private int maxval;
20) private int infoCnt;
21) private String[][] infos;
22) private int frameCnt;
23) private BlinkenFrame[] frames;
24)
25) BlinkenMovie( int height, int width, int channels, int maxval )
26) {
27) if( height < 1 ) height = 1;
28) if( height > 1024 ) height = 1024;
29) if( width < 1 ) width = 1;
30) if( width > 1024 ) width = 1024;
31) if( channels < 1 ) channels = 1;
32) if( channels > 16 ) channels = 16;
33) if( maxval < 1 ) maxval = 1;
34) if( maxval > 255 ) maxval = 255;
35)
36) this.height = height;
37) this.width = width;
38) this.channels = channels;
39) this.maxval = maxval;
40) infoCnt = 0;
41) infos = new String[0][2];
42) frameCnt = 0;
43) frames = new BlinkenFrame[0];
44) }
45)
46) BlinkenMovie( BlinkenMovie movie )
47) {
48) int i;
49)
50) height = movie.height;
51) width = movie.width;
52) channels = movie.channels;
53) maxval = movie.maxval;
54) infoCnt = 0;
55) infos = new String[0][2];
56) frameCnt = 0;
57) frames = new BlinkenFrame[0];
58)
59) for( i = 0; i < movie.infoCnt; i++ )
60) appendInfo( new String( movie.infos[i][0] ), new String( movie.infos[i][1] ) );
61)
62) for( i = 0; i < movie.frameCnt; i++ )
63) appendFrame( new BlinkenFrame( movie.frames[i] ) );
64) }
65)
66) public int getHeight( )
67) {
68) return height;
69) }
70)
71) public int getWidth( )
72) {
73) return width;
74) }
75)
76) public int getChannels( )
77) {
78) return channels;
79) }
80)
81) public int getMaxval( )
82) {
83) return maxval;
84) }
85)
86) public int getDuration( )
87) {
88) int duration, i;
89) duration = 0;
90) for( i = 0; i < frameCnt; i++ )
91) duration += frames[i].getDuration( );
92) return duration;
93) }
94)
95) public int getInfoCnt( )
96) {
97) return infoCnt;
98) }
99)
100) public String getInfoType( int infoNo )
101) {
102) if( infoCnt < 1 ) return "";
103) if( infoNo < 0 ) infoNo = 0;
104) if( infoNo >= infoCnt ) infoNo = infoCnt - 1;
105) return infos[infoNo][0];
106) }
107)
108) public String getInfoData( int infoNo )
109) {
110) if( infoCnt < 1 ) return "";
111) if( infoNo < 0 ) infoNo = 0;
112) if( infoNo >= infoCnt ) infoNo = infoCnt - 1;
113) return infos[infoNo][1];
114) }
115)
116) public void setInfo( int infoNo, String infoType, String infoData )
117) {
118) if( infoNo < 0 || infoNo >= infoCnt )
119) return;
120) infos[infoNo][0] = infoType;
121) infos[infoNo][1] = infoData;
122) }
123)
124) public void insertInfo( int infoNo, String infoType, String infoData )
125) {
126) String[][] infos;
127) int i;
128)
129) if( infoNo < 0 || infoNo > infoCnt )
130) return;
131)
132) infos = new String[infoCnt+1][2];
133)
134) for( i = 0; i < infoNo; i++ )
135) {
136) infos[i][0] = this.infos[i][0];
137) infos[i][1] = this.infos[i][1];
138) }
139)
140) infos[infoNo][0] = infoType;
141) infos[infoNo][1] = infoData;
142)
143) for( i = infoNo; i < infoCnt; i++ )
144) {
145) infos[i+1][0] = this.infos[i][0];
146) infos[i+1][1] = this.infos[i][1];
147) }
148)
149) this.infos = infos;
150) infoCnt++;
151) }
152)
153) public void appendInfo( String infoType, String infoData )
154) {
155) insertInfo( infoCnt, infoType, infoData );
156) }
157)
158) public void deleteInfo( int infoNo )
159) {
160) String[][] infos;
161) int i;
162)
163) if( infoNo < 0 || infoNo >= infoCnt )
164) return;
165)
166) infos = new String[infoCnt-1][2];
167)
168) for( i = 0; i < infoNo; i++ )
169) {
170) infos[i][0] = this.infos[i][0];
171) infos[i][1] = this.infos[i][1];
172) }
173)
174) for( i = infoNo; i < infoCnt-1; i++ )
175) {
176) infos[i][0] = this.infos[i+1][0];
177) infos[i][1] = this.infos[i+1][1];
178) }
179)
180) this.infos = infos;
181) infoCnt--;
182) }
183)
184) public void deleteInfos( )
185) {
186) infos = new String[0][2];
187) infoCnt = 0;
188) }
189)
190) public int getFrameCnt( )
191) {
192) return frameCnt;
193) }
194)
195) public BlinkenFrame getFrame( int frameNo )
196) {
197) BlinkenFrame frame;
198) if( frameCnt < 1 )
199) {
200) frame = new BlinkenFrame( height, width, channels, maxval, 0 );
201) frame.clear( );
202) return frame;
203) }
204) if( frameNo < 0 ) frameNo = 0;
205) if( frameNo >= frameCnt ) frameNo = frameCnt - 1;
206) return frames[frameNo];
207) }
208)
209) public void setFrame( int frameNo, BlinkenFrame frame )
210) {
211) if( frameNo < 0 || frameNo >= frameCnt )
212) return;
213) frame.resize( height, width, channels, maxval );
214) frames[frameNo] = frame;
215) }
216)
217) public void insertFrame( int frameNo, BlinkenFrame frame )
218) {
219) BlinkenFrame[] frames;
220) int i;
221)
222) if( frameNo < 0 || frameNo > frameCnt )
223) return;
224)
225) frames = new BlinkenFrame[frameCnt+1];
226)
227) for( i = 0; i < frameNo; i++ )
228) frames[i] = this.frames[i];
229)
230) frame.resize( height, width, channels, maxval );
231) frames[frameNo] = frame;
232)
233) for( i = frameNo; i < frameCnt; i++ )
234) frames[i+1] = this.frames[i];
235)
236) this.frames = frames;
237) frameCnt++;
238) }
239)
240) public void appendFrame( BlinkenFrame frame )
241) {
242) insertFrame( frameCnt, frame );
243) }
244)
245) public void deleteFrame( int frameNo )
246) {
247) BlinkenFrame[] frames;
248) int i;
249)
250) if( frameNo < 0 || frameNo >= frameCnt )
251) return;
252)
253) frames = new BlinkenFrame[frameCnt-1];
254)
255) for( i = 0; i < frameNo; i++ )
256) frames[i] = this.frames[i];
257)
258) for( i = frameNo; i < frameCnt-1; i++ )
259) frames[i] = this.frames[i+1];
260)
261) this.frames = frames;
262) frameCnt--;
263) }
264)
265) public void deleteFrames( )
266) {
267) frames = new BlinkenFrame[0];
268) frameCnt = 0;
269) }
270)
271) public void resize( int height, int width, int channels, int maxval )
272) {
273) int i;
274)
275) if( height < 1 ) height = 1;
276) if( height > 1024 ) height = 1024;
277) if( width < 1 ) width = 1;
278) if( width > 1024 ) width = 1024;
279) if( channels < 1 ) channels = 1;
280) if( channels > 16 ) channels = 16;
281) if( maxval < 1 ) maxval = 1;
282) if( maxval > 255 ) maxval = 255;
283)
284) this.height = height;
285) this.width = width;
286) this.channels = channels;
287) this.maxval = maxval;
288)
289) for( i = 0; i < frameCnt; i++ )
290) frames[i].resize( height, width, channels, maxval );
291) }
292)
|
Blimp v.0.3 (2004-11-12)
Christian Heimke authored 13 years ago
|
293) public void scale( int height, int width )
294) {
295) int i;
296)
297) if( height < 1 ) height = 1;
298) if( height > 1024 ) height = 1024;
299) if( width < 1 ) width = 1;
300) if( width > 1024 ) width = 1024;
301)
302) this.height = height;
303) this.width = width;
304)
305) for( i = 0; i < frameCnt; i++ )
306) frames[i].scale( height, width );
307) }
308)
|