f46f6acaf2f8d3e11ddb5f91da2e5462d9527fe7
Christian Heimke BlinkenLib v.0.1.1 (2005-01...

Christian Heimke authored 13 years ago

1) /* BlinkenLib
Christian Heimke BlinkenLib v.0.5.3 (2007-12...

Christian Heimke authored 13 years ago

2)  * version 0.5.3 date 2007-12-28
3)  * Copyright 2004-2007 Stefan Schuermans <stefan@schuermans.info>
Christian Heimke BlinkenLib v.0.1.1 (2005-01...

Christian Heimke authored 13 years ago

4)  * Copyleft: GNU public license - http://www.gnu.org/copyleft/gpl.html
5)  * a blinkenarea.org project
6)  */
7) 
8) #include <stdio.h>
9) #include <stdlib.h>
Christian Heimke BlinkenLib v.0.4 (2005-07-02)

Christian Heimke authored 13 years ago

10) #include <string.h>
Christian Heimke BlinkenLib v.0.1.1 (2005-01...

Christian Heimke authored 13 years ago

11) 
Christian Heimke BlinkenLib v.0.5.3 (2007-12...

Christian Heimke authored 13 years ago

12) #include "BlinkenColorizer.h"
Christian Heimke BlinkenLib v.0.3 (2005-02-16)

Christian Heimke authored 13 years ago

13) #include "BlinkenLib.h"
Christian Heimke BlinkenLib v.0.1.1 (2005-01...

Christian Heimke authored 13 years ago

14) 
15) int main( int argCnt, char * * args )
16) {
17)   stBlinkenMovie * pMovie;
Christian Heimke BlinkenLib v.0.2 (2005-01-27)

Christian Heimke authored 13 years ago

18)   int i;
Christian Heimke BlinkenLib v.0.1.1 (2005-01...

Christian Heimke authored 13 years ago

19)   char * str;
Christian Heimke BlinkenLib v.0.2 (2005-01-27)

Christian Heimke authored 13 years ago

20)   unsigned int height, width, channels, colors;
Christian Heimke BlinkenLib v.0.5.3 (2007-12...

Christian Heimke authored 13 years ago

21)   int mode; 
Christian Heimke BlinkenLib v.0.1.1 (2005-01...

Christian Heimke authored 13 years ago

22) 
23)   //print info
Christian Heimke BlinkenLib v.0.2 (2005-01-27)

Christian Heimke authored 13 years ago

24)   printf( "BlinkenLib - BlinkenConv\n"
Christian Heimke BlinkenLib v.0.5.3 (2007-12...

Christian Heimke authored 13 years ago

25)           "version 0.5.3 date 2007-12-28\n"
26)           "Copyright 2004-2007 Stefan Schuermans <stefan@schuermans.info>\n"
Christian Heimke BlinkenLib v.0.1.1 (2005-01...

Christian Heimke authored 13 years ago

27)           "Copyleft: GNU public license - http://www.gnu.org/copyleft/gpl.html\n"
Christian Heimke BlinkenLib v.0.5 (2005-12-06)

Christian Heimke authored 13 years ago

28)           "a blinkenarea.org project\n\n" );
Christian Heimke BlinkenLib v.0.1.1 (2005-01...

Christian Heimke authored 13 years ago

29) 
30)   //print syntax
31)   if( argCnt <= 1 )
32)   {
Christian Heimke BlinkenLib v.0.2 (2005-01-27)

Christian Heimke authored 13 years ago

33)     printf( "syntax: %s <parameter> [...]\n\n"
34)             "parameters:\n"
35)             "  -i <file>\n"
36)             "     read movie from file (*.blm, *.bmm, *.bml, *.bbm)\n"
37)             "  -p\n"
38)             "     print movie\n"
39)             "  -r <width>x<height>-<channels>/<colors>\n"
40)             "     resize movie\n"
41)             "  -s <width>x<height>\n"
42)             "     scale movie\n"
Christian Heimke BlinkenLib v.0.5.3 (2007-12...

Christian Heimke authored 13 years ago

43)             "  -c <channels> [solid|rainbow]\n"
44)             "     colorize movie\n"
Christian Heimke BlinkenLib v.0.2 (2005-01-27)

Christian Heimke authored 13 years ago

