diff --git a/AlterBrightness.cpp b/AlterBrightness.cpp index 1e9a4ff..7425ae3 100644 --- a/AlterBrightness.cpp +++ b/AlterBrightness.cpp @@ -2,9 +2,12 @@ #include #include #include "AlterBrightness.h" +#include "Brightness.h" AlterBrightness::AlterBrightness() { + currentBrightness = Brightness::getCurrentBrightness(); + maxBrightness = Brightness::getMaxBrightness(); } AlterBrightness::AlterBrightness(unsigned& change, unsigned& current, unsigned& max) { @@ -22,38 +25,53 @@ void AlterBrightness::setDecrement(unsigned& change) { decrement = change; } -void AlterBrightness::setCurrentBrightness(unsigned& current) +/** +void AlterBrightness::setCurrentBrightness() { currentBrightness = current; } -void AlterBrightness::setMaxBrightness(unsigned& max) +void AlterBrightness::setMaxBrightness() { maxBrightness = max; } +*/ +void AlterBrightness::setPercentageBrightness(float& percent) +{ + percentageBrightness = percent; +} void AlterBrightness::chooseChange(char* changeChoice[]) { std::ofstream s; s.open("/sys/class/backlight/intel_backlight/brightness", std::ios::out); - //std::cout << changeChoice << std::endl; - //if (1) - // std::cout << changeChoice.compare("inc") << std::endl; - //else - // std::cout << "0 is not true" << std::endl; - //if (changeChoice.compare(AlterBrightness::getIncrease()) == 0) + if (strcmp(*changeChoice, AlterBrightness::getIncrease()) == 0) { AlterBrightness::increaseBrightness(); - std::cout << "Increase" << std::endl; + std::cout << AlterBrightness::getCurrentBrightness() << std::endl; s << AlterBrightness::getCurrentBrightness(); } - else + else if (strcmp(*changeChoice, AlterBrightness::getDecrease()) == 0) { AlterBrightness::decreaseBrightness(); + std::cout << AlterBrightness::getCurrentBrightness() << std::endl; s << AlterBrightness::getCurrentBrightness(); } + else if (strcmp(*changeChoice, AlterBrightness::getPercent()) == 0) + { + + std::cout << "Percentage" << std::endl; + setBrightnessByPercentage(); + + std::cout << percentageBrightness / 100 << std::endl; + s << currentBrightness; + } + else + { + std::cout << "Neither increase or decrease" << std::endl; + } s.close(); } void AlterBrightness::increaseBrightness() @@ -74,6 +92,18 @@ void AlterBrightness::decreaseBrightness() else currentBrightness = 1; } +void AlterBrightness::setBrightnessByPercentage() +{ + if (AlterBrightness::getPercentageBrightness() < 0 || AlterBrightness::getPercentageBrightness() > 100) + { + std::cout << "Has to be between 0 and 100" < #include "Brightness.h" +unsigned Brightness::maxBrightness = 0; +unsigned Brightness::currentBrightness = 30; Brightness::Brightness() { } @@ -25,11 +27,11 @@ void Brightness::grabMaxBrightness() input.close(); } -unsigned Brightness::getCurrentBrightness() const +unsigned Brightness::getCurrentBrightness() { return currentBrightness; } -unsigned Brightness::getMaxBrightness() const +unsigned Brightness::getMaxBrightness() { return maxBrightness; } diff --git a/Brightness.h b/Brightness.h index 89ea08f..2863239 100644 --- a/Brightness.h +++ b/Brightness.h @@ -9,11 +9,11 @@ public: void grabBrightness(); void grabMaxBrightness(); - unsigned getCurrentBrightness() const; - unsigned getMaxBrightness() const; + static unsigned getCurrentBrightness(); + static unsigned getMaxBrightness(); private: - unsigned currentBrightness; - unsigned maxBrightness; + static unsigned currentBrightness; + static unsigned maxBrightness; }; #endif diff --git a/BrightnessControl.cpp b/BrightnessControl.cpp index 74566e9..39cd8ee 100644 --- a/BrightnessControl.cpp +++ b/BrightnessControl.cpp @@ -1,7 +1,5 @@ #include -#include #include -#include #include "AlterBrightness.h" #include "Brightness.h" @@ -9,36 +7,22 @@ int main(int argc, char* argv[]) { char* control[strlen(*(argv + 1))] = {*(argv + 1)}; unsigned changeAmount = atoi(*(argv + 2)); + float brightnessPercentage = atoi(*(argv + 2)); unsigned currentBrightness; unsigned maxBrightness; - /** - std::fstream input; - input.open("/sys/class/backlight/intel_backlight/brightness", std::ios::in); - input >> currentBrightness; - std::cout << currentBrightness << std::endl; - input.close(); - input.open("/sys/class/backlight/intel_backlight/max_brightness", std::ios::in); - input >> maxBrightness; - std::cout << maxBrightness << std::endl; - input.close(); - */ - AlterBrightness ab; Brightness br; br.grabBrightness(); br.grabMaxBrightness(); + AlterBrightness ab; - currentBrightness = br.getCurrentBrightness(); - maxBrightness = br.getMaxBrightness(); ab.setIncrement(changeAmount); ab.setDecrement(changeAmount); - ab.setCurrentBrightness(currentBrightness); - ab.setMaxBrightness(maxBrightness); + ab.setPercentageBrightness(brightnessPercentage); - //std::string ctl(*(control)); ab.chooseChange((control)); return 0; diff --git a/ModifyPermissions.sh b/ModifyPermissions.sh new file mode 100755 index 0000000..488f32d --- /dev/null +++ b/ModifyPermissions.sh @@ -0,0 +1,5 @@ + +you=$1 + +sudo chown $you /sys/class/backlight/intel_backlight/brightness +ls -l /sys/class/backlight/intel_backlight/ diff --git a/makefile b/makefile new file mode 100644 index 0000000..df060dc --- /dev/null +++ b/makefile @@ -0,0 +1,2 @@ +Hot.out: AlterBrightness.cpp AlterBrightness.h BrightnessControl.cpp Brightness.cpp Brightness.h + g++ AlterBrightness.cpp AlterBrightness.h BrightnessControl.cpp Brightness.cpp Brightness.h -o Hot.out