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

Christian Heimke commited on 2011-07-15 09:05:20
Showing 17 changed files, with 272 additions and 45 deletions.

... ...
@@ -0,0 +1,84 @@
1
+/* BlinkenLib
2
+ * version 0.5.3 date 2007-12-28
3
+ * Copyright 2004-2007 Stefan Schuermans <stefan@schuermans.info>
4
+ * Copyleft: GNU public license - http://www.gnu.org/copyleft/gpl.html
5
+ * a blinkenarea.org project
6
+ */
7
+
8
+#include <string.h>
9
+
10
+#include "Tools.h"
11
+#include "BlinkenColorizer.h"
12
+
13
+unsigned char BlinkenColorizerSolid( int step, int channels, int y, int x, int c )
14
+{
15
+  int substep, updown, chan;
16
+  step %= channels * 2 * 254;
17
+  substep = step % 254;
18
+  updown = (step / 254) % 2;
19
+  chan = (step / 254) / 2;
20
+  if( updown == 0 ) {
21
+    if( c == chan )
22
+      return 255;
23
+    else if( c == (chan + 1) % channels )
24
+      return substep;
25
+    else
26
+      return 0;
27
+  } else {
28
+    if( c == chan )
29
+      return 255 - substep;
30
+    else if( c == (chan + 1) % channels )
31
+      return 255;
32
+    else
33
+      return 0;
34
+  }
35
+  y = x = 0; // keep compiler quiet
36
+}
37
+
38
+unsigned char BlinkenColorizerRainbow( int step, int channels, int y, int x, int c )
39
+{
40
+  return BlinkenColorizerSolid( step + ((x + y) * 64), channels, y, x, c );
41
+}
42
+
43
+// type describing a colorizing modes
44
+typedef struct _BlinkenColorizingModeDesc
45
+{
46
+  const char * name;
47
+  unsigned char (* func)( int step, int channels, int y, int x, int c );
48
+} BlinkenColorizingModeDesc;
49
+
50
+// supported colorizing modes
51
+static const BlinkenColorizingModeDesc BlinkenColorizingModeDescs[] = {
52
+  { "solid", BlinkenColorizerSolid },
53
+  { "rainbow", BlinkenColorizerRainbow },
54
+};
55
+
56
+// convert string to colorizing mode
57
+// returns colorizing mode (>= 0) or -1 on error
58
+int BlinkenColorizerStr2Mode( const char * str )
59
+{
60
+  unsigned int i;
61
+  for( i = 0; i < arr_cnt( BlinkenColorizingModeDescs ); i++ )
62
+    if( strcmp( str, BlinkenColorizingModeDescs[i].name ) == 0 )
63
+      break;
64
+  if( i < arr_cnt( BlinkenColorizingModeDescs ) )
65
+    return i;
66
+  return -1;
67
+}
68
+
69
+// convert colorizing mode to string
70
+const char * BlinkenColorizerMode2Str( int mode )
71
+{
72
+  if( mode < 0 || mode >= (int)arr_cnt( BlinkenColorizingModeDescs ) )
73
+    return "(unknown)";
74
+  return BlinkenColorizingModeDescs[mode].name;
75
+}
76
+
77
+// get color for colorizing
78
+unsigned char BlinkenColorizerGetColor( int channels, int mode, int step, int y, int x, int c )
79
+{
80
+  if( mode < 0 || mode >= (int)arr_cnt( BlinkenColorizingModeDescs ) )
81
+    return 255;
82
+  return BlinkenColorizingModeDescs[mode].func( step, channels, y, x, c );
83
+}
84
+
... ...
@@ -0,0 +1,22 @@
1
+/* BlinkenLib
2
+ * version 0.5.3 date 2007-12-28
3
+ * Copyright 2004-2007 Stefan Schuermans <stefan@schuermans.info>
4
+ * Copyleft: GNU public license - http://www.gnu.org/copyleft/gpl.html
5
+ * a blinkenarea.org project
6
+ */
7
+
8
+#ifndef INC_BlinkenColorizer
9
+#define INC_BlinkenColorizer
10
+
11
+// convert string to colorizing mode
12
+// returns colorizing mode (>= 0) or -1 on error
13
+int BlinkenColorizerStr2Mode( const char * str );
14
+
15
+// convert colorizing mode to string
16
+const char * BlinkenColorizerMode2Str( int mode );
17
+
18
+// get color for colorizing
19
+unsigned char BlinkenColorizerGetColor( int channels, int mode, int step, int y, int x, int c );
20
+
21
+#endif //#ifndef INC_BlinkenColorizer
22
+
... ...
@@ -1,6 +1,6 @@
1 1
 /* BlinkenLib
2
- * version 0.5.2 date 2006-05-10
3
- * Copyright 2004-2006 Stefan Schuermans <1stein@schuermans.info>
2
+ * version 0.5.3 date 2007-12-28
3
+ * Copyright 2004-2007 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
  */