45)             "  -o <file>\n"
46)             "     write movie to file (*.blm, *.bmm, *.bml, *.bbm)\n\n"
47)             "old syntax: %s <input-file> [<output-file>]\n\n",
48)             args[0], args[0] );
49)     return 0;
Christian Heimke BlinkenLib v.0.1.1 (2005-01...

Christian Heimke authored 13 years ago

50)   }
51) 
52)   //no movie loaded
53)   pMovie = NULL;
54) 
Christian Heimke BlinkenLib v.0.2 (2005-01-27)

Christian Heimke authored 13 years ago

55)   //process parameters
56)   for( i = 1; i < argCnt; i++ )
Christian Heimke BlinkenLib v.0.1.1 (2005-01...

Christian Heimke authored 13 years ago

57)   {
Christian Heimke BlinkenLib v.0.2 (2005-01-27)

Christian Heimke authored 13 years ago

58) 
59)     //read movie
60)     if( strcmp( args[i], "-i" ) == 0 )
61)     {
62)       if( i + 1 < argCnt )
63)       {
64)         i++;
65)         if( pMovie != NULL )
66)           BlinkenMovieFree( pMovie );
67)         pMovie = BlinkenMovieLoad( args[i] );
68)         if( pMovie == NULL )
69)           printf( "could not read movie \"%s\"\n", args[i] );
70)         else
71)           printf( "movie \"%s\" read\n", args[i] );
72)       }
73)       else
74)         printf( "missing input filename for \"-i\"\n" );
75)     }
76) 
Christian Heimke BlinkenLib v.0.1.1 (2005-01...

Christian Heimke authored 13 years ago

77)     //print movie
Christian Heimke BlinkenLib v.0.2 (2005-01-27)

Christian Heimke authored 13 years ago

78)     else if( strcmp( args[i], "-p" ) == 0 )
Christian Heimke BlinkenLib v.0.1.1 (2005-01...

Christian Heimke authored 13 years ago

79)     {
Christian Heimke BlinkenLib v.0.2 (2005-01-27)

Christian Heimke authored 13 years ago

80)       if( pMovie == NULL )
81)         printf( "no movie loaded to print\n" );
82)       else
Christian Heimke BlinkenLib v.0.1.1 (2005-01...

Christian Heimke authored 13 years ago

83)       {
Christian Heimke BlinkenLib v.0.2 (2005-01-27)

Christian Heimke authored 13 years ago

84)         str = BlinkenMovieToString( pMovie );
85)         if( str == NULL )
86)           printf( "could not print movie\n" );
87)         else
88)         {
89)           printf( "%s", str );
90)           free( str );
91)         }
Christian Heimke BlinkenLib v.0.1.1 (2005-01...

Christian Heimke authored 13 years ago

92)       }
93)     }
94) 
Christian Heimke BlinkenLib v.0.2 (2005-01-27)

Christian Heimke authored 13 years ago

95)     //resize movie
96)     else if( strcmp( args[i], "-r" ) == 0 )
97)     {
98)       if( i + 1 < argCnt )
99)       {
100)         i++;
101)         if( sscanf( args[i], "%ux%u-%u/%u", &width, &height, &channels, &colors ) != 4 )
102)           printf( "invalid movie format \"%s\"\n", args[i] );
103)         else if( pMovie == NULL )
104)           printf( "no movie loaded to resize\n" );
105)         else
106)         {
107)           BlinkenMovieResize( pMovie, height, width, channels, colors - 1 );
108)           printf( "movie resized to %ux%u-%u/%u\n", width, height, channels, colors );
109)         }
110)       }
111)       else
112)         printf( "missing movie format for \"-r\"\n" );
113)     }
Christian Heimke BlinkenLib v.0.1.1 (2005-01...

Christian Heimke authored 13 years ago

114) 
Christian Heimke BlinkenLib v.0.2 (2005-01-27)

Christian Heimke authored 13 years ago

