mirror of
https://github.com/hyperion-project/hyperion.ng.git
synced 2023-10-10 13:36:59 +02:00
Merge remote-tracking branch 'remotes/origin/master'
Former-commit-id: 0f424826def93b35209c055244003dc21d07e9b7
This commit is contained in:
commit
6792321192
@ -1,6 +1,4 @@
|
||||
// Automatically generated configuration file for 'Hyperion'
|
||||
// Generation script: ./WriteConfig
|
||||
|
||||
// Hyperion configuration
|
||||
{
|
||||
"device" :
|
||||
{
|
||||
@ -296,10 +294,28 @@
|
||||
}
|
||||
],
|
||||
|
||||
// The XBMC video checker will connect to XBMC to check its player state and adjust the grabbing on it
|
||||
"xbmcVideoChecker" : {
|
||||
// Enable the use of the XBMC checker
|
||||
"enable" : true,
|
||||
|
||||
// Address of the hoxt running XBMC
|
||||
"xbmcAddress" : "127.0.0.1",
|
||||
"xbmcTcpPort" : 9090
|
||||
|
||||
// Port used by XBMC for the TCP json service (Default disabled by XBMC for non-local clients)
|
||||
"xbmcTcpPort" : 9090,
|
||||
|
||||
// Grab screen when XBMC is playing video
|
||||
"grabVideo" : true,
|
||||
|
||||
// Grab screen when XBMC is playing pictures
|
||||
"grabPictures" : true,
|
||||
|
||||
// Grab screen when XBMC is playing audio
|
||||
"grabAudio" : true,
|
||||
|
||||
// Grab screen when XBMC is not playing anything (in menu)
|
||||
"grabMenu" : true
|
||||
},
|
||||
|
||||
"bootsequence" :
|
||||
@ -314,5 +330,4 @@
|
||||
"height" : 64,
|
||||
"frequency_Hz" : 10
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -181,6 +181,22 @@
|
||||
"xbmcTcpPort" : {
|
||||
"type" : "integer",
|
||||
"required" : true
|
||||
},
|
||||
"grabVideo" : {
|
||||
"type" : "boolean",
|
||||
"required" : true
|
||||
},
|
||||
"grabPictures" : {
|
||||
"type" : "boolean",
|
||||
"required" : true
|
||||
},
|
||||
"grabAudio" : {
|
||||
"type" : "boolean",
|
||||
"required" : true
|
||||
},
|
||||
"grabMenu" : {
|
||||
"type" : "boolean",
|
||||
"required" : true
|
||||
}
|
||||
},
|
||||
"additionalProperties" : false
|
||||
|
@ -7,7 +7,7 @@ XBMCVideoChecker::XBMCVideoChecker(const std::string & address, uint16_t port, u
|
||||
QObject(),
|
||||
_address(QString::fromStdString(address)),
|
||||
_port(port),
|
||||
_request("{\"jsonrpc\":\"2.0\",\"method\":\"Player.GetActivePlayers\",\"id\":1}"),
|
||||
_request("{\"jsonrpc\":\"2.0\",\"method\":\"Player.GetActivePlayers\",\"id\":666}"),
|
||||
_timer(),
|
||||
_socket(),
|
||||
_grabVideo(grabVideo),
|
||||
@ -54,6 +54,13 @@ void XBMCVideoChecker::receiveReply()
|
||||
// expect that the reply is received as a single message. Probably oke considering the size of the expected reply
|
||||
QString reply(_socket.readAll());
|
||||
|
||||
// check if the resply is a reply to one of my requests
|
||||
if (!reply.contains("\"id\":666"))
|
||||
{
|
||||
// probably not. Leave this mreply as is and don't act on it
|
||||
return;
|
||||
}
|
||||
|
||||
GrabbingMode newMode = GRABBINGMODE_INVALID;
|
||||
if (reply.contains("video"))
|
||||
{
|
||||
@ -62,13 +69,13 @@ void XBMCVideoChecker::receiveReply()
|
||||
}
|
||||
else if (reply.contains("picture"))
|
||||
{
|
||||
// photo viewer is playing
|
||||
newMode = _grabVideo ? GRABBINGMODE_PHOTO : GRABBINGMODE_OFF;
|
||||
// picture viewer is playing
|
||||
newMode = _grabPhoto ? GRABBINGMODE_PHOTO : GRABBINGMODE_OFF;
|
||||
}
|
||||
else if (reply.contains("audio"))
|
||||
{
|
||||
// photo viewer is playing
|
||||
newMode = _grabVideo ? GRABBINGMODE_AUDIO : GRABBINGMODE_OFF;
|
||||
// audio is playing
|
||||
newMode = _grabAudio ? GRABBINGMODE_AUDIO : GRABBINGMODE_OFF;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -83,7 +83,14 @@ int main(int argc, char** argv)
|
||||
}
|
||||
|
||||
const Json::Value & videoCheckerConfig = config["xbmcVideoChecker"];
|
||||
XBMCVideoChecker xbmcVideoChecker(videoCheckerConfig["xbmcAddress"].asString(), videoCheckerConfig["xbmcTcpPort"].asUInt(), 1000, true, true, true, true);
|
||||
XBMCVideoChecker xbmcVideoChecker(
|
||||
videoCheckerConfig["xbmcAddress"].asString(),
|
||||
videoCheckerConfig["xbmcTcpPort"].asUInt(),
|
||||
1000,
|
||||
videoCheckerConfig["grabVideo"].asBool(),
|
||||
videoCheckerConfig["grabPictures"].asBool(),
|
||||
videoCheckerConfig["grabAudio"].asBool(),
|
||||
videoCheckerConfig["grabMenu"].asBool());
|
||||
if (videoCheckerConfig["enable"].asBool())
|
||||
{
|
||||
xbmcVideoChecker.start();
|
||||
|
Loading…
Reference in New Issue
Block a user