summaryrefslogtreecommitdiff
path: root/Colours.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Colours.cpp')
-rw-r--r--Colours.cpp22
1 files changed, 19 insertions, 3 deletions
diff --git a/Colours.cpp b/Colours.cpp
index bb77e85..50b782d 100644
--- a/Colours.cpp
+++ b/Colours.cpp
@@ -6,6 +6,16 @@
#include "Colours.h"
Colours::Colours(int rPin,int gPin,int bPin) {
+ _initPINs(rPin,gPin,bPin);
+ _invert = false;
+}
+
+Colours::Colours(int rPin,int gPin,int bPin,bool invert) {
+ _initPINs(rPin,gPin,bPin);
+ _invert = invert;
+}
+
+void Colours::_initPINs(int rPin,int gPin,int bPin) {
_rPin = rPin;
_gPin = gPin;
_bPin = bPin;
@@ -15,9 +25,15 @@ Colours::Colours(int rPin,int gPin,int bPin) {
}
void Colours::writeRGB(unsigned char r,unsigned char g,unsigned char b) {
- analogWrite(_rPin, r);
- analogWrite(_gPin, g);
- analogWrite(_bPin, b);
+ if (_invert) {
+ analogWrite(_rPin, 255-r);
+ analogWrite(_gPin, 255-g);
+ analogWrite(_bPin, 255-b);
+ } else {
+ analogWrite(_rPin, r);
+ analogWrite(_gPin, g);
+ analogWrite(_bPin, b);
+ }
}
void Colours::writeHSV(unsigned int h,unsigned char s,unsigned char v) {