OpenFilmLightController/FilmLightController/lightmux.cpp
2019-02-09 15:11:46 +01:00

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;
}