102 lines
1.8 KiB
C++
102 lines
1.8 KiB
C++
#include "lightmux.h"
|
|
|
|
LightMux::LightMux()
|
|
{
|
|
temperatur = warmest_temperature;
|
|
brightness = 0;
|
|
}
|
|
|
|
|
|
void LightMux::decBrightness(){
|
|
brightness--;
|
|
if(brightness < 0){
|
|
brightness = 0;
|
|
}
|
|
}
|
|
|
|
void LightMux::incBrightness(){
|
|
brightness++;
|
|
if(brightness > 100){
|
|
brightness = 100;
|
|
}
|
|
}
|
|
|
|
void LightMux::setBrightness(int val){
|
|
|
|
brightness = val;
|
|
|
|
if(brightness < 0){
|
|
brightness = 0;
|
|
}
|
|
|
|
if(brightness > 100){
|
|
brightness = 100;
|
|
}
|
|
|
|
}
|
|
|
|
void LightMux::warm_Temperature(){
|
|
temperatur = temperatur - steps_temperature;
|
|
if(temperatur < warmest_temperature){
|
|
temperatur = warmest_temperature;
|
|
}
|
|
}
|
|
|
|
void LightMux::cold_Temperature(){
|
|
temperatur = temperatur + steps_temperature;
|
|
if(temperatur > coldest_temperature){
|
|
temperatur = coldest_temperature;
|
|
}
|
|
}
|
|
|
|
void LightMux::setTemperature(int requested_val){
|
|
|
|
int current_temp = warmest_temperature;
|
|
|
|
/* out of range */
|
|
|
|
if(requested_val < warmest_temperature){
|
|
temperatur = warmest_temperature;
|
|
return;
|
|
}
|
|
|
|
if(requested_val > coldest_temperature){
|
|
temperatur = coldest_temperature;
|
|
return;
|
|
}
|
|
|
|
/* between range, map to steps */
|
|
|
|
while(true){
|
|
if(requested_val <= current_temp){
|
|
|
|
temperatur = current_temp;
|
|
|
|
int diff = current_temp - requested_val;
|
|
|
|
if(diff > (steps_temperature/2)){
|
|
warm_Temperature();
|
|
}
|
|
|
|
return;
|
|
}
|
|
current_temp = current_temp + steps_temperature;
|
|
}
|
|
}
|
|
|
|
int LightMux::getBrightness(){
|
|
return brightness;
|
|
}
|
|
|
|
int LightMux::getTemperature(){
|
|
return temperatur;
|
|
}
|
|
|
|
int LightMux::getColdest_temperature(){
|
|
return coldest_temperature;
|
|
}
|
|
|
|
int LightMux::getWarmest_temperature(){
|
|
return warmest_temperature;
|
|
}
|