Chris Styles / PixelArray

Dependents:   ChrisRGB-Ring ChrisRGB-Ring WS2812_Example WS2812_Example_fade ... more

Files at this revision

API Documentation at this revision

Comitter:
chris
Date:
Wed Aug 06 08:23:13 2014 +0000
Parent:
0:bdce2379bd67
Child:
2:b45a70faaa83
Commit message:
Added dynamic (compile time) buffer size

Changed in this revision

PixelArray.cpp Show annotated file Show diff for this revision Revisions of this file
PixelArray.h Show annotated file Show diff for this revision Revisions of this file
--- a/PixelArray.cpp	Sat Aug 02 21:45:04 2014 +0000
+++ b/PixelArray.cpp	Wed Aug 06 08:23:13 2014 +0000
@@ -2,29 +2,20 @@
 
 PixelArray::PixelArray(int size)
 {
-    __bufsize = size;
+    pbufsize = size;
+    pbuf = new int[pbufsize];
+    
 }
 
-
-
 PixelArray::~PixelArray()
 {
+    delete[] pbuf;
 }
 
-
-// 0 = blue, 1 = red, 2 = green, 3 = brightness
-
-
-
-void PixelArray::clear()
-{
-}
-
-
 void PixelArray::SetAll(unsigned int value)
 {
     // for each pixel
-    for (int i=0 ; i < __bufsize; i++) {
+    for (int i=0 ; i < pbufsize; i++) {
         __set_pixel(i,value);
     }
 }
@@ -33,7 +24,7 @@
 void PixelArray::SetAllI(unsigned char value)
 {
     // for each pixel
-    for (int i=0 ; i < __bufsize; i++) {
+    for (int i=0 ; i < pbufsize; i++) {
         __set_pixel_component(i,3,value);
     }
 }
@@ -43,7 +34,7 @@
 void PixelArray::SetAllR(unsigned char value)
 {
     // for each pixel
-    for (int i=0 ; i < __bufsize; i++) {
+    for (int i=0 ; i < pbufsize; i++) {
         __set_pixel_component(i,2,value);
     }
 }
@@ -51,7 +42,7 @@
 void PixelArray::SetAllG(unsigned char value)
 {
     // for each pixel
-    for (int i=0 ; i < __bufsize; i++) {
+    for (int i=0 ; i < pbufsize; i++) {
         __set_pixel_component(i,1,value);
     }
 }
@@ -59,7 +50,7 @@
 void PixelArray::SetAllB(unsigned char value)
 {
     // for each pixel
-    for (int i=0 ; i < __bufsize; i++) {
+    for (int i=0 ; i < pbufsize; i++) {
         __set_pixel_component(i,0,value);
     }
 }
@@ -70,7 +61,7 @@
 
 void PixelArray::Set(int i, unsigned int value)
 {
-    if ((i >= 0) && (i < __bufsize)) {
+    if ((i >= 0) && (i < pbufsize)) {
         __set_pixel(i,value);
     }
 }
@@ -79,7 +70,7 @@
 
 void PixelArray::SetI(int i, unsigned char value)
 {
-    if ((i >= 0) && (i < __bufsize)) {
+    if ((i >= 0) && (i < pbufsize)) {
         __set_pixel_component(i,3,value);
     }
 }
@@ -87,51 +78,41 @@
 
 void PixelArray::SetR(int i, unsigned char value)
 {
-    if ((i >= 0) && (i < __bufsize)) {
+    if ((i >= 0) && (i < pbufsize)) {
         __set_pixel_component(i,2,value);
     }
 }
 
 void PixelArray::SetG(int i, unsigned char value)
 {
-    if ((i >= 0) && (i < __bufsize)) {
+    if ((i >= 0) && (i < pbufsize)) {
         __set_pixel_component(i,1,value);
     }
 }
 
 void PixelArray::SetB(int i, unsigned char value)
 {
-    if ((i >= 0) && (i < __bufsize)) {
+    if ((i >= 0) && (i < pbufsize)) {
         __set_pixel_component(i,0,value);
     }
 }
 
 
-
-
-
-
-
-
-
 int* PixelArray::getBuf()
 {
-    return (__pbuf);
+    return (pbuf);
 }
 
 
-
-
-
 // set either the I,R,G,B value of specific pixel channel
 void PixelArray::__set_pixel_component(int index, int channel, int value)
 {
 
     // AND with 0x00 shifted to the right location to clear the bits
-    __pbuf[index] &= ~(0xFF << (8 * channel));
+    pbuf[index] &= ~(0xFF << (8 * channel));
 
     // Set the bits with an OR
-    __pbuf[index] |= (value << (8 * channel));
+    pbuf[index] |= (value << (8 * channel));
 }
 
 
@@ -139,10 +120,7 @@
 void PixelArray::__set_pixel(int index, int value)
 {
     // AND with 0x00 shifted to the right location to clear the bits
-    __pbuf[index] = value;
+    pbuf[index] = value;
 }
 
 
-
-
-
--- a/PixelArray.h	Sat Aug 02 21:45:04 2014 +0000
+++ b/PixelArray.h	Wed Aug 06 08:23:13 2014 +0000
@@ -21,8 +21,6 @@
 
 #include "mbed.h"
 
-#define BUFSIZE 8
-
 //!Library for the WS2812 RGB LED with integrated controller
 /*!
 PixelArray
@@ -41,7 +39,6 @@
     */
     ~PixelArray();
 
-    void clear();
     int* getBuf();
     
     void SetAll(unsigned int);
@@ -57,16 +54,14 @@
     void SetG(int, unsigned char);
     void SetB(int, unsigned char);
 
-
 private:
 
-    int __bufsize;
-    int __pbuf[8];
+    int *pbuf;
+    int pbufsize;
 
     void __set_pixel_component(int index, int channel, int value);
     void __set_pixel(int index, int value);
 
-
 };
 
 #endif