... ...
@@ -1,6 +1,6 @@
1 1
 /* BlinkenLib
2
- * version 0.5.2 date 2006-05-10
3
- * Copyright 2004-2006 Stefan Schuermans <1stein@schuermans.info>
2
+ * version 0.5.3 date 2007-12-28
3
+ * Copyright 2004-2007 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
  */
... ...
@@ -9,6 +9,7 @@
9 9
 #include <stdlib.h>
10 10
 #include <string.h>
11 11
 
12
+#include "BlinkenColorizer.h"
12 13
 #include "BlinkenLib.h"
13 14
 
14 15
 int main( int argCnt, char * * args )
... ...
@@ -17,11 +18,12 @@ int main( int argCnt, char * * args )
17 18
   int i;
18 19
   char * str;
19 20
   unsigned int height, width, channels, colors;
21
+  int mode; 
20 22
 
21 23
   //print info
22 24
   printf( "BlinkenLib - BlinkenConv\n"
23
-          "version 0.5.2 date 2006-05-10\n"
24
-          "Copyright 2004-2006 Stefan Schuermans <1stein@schuermans.info>\n"
25
+          "version 0.5.3 date 2007-12-28\n"
26
+          "Copyright 2004-2007 Stefan Schuermans <stefan@schuermans.info>\n"
25 27
           "Copyleft: GNU public license - http://www.gnu.org/copyleft/gpl.html\n"
26 28
           "a blinkenarea.org project\n\n" );
27 29
 
... ...
@@ -38,6 +40,8 @@ int main( int argCnt, char * * args )
38 40
             "     resize movie\n"
39 41
             "  -s <width>x<height>\n"
40 42
             "     scale movie\n"
43
+            "  -c <channels> [solid|rainbow]\n"
44
+            "     colorize movie\n"
41 45
             "  -o <file>\n"
42 46
             "     write movie to file (*.blm, *.bmm, *.bml, *.bbm)\n\n"
43 47
             "old syntax: %s <input-file> [<output-file>]\n\n",
... ...
@@ -128,6 +132,38 @@ int main( int argCnt, char * * args )
128 132
         printf( "missing movie dimensions for \"-s\"\n" );
129 133
     }
130 134
 
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
+
131 167
     //write movie
132 168
     else if( strcmp( args[i], "-o" ) == 0 )
133 169
     {
... ...
@@ -1,6 +1,6 @@
1 1
 /* BlinkenLib
2
- * version 0.5.2 date 2006-05-10
3
- * Copyright 2004-2006 Stefan Schuermans <1stein@schuermans.info>
2
+ * version 0.5.3 date 2007-12-28
3
+ * Copyright 2004-2007 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
  */
... ...
@@ -19,6 +19,7 @@ typedef DWORD uint32_t;
19 19
 #endif
20 20
 
21 21
 #include "BlinkenConstants.h"
22
+#include "BlinkenColorizer.h"
22 23
 #include "BlinkenFrame.h"
23 24
 #include "Tools.h"
24 25
 
... ...
@@ -466,6 +467,54 @@ void BlinkenFrameScale( stBlinkenFrame * pFrame, int height, int width )
466 467
   pFrame->ppData = ppData;
467 468
 }
468 469
 
