From 02a5c497c6a56a58698bf1c0a9a06a3ee7d8add8 Mon Sep 17 00:00:00 2001 From: Michael Neumann Date: Fri, 12 Sep 2014 10:45:42 +0200 Subject: File went into wrong directory --- libLumina/LuminaOS-DragonFly.cpp | 158 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 158 insertions(+) create mode 100644 libLumina/LuminaOS-DragonFly.cpp (limited to 'libLumina/LuminaOS-DragonFly.cpp') diff --git a/libLumina/LuminaOS-DragonFly.cpp b/libLumina/LuminaOS-DragonFly.cpp new file mode 100644 index 00000000..39ff21dc --- /dev/null +++ b/libLumina/LuminaOS-DragonFly.cpp @@ -0,0 +1,158 @@ +//=========================================== +// Lumina-DE source code +// Copyright (c) 2014, Ken Moore +// Available under the 3-clause BSD license +// See the LICENSE file for full details +//=========================================== +#ifdef __DragonFly__ +#include "LuminaOS.h" +#include + +//can't read xbrightness settings - assume invalid until set +static int screenbrightness = -1; + +// ==== ExternalDevicePaths() ==== +QStringList LOS::ExternalDevicePaths(){ + //Returns: QStringList[::::::::] + //Note: = [USB, HDRIVE, DVD, SDCARD, UNKNOWN] + QStringList devs = LUtils::getCmdOutput("mount"); + //Now check the output + for(int i=0; i100){ percent=100; } + float pf = percent/100.0; //convert to a decimel + //Run the command + QString cmd = "xbrightness %1"; + cmd = cmd.arg( QString::number( int(65535*pf) ) ); + int ret = LUtils::runCmd(cmd); + //Save the result for later + if(ret!=0){ screenbrightness = -1; } + else{ screenbrightness = percent; } + LUtils::writeFile(QDir::homePath()+"/.lumina/.currentxbrightness", QStringList() << QString::number(screenbrightness), true); +} + +//Read the current volume +int LOS::audioVolume(){ //Returns: audio volume as a percentage (0-100, with -1 for errors) + QString info = LUtils::getCmdOutput("mixer -S vol").join(":").simplified(); //ignores any other lines + int out = -1; + if(!info.isEmpty()){ + int L = info.section(":",1,1).toInt(); + int R = info.section(":",2,2).toInt(); + if(L>R){ out = L; } + else{ out = R; } + } + return out; +} + +//Set the current volume +void LOS::setAudioVolume(int percent){ + if(percent<0){percent=0;} + else if(percent>100){percent=100;} + QString info = LUtils::getCmdOutput("mixer -S vol").join(":").simplified(); //ignores any other lines + if(!info.isEmpty()){ + int L = info.section(":",1,1).toInt(); + int R = info.section(":",2,2).toInt(); + int diff = L-R; + if(diff<0){ R=percent; L=percent+diff; } //R Greater + else{ L=percent; R=percent-diff; } //L Greater or equal + //Check bounds + if(L<0){L=0;}else if(L>100){L=100;} + if(R<0){R=0;}else if(R>100){R=100;} + //Run Command + LUtils::runCmd("mixer vol "+QString::number(L)+":"+QString::number(R)); + } +} + +//Change the current volume a set amount (+ or -) +void LOS::changeAudioVolume(int percentdiff){ + QString info = LUtils::getCmdOutput("mixer -S vol").join(":").simplified(); //ignores any other lines + if(!info.isEmpty()){ + int L = info.section(":",1,1).toInt() + percentdiff; + int R = info.section(":",2,2).toInt() + percentdiff; + //Check bounds + if(L<0){L=0;}else if(L>100){L=100;} + if(R<0){R=0;}else if(R>100){R=100;} + //Run Command + LUtils::runCmd("mixer vol "+QString::number(L)+":"+QString::number(R)); + } +} + +//Check if a graphical audio mixer is installed +bool LOS::hasMixerUtility(){ + return QFile::exists("/usr/local/bin/pc-mixer"); +} + +//Launch the graphical audio mixer utility +void LOS::startMixerUtility(){ + QProcess::startDetached("pc-mixer -notray"); +} + +//System Shutdown +void LOS::systemShutdown(){ //start poweroff sequence + QProcess::startDetached("shutdown -p now"); +} + +//System Restart +void LOS::systemRestart(){ //start reboot sequence + QProcess::startDetached("shutdown -r now"); +} + +//Battery Availability +bool LOS::hasBattery(){ + int val = LUtils::getCmdOutput("apm -l").join("").toInt(); + return (val >= 0 && val <= 100); +} + +//Battery Charge Level +int LOS::batteryCharge(){ //Returns: percent charge (0-100), anything outside that range is counted as an error + int charge = LUtils::getCmdOutput("apm -l").join("").toInt(); + if(charge > 100){ charge = -1; } //invalid charge + return charge; +} + +//Battery Charging State +bool LOS::batteryIsCharging(){ + return (LUtils::getCmdOutput("apm -a").join("").simplified() == "1"); +} + +//Battery Time Remaining +int LOS::batterySecondsLeft(){ //Returns: estimated number of seconds remaining + return LUtils::getCmdOutput("apm -t").join("").toInt(); +} + +#endif -- cgit