You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
90 lines
3.5 KiB
90 lines
3.5 KiB
8 years ago
|
/*
|
||
|
Copyright (C) 2016 P.L. Lucas <selairi@gmail.com>
|
||
|
|
||
|
This library is free software; you can redistribute it and/or
|
||
|
modify it under the terms of the GNU Lesser General Public
|
||
|
License as published by the Free Software Foundation; either
|
||
|
version 2.1 of the License, or (at your option) any later version.
|
||
|
|
||
|
This library is distributed in the hope that it will be useful,
|
||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||
|
Lesser General Public License for more details.
|
||
|
|
||
|
You should have received a copy of the GNU Lesser General Public
|
||
|
License along with this library; if not, write to the Free Software
|
||
|
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||
|
*/
|
||
|
|
||
|
#include "xrandrbrightness.h"
|
||
|
#include <QDebug>
|
||
|
#include <LXQt/SingleApplication>
|
||
|
#include <QCommandLineParser>
|
||
|
#include "brightnesssettings.h"
|
||
|
|
||
|
int main(int argn, char* argv[])
|
||
|
{
|
||
|
LXQt::SingleApplication app(argn, argv);
|
||
|
|
||
|
// Command line options
|
||
|
QCommandLineParser parser;
|
||
|
QCommandLineOption increaseOption(QStringList() << "i" << "icrease",
|
||
|
app.tr("Increase brightness."));
|
||
|
parser.addOption(increaseOption);
|
||
|
QCommandLineOption decreaseOption(QStringList() << "d" << "decrease",
|
||
|
app.tr("Decrease brightness."));
|
||
|
parser.addOption(decreaseOption);
|
||
|
QCommandLineOption setOption(QStringList() << "s" << "set",
|
||
|
app.tr("Set brightness from 1 to 100."), "brightness");
|
||
|
parser.addOption(setOption);
|
||
|
QCommandLineOption helpOption = parser.addHelpOption();
|
||
|
parser.addOption(increaseOption);
|
||
|
parser.addOption(decreaseOption);
|
||
|
parser.addOption(setOption);
|
||
|
parser.addOption(helpOption);
|
||
|
|
||
|
parser.process(app);
|
||
|
if( parser.isSet(increaseOption) || parser.isSet(decreaseOption) || parser.isSet(setOption) )
|
||
|
{
|
||
|
XRandrBrightness *brightness = new XRandrBrightness();
|
||
|
QList<MonitorInfo> monitors = brightness->getMonitorsInfo();
|
||
|
QList<MonitorInfo> monitorsChanged;
|
||
|
float sign = parser.isSet(decreaseOption)?-1.0:1.0;
|
||
|
double brightness_value = parser.value(setOption).toFloat();
|
||
|
brightness_value = qMin( qMax(brightness_value, 0.0), 100.0 ) / 100.0;
|
||
|
if(!parser.value(setOption).isEmpty())
|
||
|
sign = 0.0;
|
||
|
foreach(MonitorInfo monitor, monitors)
|
||
|
{
|
||
|
|
||
|
if( monitor.isBacklightSupported() )
|
||
|
{
|
||
|
long backlight = ( monitor.backlight() + sign*(monitor.backlightMax()/50 + 1) )*qAbs(sign) + brightness_value*monitor.backlightMax();
|
||
|
if(backlight<monitor.backlightMax() && backlight>0)
|
||
|
{
|
||
|
monitor.setBacklight(backlight);
|
||
|
monitorsChanged.append(monitor);
|
||
|
}
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
float brightness = (monitor.brightness() + 0.1*sign)*qAbs(sign) + brightness_value*2.0;
|
||
|
if(brightness<2.0 && brightness>0.0)
|
||
|
{
|
||
|
monitor.setBrightness(brightness);
|
||
|
monitorsChanged.append(monitor);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
brightness->setMonitorsSettings(monitorsChanged);
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
BrightnessSettings *brightnessSettings = new BrightnessSettings();
|
||
|
brightnessSettings->setWindowIcon(QIcon(ICON_DIR "/brightnesssettings.svg"));
|
||
|
brightnessSettings->show();
|
||
|
|
||
|
return app.exec();
|
||
|
}
|
||
|
|