470
+void BlinkenFrameColorize( stBlinkenFrame * pFrame, int channels, int mode, int step )
471
+{
472
+  unsigned char * * ppData;
473
+  int y, x, c, i, j;
474
+  unsigned int val;
475
+
476
+  if( pFrame == NULL )
477
+    return;
478
+
479
+  if( channels < BlinkenChannelsMin ) channels = BlinkenChannelsMin;
480
+  if( channels > BlinkenChannelsMax ) channels = BlinkenMaxvalMax;
481
+
482
+  //allocate new data array
483
+  ppData = (unsigned char * *)malloc2D( pFrame->height, pFrame->width * channels, sizeof( unsigned char ) );
484
+  if( ppData == NULL )
485
+    return;
486
+  for( y = 0; y < pFrame->height; y++ )
487
+    for( x = 0, i = 0; x < pFrame->width; x++ )
488
+      for( c = 0; c < channels; c++, i++ )
489
+        ppData[y][i] = 0;
490
+
491
+  //colorize frame
492
+  for( y = 0; y < pFrame->height; y++ )
493
+  {
494
+    for( x = 0; x < pFrame->width; x++ )
495
+    {
496
+      i = x * pFrame->channels;
497
+      //merge channels
498
+      val = 0;
499
+      for( c = 0; c < pFrame->channels; c++, i++ )
500
+        val += pFrame->ppData[y][i];
501
+      val = (val + pFrame->channels / 2) / pFrame->channels;
502
+      val = (val * BlinkenMaxvalMax + pFrame->maxval / 2) / pFrame->maxval;
503
+      //colorize
504
+      j = x * channels;
505
+      for( c = 0; c < channels; c++, j++ ) {
506
+        int color = BlinkenColorizerGetColor( channels, mode, step, y, x, c );
507
+        ppData[y][j] = (unsigned char)((val * color + 127) / 255);
508
+      }
509
+    }
510
+  }
511
+
512
+  pFrame->channels = channels;
513
+  pFrame->maxval = BlinkenMaxvalMax;
514
+  free( pFrame->ppData );
515
+  pFrame->ppData = ppData;
516
+}
517
+
469 518
 char * BlinkenFrameToString( stBlinkenFrame * pFrame )