115)     //scale movie
116)     else if( strcmp( args[i], "-s" ) == 0 )
117)     {
118)       if( i + 1 < argCnt )
119)       {
120)         i++;
121)         if( sscanf( args[i], "%ux%u", &width, &height ) != 2 )
122)           printf( "invalid movie dimensions \"%s\"\n", args[i] );
123)         else if( pMovie == NULL )
124)           printf( "no movie loaded to scale\n" );
125)         else
126)         {
127)           BlinkenMovieScale( pMovie, height, width );
128)           printf( "movie scaled to %ux%u\n", width, height );
129)         }
130)       }
131)       else
132)         printf( "missing movie dimensions for \"-s\"\n" );
133)     }
134) 
Christian Heimke BlinkenLib v.0.5.3 (2007-12...

Christian Heimke authored 13 years ago

135)     //colorize movie
136)     else if( strcmp( args[i], "-c" ) == 0 )
137)     {
138)       if( i + 2 < argCnt )
139)       {
140)         const char * str_channels, * str_mode;
141)         i++;
142) 	str_channels = args[i];
143) 	i++;
144) 	str_mode = args[i];
145)         if( sscanf( str_channels, "%u", &channels ) != 1 )
146)           printf( "invalid number of channels \"%s\"\n", args[i] );
147)         else
148) 	{
149)           mode = BlinkenColorizerStr2Mode( str_mode );
150)           if( mode < 0 )
151)             printf( "invalid colorizing mode \"%s\"\n", args[i] );
152)           else if( pMovie == NULL )
153)             printf( "no movie loaded to colorize\n" );
154)           else
155)           {
156)             BlinkenMovieColorize( pMovie, channels, mode );
157)             printf( "movie colorized to %u channels using mode %s\n", channels, BlinkenColorizerMode2Str( mode ) );
158)           }
159)         }
160)       }
161)       else if( i + 1 < argCnt )
162)         printf( "missing colorizing mode for \"-c\"\n" );
163)       else
164)         printf( "missing number of channels for \"-c\"\n" );
165)     }
166) 
Christian Heimke BlinkenLib v.0.2 (2005-01-27)

Christian Heimke authored 13 years ago

167)     //write movie
168)     else if( strcmp( args[i], "-o" ) == 0 )
169)     {
170)       if( i + 1 < argCnt )
171)       {
172)         i++;
173)         if( pMovie == NULL )
174)           printf( "no movie loaded to write to \"%s\"\n", args[i] );
175)         else
176)           if( BlinkenMovieSave( pMovie, args[i] ) < 0 )
177)             printf( "could not write movie \"%s\"\n", args[i] );
178)           else
179)             printf( "movie \"%s\" written\n", args[i] );
180)       }
181)       else
182)         printf( "missing output filename for \"-o\"\n" );
183)     }
184) 
185)     //old style input filename
186)     else if( i == 1 && args[i][0] != '-' )
187)     {
188)       printf( "old style input filename \"%s\", better use \"-i %s\"\n", args[i], args[i] );
189)       if( pMovie != NULL )
190)         BlinkenMovieFree( pMovie );
191)       pMovie = BlinkenMovieLoad( args[i] );
192)       if( pMovie == NULL )
193)         printf( "could not read movie \"%s\"\n", args[i] );
194)       else
195)         printf( "movie \"%s\" read\n", args[i] );
196)     }
197) 
198)     //old style output filename
199)     else if( i == 2 && args[i][0] != '-' )
200)     {
201)       printf( "old style output filename \"%s\", better use \"-o %s\"\n", args[i], args[i] );
202)       if( pMovie == NULL )
203)         printf( "no movie loaded to write to \"%s\"\n", args[i] );
204)       else
205)         if( BlinkenMovieSave( pMovie, args[i] ) < 0 )
206)           printf( "could not write movie \"%s\"\n", args[i] );
207)         else
208)           printf( "movie \"%s\" written\n", args[i] );
209)     }
210) 
211)     //unknown parameter
212)     else
213)       printf( "unknown parameter \"%s\", call without parameters to get help\n", args[i] );
214) 
215)   } //for( i ...
216) 
217)   //old style print
218)   if( argCnt == 2 && pMovie != NULL )
219)   {
220)     str = BlinkenMovieToString( pMovie );
221)     if( str == NULL )
222)       printf( "could not print movie\n" );
223)     else
224)     {
225)       printf( "%s", str );
226)       free( str );
227)     }
Christian Heimke BlinkenLib v.0.1.1 (2005-01...

Christian Heimke authored 13 years ago

228)   }
229) 
Christian Heimke BlinkenLib v.0.2 (2005-01-27)

Christian Heimke authored 13 years ago

230)   //free movie
231)   if( pMovie != NULL )
232)     BlinkenMovieFree( pMovie );
233)