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