470 519
 {
471 520
   int size, y, x, c, i;
... ...
@@ -604,7 +653,7 @@ stBlinkenFrame * BlinkenFrameFromNetwork( char * pData, int length, etBlinkenPro
604 653
     i = sizeof( stBlinkenProtoBlpHdr ); //put data into frame
605 654
     for( y = 0; y < pFrame->height; y++ )
606 655
       for( x = 0; x < pFrame->width; x++, i++ )
607
-        pFrame->ppData[y][x * 1 + 0] = pData[i];
656
+        pFrame->ppData[y][x] = pData[i] ? 0x01 : 0x00;
608 657
     return pFrame;
609 658
   }
610 659
 
... ...
@@ -626,7 +675,7 @@ stBlinkenFrame * BlinkenFrameFromNetwork( char * pData, int length, etBlinkenPro
626 675
     i = sizeof( stBlinkenProtoEblpHdr ); //put data into frame
627 676
     for( y = 0; y < pFrame->height; y++ )
628 677
       for( x = 0; x < pFrame->width; x++, i++ )
629
-        pFrame->ppData[y][x * 1 + 0] = pData[i];
678
+        pFrame->ppData[y][x] = pData[i];
630 679
     return pFrame;
631 680
   }
632 681
 
... ...
@@ -1,6 +1,6 @@
1 1
 /* BlinkenLib
2
- * version 0.5.2 date 2006-05-10
3
- * Copyright 2004-2006 Stefan Schuermans <1stein@schuermans.info>
2
+ * version 0.5.3 date 2007-12-28
3
+ * Copyright 2004-2007 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
  */
... ...
@@ -36,6 +36,7 @@ void BlinkenFrameSetColor( stBlinkenFrame * pFrame, int y, int x, unsigned long
36 36
 
37 37
 void BlinkenFrameResize( stBlinkenFrame * pFrame, int height, int width, int channels, int maxval );
38 38
 void BlinkenFrameScale( stBlinkenFrame * pFrame, int height, int width );
39
+void BlinkenFrameColorize( stBlinkenFrame * pFrame, int channels, int mode, int step );
39 40
 
40 41
 char * BlinkenFrameToString( stBlinkenFrame * pFrame );
41 42
 
... ...
@@ -1,6 +1,6 @@
1 1
 /* BlinkenLib
2
- * version 0.5.2 date 2006-05-10
3
- * Copyright 2004-2006 Stefan Schuermans <1stein@schuermans.info>
2
+ * version 0.5.3 date 2007-12-28
3
+ * Copyright 2004-2007 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
  */
... ...
@@ -8,6 +8,7 @@
8 8
 #ifndef INC_BlinkenLib
9 9
 #define INC_BlinkenLib
10 10
 
11
+#include "BlinkenColorizer.h"
11 12
 #include "BlinkenMovie.h"
12 13
 #include "BlinkenFrame.h"
13 14
 
... ...
@@ -1,6 +1,6 @@
1 1
 /* BlinkenLib
2
- * version 0.5.2 date 2006-05-10
3
- * Copyright 2004-2006 Stefan Schuermans <1stein@schuermans.info>
2
+ * version 0.5.3 date 2007-12-28
3
+ * Copyright 2004-2007 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
  */
... ...
@@ -504,6 +504,27 @@ void BlinkenMovieScale( stBlinkenMovie * pMovie, int height, int width )
504 504
     BlinkenFrameScale( pMovie->ppFrames[i], height, width );
505 505
 }
506 506
 
507
+void BlinkenMovieColorize( stBlinkenMovie * pMovie, int channels, int mode )
508
+{
509
+  int i, step;
510
+
511
+  if( pMovie == NULL )
512
+    return;
513
+
514
+  if( channels < BlinkenChannelsMin ) channels = BlinkenChannelsMin;
515
+  if( channels > BlinkenChannelsMax ) channels = BlinkenMaxvalMax;
516
+
517
+  pMovie->channels = channels;
518
+  pMovie->maxval = BlinkenMaxvalMax;
519
+
520
+  step = 0;
521
+  for( i = 0; i < pMovie->frameCnt; i++ )
522
+  {
523
+    BlinkenFrameColorize( pMovie->ppFrames[i], channels, mode, step );
524
+    step += BlinkenFrameGetDuration( pMovie->ppFrames[i] );
525
+  }
526
+}
527
+
507 528
 char * BlinkenMovieToString( stBlinkenMovie * pMovie )
508 529
 {
509 530
   char * * strs, * str, * ptr;
... ...
@@ -940,7 +961,8 @@ stBlinkenMovie * BlinkenMovieLoadBbm( char * pFilename )
940 961
   unsigned short headerHeight, headerWidth, headerChannels, headerMaxval;
941 962
   unsigned long subHeaderMagic, frameStartMarkerMagic;
942 963
   unsigned short subHeaderSize;
943
-  unsigned char * pInfoHeader, * pInfoHeaderX, * pFrameData;
964
+  char * pInfoHeader, * pInfoHeaderX;
965
+  unsigned char * pFrameData;
944 966
   int len, duration, y, x, c, i;
945 967
 
946 968
   if( pFilename == NULL )
... ...
@@ -999,7 +1021,7 @@ stBlinkenMovie * BlinkenMovieLoadBbm( char * pFilename )
999 1021
       if( subHeaderMagic == 0x696E666F ) //'i' 'n' 'f' 'o'
1000 1022
       {
1001 1023
         //read rest of info header
1002
-        pInfoHeader = (unsigned char *)malloc( subHeaderSize - 6 );
1024
+        pInfoHeader = (char *)malloc( subHeaderSize - 6 );
1003 1025
         if( pInfoHeader == NULL )
1004 1026
         {
1005 1027
           BlinkenMovieFree( pMovie );
... ...
@@ -1,6 +1,6 @@
1 1
 /* BlinkenLib
2
- * version 0.5.2 date 2006-05-10
3
- * Copyright 2004-2006 Stefan Schuermans <1stein@schuermans.info>
2
+ * version 0.5.3 date 2007-12-28
3
+ * Copyright 2004-2007 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
  */
... ...
@@ -50,6 +50,7 @@ void BlinkenMovieDeleteFrames( stBlinkenMovie * pMovie );
50 50
 
51 51
 void BlinkenMovieResize( stBlinkenMovie * pMovie, int height, int width, int channels, int maxval );
52 52
 void BlinkenMovieScale( stBlinkenMovie * pMovie, int height, int width );
53
+void BlinkenMovieColorize( stBlinkenMovie * pMovie, int channels, int mode );
53 54
 
54 55
 char * BlinkenMovieToString( stBlinkenMovie * pMovie );
55 56
 
... ...
@@ -1,6 +1,6 @@
1 1
 /* BlinkenLib
2
- * version 0.5.2 date 2006-05-10
3
- * Copyright 2004-2006 Stefan Schuermans <1stein@schuermans.info>
2
+ * version 0.5.3 date 2007-12-28
3
+ * Copyright 2004-2007 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
  */
... ...
@@ -409,8 +409,8 @@ int main( int argCnt, char * * args )
409 409
 
410 410
   //print info
411 411
   printf( "BlinkenLib - BlinkenOutput\n"
412
-          "version 0.5.2 date 2006-05-10\n"
413
-          "Copyright 2004-2006 Stefan Schuermans <1stein@schuermans.info>\n"
412
+          "version 0.5.3 date 2007-12-28\n"
413
+          "Copyright 2004-2007 Stefan Schuermans <stefan@schuermans.info>\n"
414 414
           "Copyleft: GNU public license - http://www.gnu.org/copyleft/gpl.html\n"
415 415
           "a blinkenarea.org project\n\n" );
416 416
 
... ...
@@ -456,6 +456,7 @@ int main( int argCnt, char * * args )
456 456
   format_channels = 0;
457 457
   format_colors = 0;
458 458
   device = "/dev/null";
459
+  serial_settings = 0;
459 460
   serial_settings_change = 0;
460 461
   reopen_device = 0;
461 462
   for( i = 1; i < argCnt; i++ )
... ...
@@ -1,6 +1,6 @@
1 1
 /* BlinkenLib
2
- * version 0.5.2 date 2006-05-10
3
- * Copyright 2004-2006 Stefan Schuermans <1stein@schuermans.info>
2
+ * version 0.5.3 date 2007-12-28
3
+ * Copyright 2004-2007 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
  */
... ...
@@ -350,8 +350,8 @@ int main( int argCnt, char * * args )
350 350
 
351 351
   //print info
352 352
   printf( "BlinkenLib - BlinkenOutput\n"
353
-          "version 0.5.2 date 2006-05-10\n"
354
-          "Copyright 2004-2006 Stefan Schuermans <1stein@schuermans.info>\n"
353
+          "version 0.5.3 date 2007-12-28\n"
354
+          "Copyright 2004-2007 Stefan Schuermans <stefan@schuermans.info>\n"
355 355
           "Copyleft: GNU public license - http://www.gnu.org/copyleft/gpl.html\n"
356 356
           "a blinkenarea.org project\n\n" );
357 357
 
... ...
@@ -1,6 +1,6 @@
1 1
 /* BlinkenLib
2
- * version 0.5.2 date 2006-05-10
3
- * Copyright 2004-2006 Stefan Schuermans <1stein@schuermans.info>
2
+ * version 0.5.3 date 2007-12-28
3
+ * Copyright 2004-2007 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
  */
... ...
@@ -32,8 +32,8 @@ int main( int argCnt, char * * args )
32 32
 
33 33
   //print info
34 34
   printf( "BlinkenLib - BlinkenRecv\n"
35
-          "version 0.5.2 date 2006-05-10\n"
36
-          "Copyright 2004-2006 Stefan Schuermans <1stein@schuermans.info>\n"
35
+          "version 0.5.3 date 2007-12-28\n"
36
+          "Copyright 2004-2007 Stefan Schuermans <stefan@schuermans.info>\n"
37 37
           "Copyleft: GNU public license - http://www.gnu.org/copyleft/gpl.html\n"
38 38
           "a blinkenarea.org project\n\n" );
39 39
 
... ...
@@ -1,6 +1,6 @@
1 1
 /* BlinkenLib
2
- * version 0.5.2 date 2006-05-10
3
- * Copyright 2004-2006 Stefan Schuermans <1stein@schuermans.info>
2
+ * version 0.5.3 date 2007-12-28
3
+ * Copyright 2004-2007 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
  */
... ...
@@ -35,8 +35,8 @@ int main( int argCnt, char * * args )
35 35
 
36 36
   //print info
37 37
   printf( "BlinkenLib - BlinkenSend\n"
38
-          "version 0.5.2 date 2006-05-10\n"
39
-          "Copyright 2004-2006 Stefan Schuermans <1stein@schuermans.info>\n"
38
+          "version 0.5.3 date 2007-12-28\n"
39
+          "Copyright 2004-2007 Stefan Schuermans <stefan@schuermans.info>\n"
40 40
           "Copyleft: GNU public license - http://www.gnu.org/copyleft/gpl.html\n"
41 41
           "a blinkenarea.org project\n\n" );
42 42
 
... ...
@@ -1,3 +1,8 @@
1
+0.5.3 2007-12-28
2
+----------------
3
+implemented colorizer in BlinkenConv
4
+removed some warnings
5
+
1 6
 0.5.2 2006-05-10
2 7
 ----------------
3 8
 adaptions for Windows
... ...
@@ -1,6 +1,6 @@
1 1
 # BlinkenLib
2
-# version 0.5.2 date 2006-05-10
3
-# Copyright 2004-2006 Stefan Schuermans <1stein@schuermans.info>
2
+# version 0.5.3 date 2007-12-28
3
+# Copyright 2004-2007 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
 
... ...
@@ -15,7 +15,10 @@ RANLIB=ranlib
15 15
 
16 16
 all: BlinkenLib.a BlinkenConv BlinkenSend BlinkenRecv BlinkenOutput
17 17
 
18
-BlinkenFrame.o: BlinkenFrame.c BlinkenFrame.h Tools.h
18
+BlinkenColorizer.o: BlinkenColorizer.c BlinkenColorizer.h Tools.h
19
+	$(CC) $(CFLAGS) -c -o BlinkenColorizer.o BlinkenColorizer.c
20
+
21
+BlinkenFrame.o: BlinkenFrame.c BlinkenFrame.h BlinkenColorizer.h Tools.h
19 22
 	$(CC) $(CFLAGS) -c -o BlinkenFrame.o BlinkenFrame.c
20 23
 
21 24
 BlinkenMovie.o: BlinkenMovie.c BlinkenFrame.h BlinkenMovie.h Tools.h
... ...
@@ -24,8 +27,8 @@ BlinkenMovie.o: BlinkenMovie.c BlinkenFrame.h BlinkenMovie.h Tools.h
24 27
 Tools.o: Tools.c Tools.h
25 28
 	$(CC) $(CFLAGS) -c -o Tools.o Tools.c
26 29
 
27
-BlinkenLib.a: BlinkenFrame.o BlinkenMovie.o Tools.o
28
-	$(AR) $(ARFLAGS) BlinkenLib.a BlinkenFrame.o BlinkenMovie.o Tools.o
30
+BlinkenLib.a: BlinkenColorizer.o BlinkenFrame.o BlinkenMovie.o Tools.o
31
+	$(AR) $(ARFLAGS) BlinkenLib.a BlinkenColorizer.o BlinkenFrame.o BlinkenMovie.o Tools.o
29 32
 	$(RANLIB) BlinkenLib.a
30 33
 
31 34
 BlinkenConv.o: BlinkenConv.c BlinkenLib.h
... ...
@@ -1,6 +1,6 @@
1 1
 /* BlinkenLib
2
- * version 0.5.2 date 2006-05-10
3
- * Copyright 2004-2006 Stefan Schuermans <1stein@schuermans.info>
2
+ * version 0.5.3 date 2007-12-28
3
+ * Copyright 2004-2007 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
  */
... ...
@@ -1,6 +1,6 @@
1 1
 /* BlinkenLib
2
- * version 0.5.2 date 2006-05-10
3
- * Copyright 2004-2006 Stefan Schuermans <1stein@schuermans.info>
2
+ * version 0.5.3 date 2007-12-28
3
+ * Copyright 2004-2007 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
  */
... ...
@@ -8,6 +8,8 @@
8 8
 #ifndef INC_Tools
9 9
 #define INC_Tools
10 10
 
11
+#define arr_cnt( arr ) (sizeof( (arr) ) / sizeof( (arr)[0] ))
12
+
11 13
 void * malloc1D( int count1, int size );
12 14
 
13 15
 void * * malloc2D( int count1, int count2, int size );
14 16