Object Model code with hardware support

Dependencies:   mbed

Committer:
bgrissom
Date:
Fri Sep 05 00:07:44 2014 +0000
Revision:
0:2b4bbe9ea495
Object Model code with Toshiba S0 and S1 routines compiles with ST F401RE board support.  If you try to compile this for the F030 or F072, it will run out of SRAM space.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bgrissom 0:2b4bbe9ea495 1 #include <cstddef>
bgrissom 0:2b4bbe9ea495 2 #include <string.h>
bgrissom 0:2b4bbe9ea495 3 #include "defines.hpp"
bgrissom 0:2b4bbe9ea495 4 #include "configs.hpp"
bgrissom 0:2b4bbe9ea495 5 #include "anthem.hpp"
bgrissom 0:2b4bbe9ea495 6
bgrissom 0:2b4bbe9ea495 7 #include <stdio.h>
bgrissom 0:2b4bbe9ea495 8
bgrissom 0:2b4bbe9ea495 9 LEDModule::LEDModule(void)
bgrissom 0:2b4bbe9ea495 10 : _rowNum(MODULE_HEIGHT),
bgrissom 0:2b4bbe9ea495 11 _colNum(MODULE_WIDTH)
bgrissom 0:2b4bbe9ea495 12 {
bgrissom 0:2b4bbe9ea495 13 int i = 0;
bgrissom 0:2b4bbe9ea495 14
bgrissom 0:2b4bbe9ea495 15 // Read in 3 things from the EEPROM:
bgrissom 0:2b4bbe9ea495 16 // - LED driver to pixel mapping
bgrissom 0:2b4bbe9ea495 17 // - Scan group to pixel mapping
bgrissom 0:2b4bbe9ea495 18 // - LED driver channel to pixel mapping
bgrissom 0:2b4bbe9ea495 19
bgrissom 0:2b4bbe9ea495 20 // Also read in other auxillary data from EEPROM:
bgrissom 0:2b4bbe9ea495 21 // - Module brightness
bgrissom 0:2b4bbe9ea495 22
bgrissom 0:2b4bbe9ea495 23 _moduleBrightness = 1.0f; // FIXME get from EEPROM
bgrissom 0:2b4bbe9ea495 24
bgrissom 0:2b4bbe9ea495 25 // FIXME where does this come from? It will change depending on day/night correct?
bgrissom 0:2b4bbe9ea495 26 _displayBrightness = 1.0f;
bgrissom 0:2b4bbe9ea495 27
bgrissom 0:2b4bbe9ea495 28 //--------------------------------------------
bgrissom 0:2b4bbe9ea495 29 // SCAN GROUPS
bgrissom 0:2b4bbe9ea495 30 //--------------------------------------------
bgrissom 0:2b4bbe9ea495 31 ScanGroup *lastScanGroup = NULL;
bgrissom 0:2b4bbe9ea495 32 for (i = 0; i < NUM_SCANGROUPS; i++) {
bgrissom 0:2b4bbe9ea495 33 if (i == 0) {
bgrissom 0:2b4bbe9ea495 34 _currentScanGroup = &_scanGroupArray[i];
bgrissom 0:2b4bbe9ea495 35 }
bgrissom 0:2b4bbe9ea495 36
bgrissom 0:2b4bbe9ea495 37 // Tie the last to this one
bgrissom 0:2b4bbe9ea495 38 if (lastScanGroup != NULL) {
bgrissom 0:2b4bbe9ea495 39 lastScanGroup->_nextScanGroup = &_scanGroupArray[i];
bgrissom 0:2b4bbe9ea495 40 }
bgrissom 0:2b4bbe9ea495 41
bgrissom 0:2b4bbe9ea495 42 // If we are the last, tie it to the first
bgrissom 0:2b4bbe9ea495 43 if (i == (NUM_SCANGROUPS-1)) {
bgrissom 0:2b4bbe9ea495 44 _scanGroupArray[i]._nextScanGroup = &_scanGroupArray[0];
bgrissom 0:2b4bbe9ea495 45 }
bgrissom 0:2b4bbe9ea495 46
bgrissom 0:2b4bbe9ea495 47 lastScanGroup = &_scanGroupArray[i];
bgrissom 0:2b4bbe9ea495 48 }
bgrissom 0:2b4bbe9ea495 49 //--------------------------------------------
bgrissom 0:2b4bbe9ea495 50 //--------------------------------------------
bgrissom 0:2b4bbe9ea495 51
bgrissom 0:2b4bbe9ea495 52
bgrissom 0:2b4bbe9ea495 53 //--------------------------------------------
bgrissom 0:2b4bbe9ea495 54 // LED DRIVERS
bgrissom 0:2b4bbe9ea495 55 //--------------------------------------------
bgrissom 0:2b4bbe9ea495 56 ToshibaTC62D723 *lastDriver = NULL;
bgrissom 0:2b4bbe9ea495 57 for (i = 0; i < NUM_LED_DRIVERS; i++) {
bgrissom 0:2b4bbe9ea495 58 if (i == 0) {
bgrissom 0:2b4bbe9ea495 59 _dataOutDriver = &_ledDriverArray[i];
bgrissom 0:2b4bbe9ea495 60 }
bgrissom 0:2b4bbe9ea495 61
bgrissom 0:2b4bbe9ea495 62 // Tie the last to this one
bgrissom 0:2b4bbe9ea495 63 if (lastDriver != NULL) {
bgrissom 0:2b4bbe9ea495 64 lastDriver->_dataOut = &_ledDriverArray[i];
bgrissom 0:2b4bbe9ea495 65 _ledDriverArray[i]._dataIn = lastDriver;
bgrissom 0:2b4bbe9ea495 66 }
bgrissom 0:2b4bbe9ea495 67
bgrissom 0:2b4bbe9ea495 68 if (i == (NUM_LED_DRIVERS-1)) {
bgrissom 0:2b4bbe9ea495 69 _dataInDriver = &_ledDriverArray[i];
bgrissom 0:2b4bbe9ea495 70 }
bgrissom 0:2b4bbe9ea495 71
bgrissom 0:2b4bbe9ea495 72 lastDriver = &_ledDriverArray[i];
bgrissom 0:2b4bbe9ea495 73 }
bgrissom 0:2b4bbe9ea495 74 //--------------------------------------------
bgrissom 0:2b4bbe9ea495 75 //--------------------------------------------
bgrissom 0:2b4bbe9ea495 76
bgrissom 0:2b4bbe9ea495 77
bgrissom 0:2b4bbe9ea495 78 //--------------------------------------------
bgrissom 0:2b4bbe9ea495 79 // LED PIXELS
bgrissom 0:2b4bbe9ea495 80 //--------------------------------------------
bgrissom 0:2b4bbe9ea495 81 int x = 0;
bgrissom 0:2b4bbe9ea495 82 int y = 0;
bgrissom 0:2b4bbe9ea495 83 for (y = 0; y < MODULE_WIDTH; y++) {
bgrissom 0:2b4bbe9ea495 84 for (x = 0; x < MODULE_HEIGHT; x++) {
bgrissom 0:2b4bbe9ea495 85 // FIXME Get the calibration factor from EEPROM
bgrissom 0:2b4bbe9ea495 86 _pixel[x][y].setCalibrationFactor(1.0f);
bgrissom 0:2b4bbe9ea495 87 // FIXME Get the calibration factor from EEPROM
bgrissom 0:2b4bbe9ea495 88 _pixel[x][y]. _redLED.setCalibrationFactor(1.0f);
bgrissom 0:2b4bbe9ea495 89 _pixel[x][y]._greenLED.setCalibrationFactor(1.0f);
bgrissom 0:2b4bbe9ea495 90 _pixel[x][y]. _blueLED.setCalibrationFactor(1.0f);
bgrissom 0:2b4bbe9ea495 91 _pixel[x][y]. _redLED._ledDriver = &_ledDriverArray[ g_driverChain[g_pix2Drv[x][y]. redDrv] ];
bgrissom 0:2b4bbe9ea495 92 _pixel[x][y]._greenLED._ledDriver = &_ledDriverArray[ g_driverChain[g_pix2Drv[x][y].greenDrv] ];
bgrissom 0:2b4bbe9ea495 93 _pixel[x][y]. _blueLED._ledDriver = &_ledDriverArray[ g_driverChain[g_pix2Drv[x][y]. blueDrv] ];
bgrissom 0:2b4bbe9ea495 94 _pixel[x][y]. _redLED.setDriverChannelNum(g_pix2DrvChan[x][y]);
bgrissom 0:2b4bbe9ea495 95 _pixel[x][y]._greenLED.setDriverChannelNum(g_pix2DrvChan[x][y]);
bgrissom 0:2b4bbe9ea495 96 _pixel[x][y]. _blueLED.setDriverChannelNum(g_pix2DrvChan[x][y]);
bgrissom 0:2b4bbe9ea495 97
bgrissom 0:2b4bbe9ea495 98 // Nothing needs to change for column-based vs row-based scangroups
bgrissom 0:2b4bbe9ea495 99 _scanGroupArray[ g_pix2ScanGroup[x][y] ].addLED( &(_pixel[x][y]. _redLED) );
bgrissom 0:2b4bbe9ea495 100 _scanGroupArray[ g_pix2ScanGroup[x][y] ].addLED( &(_pixel[x][y]._greenLED) );
bgrissom 0:2b4bbe9ea495 101 _scanGroupArray[ g_pix2ScanGroup[x][y] ].addLED( &(_pixel[x][y]. _blueLED) );
bgrissom 0:2b4bbe9ea495 102 }
bgrissom 0:2b4bbe9ea495 103 }
bgrissom 0:2b4bbe9ea495 104 //--------------------------------------------
bgrissom 0:2b4bbe9ea495 105 //--------------------------------------------
bgrissom 0:2b4bbe9ea495 106 }
bgrissom 0:2b4bbe9ea495 107
bgrissom 0:2b4bbe9ea495 108
bgrissom 0:2b4bbe9ea495 109 LEDModule::~LEDModule(void)
bgrissom 0:2b4bbe9ea495 110 {
bgrissom 0:2b4bbe9ea495 111 }
bgrissom 0:2b4bbe9ea495 112
bgrissom 0:2b4bbe9ea495 113 void LEDModule::displayImage(void)
bgrissom 0:2b4bbe9ea495 114 {
bgrissom 0:2b4bbe9ea495 115 int i = 0;
bgrissom 0:2b4bbe9ea495 116
bgrissom 0:2b4bbe9ea495 117 adjustImage();
bgrissom 0:2b4bbe9ea495 118
bgrissom 0:2b4bbe9ea495 119 for (i = 0; i < NUM_SCANGROUPS; i++) {
bgrissom 0:2b4bbe9ea495 120 BAGINFO3("\nScanGroup[%d]", i);
bgrissom 0:2b4bbe9ea495 121 _scanGroupArray[i].mapLEDsToDrivers();
bgrissom 0:2b4bbe9ea495 122 shiftBrightnessDataIn();
bgrissom 0:2b4bbe9ea495 123 enableNextScanGroup();
bgrissom 0:2b4bbe9ea495 124 ToshibaTC62D723::outputBrightnessDataToLEDs();
bgrissom 0:2b4bbe9ea495 125 }
bgrissom 0:2b4bbe9ea495 126 }
bgrissom 0:2b4bbe9ea495 127
bgrissom 0:2b4bbe9ea495 128
bgrissom 0:2b4bbe9ea495 129 void LEDModule::adjustImage(void)
bgrissom 0:2b4bbe9ea495 130 {
bgrissom 0:2b4bbe9ea495 131 int x = 0;
bgrissom 0:2b4bbe9ea495 132 int y = 0;
bgrissom 0:2b4bbe9ea495 133 PixelColor oldColor;
bgrissom 0:2b4bbe9ea495 134 for (y = 0; y < MODULE_WIDTH; y++) {
bgrissom 0:2b4bbe9ea495 135 for (x = 0; x < MODULE_HEIGHT; x++) {
bgrissom 0:2b4bbe9ea495 136 oldColor = _sourceImage.getPixel(x, y);
bgrissom 0:2b4bbe9ea495 137 _pixel[x][y]._redLED.setBrightness
bgrissom 0:2b4bbe9ea495 138 (
bgrissom 0:2b4bbe9ea495 139 oldColor._r * 256
bgrissom 0:2b4bbe9ea495 140 * _displayBrightness
bgrissom 0:2b4bbe9ea495 141 * _moduleBrightness
bgrissom 0:2b4bbe9ea495 142 * _pixel[x][y].getCalibrationFactor()
bgrissom 0:2b4bbe9ea495 143 * _pixel[x][y]._redLED.getCalibrationFactor()
bgrissom 0:2b4bbe9ea495 144 );
bgrissom 0:2b4bbe9ea495 145 _pixel[x][y]._greenLED.setBrightness
bgrissom 0:2b4bbe9ea495 146 (
bgrissom 0:2b4bbe9ea495 147 oldColor._g * 256
bgrissom 0:2b4bbe9ea495 148 * _displayBrightness
bgrissom 0:2b4bbe9ea495 149 * _moduleBrightness
bgrissom 0:2b4bbe9ea495 150 * _pixel[x][y].getCalibrationFactor()
bgrissom 0:2b4bbe9ea495 151 * _pixel[x][y]._greenLED.getCalibrationFactor()
bgrissom 0:2b4bbe9ea495 152 );
bgrissom 0:2b4bbe9ea495 153 _pixel[x][y]._blueLED.setBrightness
bgrissom 0:2b4bbe9ea495 154 (
bgrissom 0:2b4bbe9ea495 155 oldColor._b * 256
bgrissom 0:2b4bbe9ea495 156 * _displayBrightness
bgrissom 0:2b4bbe9ea495 157 * _moduleBrightness
bgrissom 0:2b4bbe9ea495 158 * _pixel[x][y].getCalibrationFactor()
bgrissom 0:2b4bbe9ea495 159 * _pixel[x][y]._blueLED.getCalibrationFactor()
bgrissom 0:2b4bbe9ea495 160 );
bgrissom 0:2b4bbe9ea495 161 }
bgrissom 0:2b4bbe9ea495 162 }
bgrissom 0:2b4bbe9ea495 163 }
bgrissom 0:2b4bbe9ea495 164
bgrissom 0:2b4bbe9ea495 165
bgrissom 0:2b4bbe9ea495 166 void LEDModule::shiftBrightnessDataIn(void)
bgrissom 0:2b4bbe9ea495 167 {
bgrissom 0:2b4bbe9ea495 168 int i = 0; // Driver index
bgrissom 0:2b4bbe9ea495 169 int chan = 0; // Channel
bgrissom 0:2b4bbe9ea495 170 for (i = NUM_LED_DRIVERS-1; i >= 0; i--) {
bgrissom 0:2b4bbe9ea495 171 BAGINFO3("\nDRV[%02d]", g_dbgDrvChain[i]);
bgrissom 0:2b4bbe9ea495 172 for (chan = (ToshibaTC62D723::NUM_CHANNELS)-1; chan >= 0; chan--) {
bgrissom 0:2b4bbe9ea495 173 ToshibaTC62D723::shiftBrightnessDataIn(_ledDriverArray[i]._channelBrightness[chan]);
bgrissom 0:2b4bbe9ea495 174 }
bgrissom 0:2b4bbe9ea495 175 }
bgrissom 0:2b4bbe9ea495 176 }
bgrissom 0:2b4bbe9ea495 177
bgrissom 0:2b4bbe9ea495 178
bgrissom 0:2b4bbe9ea495 179 void LEDModule::enableNextScanGroup(void)
bgrissom 0:2b4bbe9ea495 180 {
bgrissom 0:2b4bbe9ea495 181 ScanGroup *lastScanGroup = NULL;
bgrissom 0:2b4bbe9ea495 182 if (_currentScanGroup != NULL) {
bgrissom 0:2b4bbe9ea495 183 lastScanGroup = _currentScanGroup;
bgrissom 0:2b4bbe9ea495 184 if (_currentScanGroup->_nextScanGroup != NULL) {
bgrissom 0:2b4bbe9ea495 185 _currentScanGroup = _currentScanGroup->_nextScanGroup;
bgrissom 0:2b4bbe9ea495 186 setPinToValue(lastScanGroup->getTransistorMCUPinNum(), LOW);
bgrissom 0:2b4bbe9ea495 187 setPinToValue(_currentScanGroup->getTransistorMCUPinNum(), HIGH);
bgrissom 0:2b4bbe9ea495 188 }
bgrissom 0:2b4bbe9ea495 189 }
bgrissom 0:2b4bbe9ea495 190 }
bgrissom 0:2b4bbe9ea495 191
bgrissom 0:2b4bbe9ea495 192
bgrissom 0:2b4bbe9ea495 193 void LEDModule::setPinToValue(int p_pin, int p_val)
bgrissom 0:2b4bbe9ea495 194 {
bgrissom 0:2b4bbe9ea495 195 // TODO
bgrissom 0:2b4bbe9ea495 196 // Set a GPIO value here
bgrissom 0:2b4bbe9ea495 197 }
bgrissom 0:2b4bbe9ea495 198
bgrissom 0:2b4bbe9ea495 199
bgrissom 0:2b4bbe9ea495 200 ScanGroup::ScanGroup(void)
bgrissom 0:2b4bbe9ea495 201 : _nextScanGroup(NULL),
bgrissom 0:2b4bbe9ea495 202 _transistorMCUPinNum(0),
bgrissom 0:2b4bbe9ea495 203 _index(0)
bgrissom 0:2b4bbe9ea495 204 {
bgrissom 0:2b4bbe9ea495 205 memset(_LEDs, 0, sizeof(LED*) * LEDS_PER_SCANGROUP);
bgrissom 0:2b4bbe9ea495 206 }
bgrissom 0:2b4bbe9ea495 207
bgrissom 0:2b4bbe9ea495 208
bgrissom 0:2b4bbe9ea495 209 ScanGroup::~ScanGroup(void)
bgrissom 0:2b4bbe9ea495 210 {
bgrissom 0:2b4bbe9ea495 211 // Its good practice to clear memory in the destructor
bgrissom 0:2b4bbe9ea495 212 memset(_LEDs, 0, sizeof(LED*) * LEDS_PER_SCANGROUP);
bgrissom 0:2b4bbe9ea495 213 }
bgrissom 0:2b4bbe9ea495 214
bgrissom 0:2b4bbe9ea495 215
bgrissom 0:2b4bbe9ea495 216 // For all individual LEDs in this scangroup, set its driver's
bgrissom 0:2b4bbe9ea495 217 // brightness for the appropriate channel.
bgrissom 0:2b4bbe9ea495 218 void ScanGroup::mapLEDsToDrivers(void)
bgrissom 0:2b4bbe9ea495 219 {
bgrissom 0:2b4bbe9ea495 220 int i = 0;
bgrissom 0:2b4bbe9ea495 221 for (i = 0; i < LEDS_PER_SCANGROUP; i++) {
bgrissom 0:2b4bbe9ea495 222 _LEDs[i]->_ledDriver->_channelBrightness[_LEDs[i]->getDriverChannelNum()] = _LEDs[i]->getBrightness();
bgrissom 0:2b4bbe9ea495 223 }
bgrissom 0:2b4bbe9ea495 224 }
bgrissom 0:2b4bbe9ea495 225
bgrissom 0:2b4bbe9ea495 226
bgrissom 0:2b4bbe9ea495 227 void ScanGroup::addLED(LED *p_led)
bgrissom 0:2b4bbe9ea495 228 {
bgrissom 0:2b4bbe9ea495 229 if ( (_index < LEDS_PER_SCANGROUP) &&
bgrissom 0:2b4bbe9ea495 230 (p_led != NULL)
bgrissom 0:2b4bbe9ea495 231 )
bgrissom 0:2b4bbe9ea495 232 {
bgrissom 0:2b4bbe9ea495 233 _LEDs[_index] = p_led;
bgrissom 0:2b4bbe9ea495 234 _index++;
bgrissom 0:2b4bbe9ea495 235 }
bgrissom 0:2b4bbe9ea495 236 }
bgrissom 0:2b4bbe9ea495 237
bgrissom 0:2b4bbe9ea495 238 int ScanGroup::getTransistorMCUPinNum(void)
bgrissom 0:2b4bbe9ea495 239 {
bgrissom 0:2b4bbe9ea495 240 // TODO
bgrissom 0:2b4bbe9ea495 241 return 0;
bgrissom 0:2b4bbe9ea495 242 }
bgrissom 0:2b4bbe9ea495 243
bgrissom 0:2b4bbe9ea495 244
bgrissom 0:2b4bbe9ea495 245 LEDPixel::LEDPixel(void)
bgrissom 0:2b4bbe9ea495 246 : _calibrationFactor(0.0f)
bgrissom 0:2b4bbe9ea495 247 {
bgrissom 0:2b4bbe9ea495 248 }
bgrissom 0:2b4bbe9ea495 249
bgrissom 0:2b4bbe9ea495 250 LEDPixel::~LEDPixel(void)
bgrissom 0:2b4bbe9ea495 251 {
bgrissom 0:2b4bbe9ea495 252 }
bgrissom 0:2b4bbe9ea495 253
bgrissom 0:2b4bbe9ea495 254 float LEDPixel::getCalibrationFactor(void)
bgrissom 0:2b4bbe9ea495 255 {
bgrissom 0:2b4bbe9ea495 256 return _calibrationFactor;
bgrissom 0:2b4bbe9ea495 257 }
bgrissom 0:2b4bbe9ea495 258
bgrissom 0:2b4bbe9ea495 259 void LEDPixel::setCalibrationFactor(float p_cal)
bgrissom 0:2b4bbe9ea495 260 {
bgrissom 0:2b4bbe9ea495 261 _calibrationFactor = p_cal;
bgrissom 0:2b4bbe9ea495 262 }
bgrissom 0:2b4bbe9ea495 263
bgrissom 0:2b4bbe9ea495 264
bgrissom 0:2b4bbe9ea495 265 LED::LED(void)
bgrissom 0:2b4bbe9ea495 266 : _ledDriver(NULL),
bgrissom 0:2b4bbe9ea495 267 _calibrationFactor(0.0f),
bgrissom 0:2b4bbe9ea495 268 _driverChannelNum(0),
bgrissom 0:2b4bbe9ea495 269 _brightness(0)
bgrissom 0:2b4bbe9ea495 270 {
bgrissom 0:2b4bbe9ea495 271 }
bgrissom 0:2b4bbe9ea495 272
bgrissom 0:2b4bbe9ea495 273 LED::~LED(void)
bgrissom 0:2b4bbe9ea495 274 {
bgrissom 0:2b4bbe9ea495 275 }
bgrissom 0:2b4bbe9ea495 276
bgrissom 0:2b4bbe9ea495 277 float LED::getCalibrationFactor(void)
bgrissom 0:2b4bbe9ea495 278 {
bgrissom 0:2b4bbe9ea495 279 return _calibrationFactor;
bgrissom 0:2b4bbe9ea495 280 }
bgrissom 0:2b4bbe9ea495 281
bgrissom 0:2b4bbe9ea495 282 void LED::setCalibrationFactor(float p_val)
bgrissom 0:2b4bbe9ea495 283 {
bgrissom 0:2b4bbe9ea495 284 _calibrationFactor = p_val;
bgrissom 0:2b4bbe9ea495 285 }
bgrissom 0:2b4bbe9ea495 286
bgrissom 0:2b4bbe9ea495 287 uint8_t LED::getDriverChannelNum(void)
bgrissom 0:2b4bbe9ea495 288 {
bgrissom 0:2b4bbe9ea495 289 return _driverChannelNum;
bgrissom 0:2b4bbe9ea495 290 }
bgrissom 0:2b4bbe9ea495 291
bgrissom 0:2b4bbe9ea495 292 void LED::setDriverChannelNum(uint8_t p_val)
bgrissom 0:2b4bbe9ea495 293 {
bgrissom 0:2b4bbe9ea495 294 _driverChannelNum = p_val;
bgrissom 0:2b4bbe9ea495 295 }
bgrissom 0:2b4bbe9ea495 296
bgrissom 0:2b4bbe9ea495 297 uint16_t LED::getBrightness(void)
bgrissom 0:2b4bbe9ea495 298 {
bgrissom 0:2b4bbe9ea495 299 return _brightness;
bgrissom 0:2b4bbe9ea495 300 }
bgrissom 0:2b4bbe9ea495 301
bgrissom 0:2b4bbe9ea495 302 void LED::setBrightness(uint16_t p_val)
bgrissom 0:2b4bbe9ea495 303 {
bgrissom 0:2b4bbe9ea495 304 _brightness = p_val;
bgrissom 0:2b4bbe9ea495 305 }
bgrissom 0:2b4bbe9ea495 306
bgrissom 0:2b4bbe9ea495 307
bgrissom 0:2b4bbe9ea495 308 Image::Image(void)
bgrissom 0:2b4bbe9ea495 309 {
bgrissom 0:2b4bbe9ea495 310 }
bgrissom 0:2b4bbe9ea495 311 Image::~Image(void)
bgrissom 0:2b4bbe9ea495 312 {
bgrissom 0:2b4bbe9ea495 313 }
bgrissom 0:2b4bbe9ea495 314 PixelColor Image::getPixel(uint16_t x, uint16_t y)
bgrissom 0:2b4bbe9ea495 315 {
bgrissom 0:2b4bbe9ea495 316 return _imgPixel[x][y];
bgrissom 0:2b4bbe9ea495 317 }
bgrissom 0:2b4bbe9ea495 318 void Image::setPixel(uint16_t x, uint16_t y, PixelColor p_pix)
bgrissom 0:2b4bbe9ea495 319 {
bgrissom 0:2b4bbe9ea495 320 _imgPixel[x][y] = p_pix;
bgrissom 0:2b4bbe9ea495 321 }
bgrissom 0:2b4bbe9ea495 322
bgrissom 0:2b4bbe9ea495 323
bgrissom 0:2b4bbe9ea495 324 PixelColor::PixelColor(void)
bgrissom 0:2b4bbe9ea495 325 : _r(0), _g(0), _b(0)
bgrissom 0:2b4bbe9ea495 326 {
bgrissom 0:2b4bbe9ea495 327 }
bgrissom 0:2b4bbe9ea495 328 PixelColor::~PixelColor(void)
bgrissom 0:2b4bbe9ea495 329 {
bgrissom 0:2b4bbe9ea495 330 }