Skip to content

Commit

Permalink
fixed pg2 brightness
Browse files Browse the repository at this point in the history
  • Loading branch information
podulator committed Mar 6, 2020
1 parent 9725648 commit 6e0a1ca
Show file tree
Hide file tree
Showing 3 changed files with 57 additions and 29 deletions.
4 changes: 2 additions & 2 deletions ChangeLog.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
# 350teric Changelog

**1.0.12** (*Codename: *)
**1.0.12** (*Codename: Strong and stable*)

* Added
* Prevention against setting anything in Settings as a quick launch option

* Fixed
* SDL input freakout on holding left on 1st boot to cancel quic launch
* PocketGo2 brightness
* PocketGo2 brightness for rogue and stock differences
* Low battery from going negative

* Improved
Expand Down
69 changes: 45 additions & 24 deletions src/hw-pg2.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,22 @@ HwPG2::HwPG2() : IHardware() {

this->ledMaxBrightness_ = FileUtils::fileExists(LED_MAX_BRIGHTNESS_PATH) ? FileUtils::fileReader(LED_MAX_BRIGHTNESS_PATH) : "0";

this->pollBacklight = FileUtils::fileExists(BACKLIGHT_PATH);
this->reverse_ = true;
std::string issue = FileUtils::fileReader("/etc/issue");
if (!issue.empty()) {
issue = StringUtils::toLower(issue);
this->rogue_ = (std::string::npos != issue.find("rogue"));
this->reverse_ = !this->rogue_;
}

this->max_ = 255;
if (FileUtils::fileExists(BACKLIGHT_MAX_PATH)) {
std::string result = FileUtils::fileReader(BACKLIGHT_MAX_PATH);
if (!result.empty()) {
this->max_ = atoi(result.c_str());
}
}
this->pollBacklight_ = FileUtils::fileExists(BACKLIGHT_PATH);

this->getBacklightLevel();
this->getKeepAspectRatio();
Expand All @@ -39,8 +54,10 @@ HwPG2::HwPG2() : IHardware() {
TRACE(
"brightness: %i, volume : %i",
this->getBacklightLevel(),
this->soundcard_->getVolume());
this->soundcard_->getVolume()
);
}

HwPG2::~HwPG2() {
delete this->clock_;
delete this->cpu_;
Expand Down Expand Up @@ -91,51 +108,52 @@ void HwPG2::ledOff() {
int HwPG2::getBacklightLevel() {
TRACE("enter");
try {
if (this->pollBacklight) {
if (this->pollBacklight_) {
int level = 0;
//force scale 0 - 100
std::string result = FileUtils::fileReader(BACKLIGHT_PATH);
if (result.length() > 0) {
level = atoi(StringUtils::trim(result).c_str()) / 2.55;
level = (level * -1) + 100;
int rawLevel = atoi(StringUtils::trim(result).c_str());
level = (int)rawLevel / ((float)this->max_ / 100.0f);
if (this->reverse_) {
level = (level * -1) + 100;
}
level = constrain(level, 1, 100);
}
this->backlightLevel_ = level;
}
} catch(std::exception e) {
ERROR("caught : '%s'", e.what());
} catch (...) {
ERROR("unknown error");
}
} catch (std::exception e) {
ERROR("caught : '%s'", e.what());
} catch (...) {
ERROR("unknown error");
}
TRACE("exit : %i", this->backlightLevel_);
return this->backlightLevel_;
}
int HwPG2::setBacklightLevel(int val) {
TRACE("enter - %i", val);
try {
// wrap it
if (val <= 0)
val = 100;
else if (val > 100)
val = 0;
val = constrain(val, 1, 100);
if (val == this->backlightLevel_)
return val;

int localVal = (int)(val * (255.0f / 100));
localVal = (localVal * -1) + 255;
localVal = constrain(localVal, 1, 254);
int localVal = (int)(val * ((float)this->max_ / 100));
if (this->reverse_) {
localVal = (localVal * -1) + this->max_;
}
localVal = constrain(localVal, 1, this->max_ - 1);
TRACE("device value : %i", localVal);

if (FileUtils::fileWriter(BACKLIGHT_PATH, localVal)) {
TRACE("success");
} else {
ERROR("Couldn't update backlight value to : %i", localVal);
}
} catch(std::exception e) {
ERROR("caught : '%s'", e.what());
} catch (...) {
ERROR("unknown error");
}
} catch (std::exception e) {
ERROR("caught : '%s'", e.what());
} catch (...) {
ERROR("unknown error");
}
this->backlightLevel_ = val;
return this->backlightLevel_;
}
Expand Down Expand Up @@ -166,7 +184,10 @@ bool HwPG2::setKeepAspectRatio(bool val) {
return this->keepAspectRatio_;
}

std::string HwPG2::getDeviceType() { return "PocketGo 2"; }
std::string HwPG2::getDeviceType() {
std::string version = this->rogue_ ? "rogue" : "stock";
return "PocketGo 2 (" + version + ")";
}

bool HwPG2::setScreenState(const bool &enable) {
TRACE("enter : %s", (enable ? "on" : "off"));
Expand Down
13 changes: 10 additions & 3 deletions src/hw-pg2.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,17 @@ class HwPG2 : IHardware {
IPower * power_;

std::string ledMaxBrightness_;
int backlightLevel_ = 0;
bool keepAspectRatio_ = false;
bool pollBacklight = false;

bool pollBacklight_ = false;
bool reverse_ = false;
bool rogue_ = false;
int backlightLevel_ = 0;
int max_ = 255;

const std::string BACKLIGHT_ROOT_PATH = "/sys/class/backlight/pwm-backlight/";
const std::string BACKLIGHT_PATH = BACKLIGHT_ROOT_PATH + "brightness";
const std::string BACKLIGHT_MAX_PATH = BACKLIGHT_ROOT_PATH + "max_brightness";

const std::string SCREEN_BLANK_PATH = "/sys/class/graphics/fb0/blank";
const std::string LED_PREFIX = "/sys/class/leds/power/";
Expand All @@ -37,7 +45,6 @@ class HwPG2 : IHardware {
const std::string LED_DELAY_ON_PATH = LED_PREFIX + "delay_on";
const std::string LED_DELAY_OFF_PATH = LED_PREFIX + "delay_off";
const std::string LED_TRIGGER_PATH = LED_PREFIX + "trigger";
const std::string BACKLIGHT_PATH = "/sys/class/backlight/pwm-backlight/brightness";
const std::string ASPECT_RATIO_PATH = "/sys/devices/platform/jz-lcd.0/keep_aspect_ratio";
const std::string ALT_KEYMAP_FILE = "/sys/devices/platform/linkdev/alt_key_map";

Expand Down

0 comments on commit 6e0a1ca

Please sign in to comment.