                 byte red, byte green, byte blue, byte yellow, byte white,
                 byte flash, byte strobe, byte fade, byte smooth ) {
   // with this information set up codes
-  
+
   this->addressC = address;
   this->sendCount = sendCount;
-  
+
   this->onC = on;
   this->offC = off;
   this->upC = up;
   this->downC = down;
-  
+
   this->redC = red;
   this->greenC = green;
   this->blueC = blue;
   this->yellowC = yellow;
   this->whiteC = white;
-  
+
   this->flashC = flash;
   this->strobeC = strobe;
   this->fadeC = fade;
   this->smoothC = smooth;
-  
+
   this->currentColor = 255; // not set
   this->isOn = false;
-  
+
 }
 
 void IRlight::color(byte color) {
-  
+
   // turn on.
   if( !this->isOn ) this->on();
 
   if( this->isOn && color == currentColor ) return; // no need.
-  
+
   // track
   currentColor = color;
-  
+
   switch( color ) {
     case I_RED: send(redC); break;
     case I_GRN: send(greenC); break;
     case I_BLU: send(blueC); break;
     case I_YEL: send(yellowC); break;
     default: send(whiteC); break;
-  } 
+  }
 
 }
 


unsigned long IRlight::generateCode(byte code) {
  unsigned long retCode=0;
  
//  Serial << "generateCode: address=" << _HEX(address) << " code=" << _HEX(code) << " complement=" << _HEX(255 & ~code) << endl;
  
  retCode |= ((unsigned long)this->addressC) << 16;
  retCode |= ((unsigned long)code) << 8;
  retCode |= (255 & ~code);
  
  return( retCode );
}


      else if( newColorInst.red > 0 ) setColor(I_RED);
      else if( newColorInst.green > 0 ) setColor(I_GRN);
      else if( newColorInst.blue > 0 ) setColor(I_BLU);
      //      else setOff();
      //      else setColor(4); // default to on, but rotating colors.
      //      else setFade(); // default to on, but rotating colors.
      else setSmooth(); // default to on, but rotating colors.

      lastColorInst = newColorInst;
    }
  }

}

