Adds the Hyperion priority option.
This commit is contained in:
parent
7714250646
commit
961afd2d9a
8
.gitignore
vendored
Normal file
8
.gitignore
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
CMakeFiles/
|
||||
Hyperion_Grabber_X11_QT_autogen/
|
||||
cmake_install.cmake
|
||||
CMakeCache.txt
|
||||
Makefile
|
||||
Hyperion_Grabber_X11_QT
|
||||
CMakeLists.txt.user
|
||||
.cmake/
|
||||
@ -8,6 +8,7 @@ hgx11::hgx11(QHash<QString, QString> opts)
|
||||
unsigned short port = 19444;
|
||||
unsigned short scale = 8;
|
||||
unsigned short frameskip = 0;
|
||||
unsigned short priority = 100;
|
||||
const char * filter = FilterNearest;
|
||||
QString redAdjust = "", greenAdjust = "", blueAdjust = "";
|
||||
QString temperature = "", threshold = "", transform = "";
|
||||
@ -18,6 +19,8 @@ hgx11::hgx11(QHash<QString, QString> opts)
|
||||
addr = i.value();
|
||||
} else if ((i.key() == "p" || i.key() == "port") && i.value().toUShort()) {
|
||||
port = i.value().toUShort();
|
||||
} else if ((i.key() == "c" || i.key() == "priority") && (i.value().toUShort() && i.value().toUShort() <= 255)) {
|
||||
priority = i.value().toUShort();
|
||||
} else if ((i.key() == "s" || i.key() == "scale") && i.value().toUShort()) {
|
||||
scale = i.value().toUShort();
|
||||
} else if ((i.key() == "f" || i.key() == "frameskip") && (i.value().toUShort() && i.value().toUShort() <= 255)) {
|
||||
@ -56,6 +59,8 @@ hgx11::hgx11(QHash<QString, QString> opts)
|
||||
}
|
||||
}
|
||||
|
||||
_hyperionPriority_m = QString("\"priority\":").append(QString::number(priority));
|
||||
|
||||
_display_p = XOpenDisplay(nullptr);
|
||||
if(_display_p == nullptr){
|
||||
qCritical() << "Failed to open X11 display";
|
||||
@ -63,7 +68,7 @@ hgx11::hgx11(QHash<QString, QString> opts)
|
||||
}
|
||||
|
||||
_grabber_p = new hgx11grab(_display_p, scale, filter);
|
||||
_hclient_p = new hgx11net(addr, port);
|
||||
_hclient_p = new hgx11net(addr, port, _hyperionPriority_m);
|
||||
_damage_p = new hgx11damage(&_grabbed_m, frameskip);
|
||||
if (_inactiveXss_m) {
|
||||
_screensaver_p = new hgx11screensaver(_display_p);
|
||||
@ -170,7 +175,7 @@ void hgx11::_activity()
|
||||
void hgx11::_setImgSize()
|
||||
{
|
||||
_hclient_p->imgCmdBuf.clear();
|
||||
_hclient_p->imgCmdBuf.append("{\"command\":\"image\",\"priority\":100,\"imageheight\":");
|
||||
_hclient_p->imgCmdBuf.append("{\"command\":\"image\",").append(_hyperionPriority_m.toUtf8()).append(",\"imageheight\":");
|
||||
_hclient_p->imgCmdBuf.append(QString::number(_grabber_p->getDest_height()).toUtf8());
|
||||
_hclient_p->imgCmdBuf.append(",\"imagewidth\":");
|
||||
_hclient_p->imgCmdBuf.append(QString::number(_grabber_p->getDest_width()).toUtf8());
|
||||
|
||||
1
hgx11.h
1
hgx11.h
@ -28,6 +28,7 @@ private:
|
||||
|
||||
int _inactiveTime_m = 0;
|
||||
unsigned long _inactiveTimeXss_m = 0;
|
||||
QString _hyperionPriority_m;
|
||||
bool _inactiveXss_m = false;
|
||||
bool _grabActive_m;
|
||||
|
||||
|
||||
15
hgx11net.cpp
15
hgx11net.cpp
@ -2,12 +2,13 @@
|
||||
|
||||
// public
|
||||
|
||||
hgx11net::hgx11net(QString host, ushort port)
|
||||
hgx11net::hgx11net(QString host, ushort port, QString priority)
|
||||
{
|
||||
_sock_p = new QTcpSocket(this);
|
||||
_sock_p->setReadBufferSize(1);
|
||||
_host_m = host;
|
||||
_port_m = port;
|
||||
_priority_m = priority;
|
||||
_connectHost();
|
||||
}
|
||||
|
||||
@ -24,7 +25,7 @@ hgx11net::~hgx11net()
|
||||
void hgx11net::clearLeds()
|
||||
{
|
||||
_cmd_m.clear();
|
||||
_cmd_m.append("{\"command\": \"clearall\"}\n");
|
||||
_cmd_m.append("{\"command\": \"clearall\",").append(_priority_m.toUtf8()).append("}\n");
|
||||
_sendCommand();
|
||||
}
|
||||
|
||||
@ -37,7 +38,7 @@ void hgx11net::setLedColor(quint8 R, quint8 G, quint8 B)
|
||||
_cmd_m.append(QString::number(G).toUtf8());
|
||||
_cmd_m.append(",");
|
||||
_cmd_m.append(QString::number(B).toUtf8());
|
||||
_cmd_m.append("],\"command\":\"color\",\"priority\":100}\n");
|
||||
_cmd_m.append("],\"command\":\"color\",").append(_priority_m.toUtf8()).append("}\n");
|
||||
_sendCommand();
|
||||
}
|
||||
|
||||
@ -126,7 +127,7 @@ void hgx11net::_colorAdjustment()
|
||||
_cmd_m.append(",");
|
||||
}
|
||||
_cmd_m.chop(1); // remove trailing ,
|
||||
_cmd_m.append("},\"command\":\"adjustment\"}\n");
|
||||
_cmd_m.append("},\"command\":\"adjustment\",").append(_priority_m.toUtf8()).append("}\n");
|
||||
_sendCommand();
|
||||
}
|
||||
|
||||
@ -136,7 +137,7 @@ void hgx11net::_thresholdAdjustment()
|
||||
return;
|
||||
}
|
||||
_cmd_m.clear();
|
||||
_cmd_m.append("{\"command\":\"transform\",\"transform\":{\"threshold\":");
|
||||
_cmd_m.append("{\"command\":\"transform\",").append(_priority_m.toUtf8()).append(",\"transform\":{\"threshold\":");
|
||||
_cmd_m.append(_threshold_m.toUtf8());
|
||||
_cmd_m.append("}}\n");
|
||||
_sendCommand();
|
||||
@ -149,7 +150,7 @@ void hgx11net::_transformdAdjustment()
|
||||
}
|
||||
QStringList values = _transform_m.split(',');
|
||||
_cmd_m.clear();
|
||||
_cmd_m.append("{\"command\":\"transform\",\"transform\":{\"luminanceGain\":");
|
||||
_cmd_m.append("{\"command\":\"transform\",").append(_priority_m.toUtf8()).append(",\"transform\":{\"luminanceGain\":");
|
||||
_cmd_m.append(values.at(0).toUtf8());
|
||||
_cmd_m.append(",\"luminanceMinimum\":");
|
||||
_cmd_m.append(values.at(1).toUtf8());
|
||||
@ -165,7 +166,7 @@ void hgx11net::_temperatureAdjustment()
|
||||
return;
|
||||
}
|
||||
_cmd_m.clear();
|
||||
_cmd_m.append("{\"command\":\"temperature\",\"temperature\":{\"correctionValues\":");
|
||||
_cmd_m.append("{\"command\":\"temperature\",").append(_priority_m.toUtf8()).append(",\"temperature\":{\"correctionValues\":");
|
||||
_cmd_m.append(_temperature_m.toUtf8());
|
||||
_cmd_m.append("}}\n");
|
||||
_sendCommand();
|
||||
|
||||
@ -14,7 +14,7 @@ public:
|
||||
};
|
||||
QByteArray imgCmdBuf;
|
||||
|
||||
hgx11net(QString, ushort);
|
||||
hgx11net(QString, ushort, QString);
|
||||
~hgx11net();
|
||||
|
||||
void clearLeds();
|
||||
@ -26,6 +26,7 @@ private:
|
||||
QByteArray _cmd_m;
|
||||
QString _host_m;
|
||||
quint16 _port_m;
|
||||
QString _priority_m;
|
||||
QString _redAdjust_m = "";
|
||||
QString _greenAdjust_m = "";
|
||||
QString _blueAdjust_m = "";
|
||||
|
||||
1
main.cpp
1
main.cpp
@ -28,6 +28,7 @@ int main(int argc, char *argv[])
|
||||
parser.addVersionOption();
|
||||
parser.addOption({{"a", "address"}, "Address to the hyperion json server. (ex. 127.0.0.1)", "address"});
|
||||
parser.addOption({{"p", "port"}, "Port for the hyperion json server. (ex. 19444)", "port"});
|
||||
parser.addOption({{"c", "priority"}, "Priority to send to Hyperion, lower number means higher priority, defaults to 100. Range 0-255", "number"});
|
||||
parser.addOption({{"s", "scale"}, "Divisor used to scale your screen resolution (ex. 8 ; if your screen is 1920x1080, the result image sent to hyperion is 240x135", "scale"});
|
||||
parser.addOption({{"f", "frameskip"}, "How many X11 frames to skip over. (ex. 4 ; 1 frame will be scaled and sent to hyperion and 4 will be ignored)", "frames"});
|
||||
parser.addOption({{"i", "inactive"}, "How many seconds after the screen is inactive to turn off the LED's. Set to 0 to disable.", "seonds"});
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user