mirror of
https://github.com/hyperion-project/hyperion.ng.git
synced 2023-10-10 13:36:59 +02:00
* Do not limit priorities for Boblight (#1269) * Boblight - Allow to exclude component from build * Fix merge * Amlogic - Correct Pixelformat reference * Remove "wrong" Amlogic ifdef, which was not working before
This commit is contained in:
parent
8a785e70c8
commit
da49f25b4e
@ -42,11 +42,15 @@ endif()
|
|||||||
|
|
||||||
# Set build variables
|
# Set build variables
|
||||||
SET ( DEFAULT_AMLOGIC OFF )
|
SET ( DEFAULT_AMLOGIC OFF )
|
||||||
|
SET ( DEFAULT_BOBLIGHT ON )
|
||||||
SET ( DEFAULT_DISPMANX OFF )
|
SET ( DEFAULT_DISPMANX OFF )
|
||||||
|
SET ( DEFAULT_DX OFF )
|
||||||
|
SET ( DEFAULT_MF OFF )
|
||||||
SET ( DEFAULT_OSX OFF )
|
SET ( DEFAULT_OSX OFF )
|
||||||
SET ( DEFAULT_QT ON )
|
SET ( DEFAULT_QT ON )
|
||||||
SET ( DEFAULT_X11 OFF )
|
SET ( DEFAULT_X11 OFF )
|
||||||
SET ( DEFAULT_XCB OFF )
|
SET ( DEFAULT_XCB OFF )
|
||||||
|
SET ( DEFAULT_V4L2 OFF )
|
||||||
SET ( DEFAULT_WS281XPWM OFF )
|
SET ( DEFAULT_WS281XPWM OFF )
|
||||||
SET ( DEFAULT_AVAHI ON )
|
SET ( DEFAULT_AVAHI ON )
|
||||||
SET ( DEFAULT_USE_SHARED_AVAHI_LIBS ON )
|
SET ( DEFAULT_USE_SHARED_AVAHI_LIBS ON )
|
||||||
@ -55,7 +59,7 @@ SET ( DEFAULT_USE_SYSTEM_PROTO_LIBS OFF )
|
|||||||
SET ( DEFAULT_USE_SYSTEM_MBEDTLS_LIBS OFF )
|
SET ( DEFAULT_USE_SYSTEM_MBEDTLS_LIBS OFF )
|
||||||
SET ( DEFAULT_TESTS OFF )
|
SET ( DEFAULT_TESTS OFF )
|
||||||
SET ( DEFAULT_EXPERIMENTAL OFF )
|
SET ( DEFAULT_EXPERIMENTAL OFF )
|
||||||
SET ( DEFAULT_MF OFF )
|
SET ( DEFAULT_CEC OFF )
|
||||||
SET ( DEFAULT_DEPLOY_DEPENDENCIES ON )
|
SET ( DEFAULT_DEPLOY_DEPENDENCIES ON )
|
||||||
|
|
||||||
IF ( ${CMAKE_SYSTEM} MATCHES "Linux" )
|
IF ( ${CMAKE_SYSTEM} MATCHES "Linux" )
|
||||||
@ -159,6 +163,10 @@ STRING( REPLACE "-DEV" "" PLATFORM_DEFINE "${PLATFORM_DEFINE}" )
|
|||||||
ADD_DEFINITIONS( ${PLATFORM_DEFINE} )
|
ADD_DEFINITIONS( ${PLATFORM_DEFINE} )
|
||||||
|
|
||||||
# set the build options
|
# set the build options
|
||||||
|
|
||||||
|
option(ENABLE_BOBLIGHT "Enable BOBLIGHT server" ${DEFAULT_BOBLIGHT} )
|
||||||
|
message(STATUS "ENABLE_BOBLIGHT = ${ENABLE_BOBLIGHT}")
|
||||||
|
|
||||||
option(ENABLE_AMLOGIC "Enable the AMLOGIC video grabber" ${DEFAULT_AMLOGIC} )
|
option(ENABLE_AMLOGIC "Enable the AMLOGIC video grabber" ${DEFAULT_AMLOGIC} )
|
||||||
message(STATUS "ENABLE_AMLOGIC = ${ENABLE_AMLOGIC}")
|
message(STATUS "ENABLE_AMLOGIC = ${ENABLE_AMLOGIC}")
|
||||||
|
|
||||||
|
@ -45,6 +45,9 @@
|
|||||||
// Define to enable CEC
|
// Define to enable CEC
|
||||||
#cmakedefine ENABLE_CEC
|
#cmakedefine ENABLE_CEC
|
||||||
|
|
||||||
|
// Define to enable boblight server
|
||||||
|
#cmakedefine ENABLE_BOBLIGHT
|
||||||
|
|
||||||
// Define to enable the USB / HID devices
|
// Define to enable the USB / HID devices
|
||||||
#cmakedefine ENABLE_USB_HID
|
#cmakedefine ENABLE_USB_HID
|
||||||
|
|
||||||
|
@ -1,91 +1,92 @@
|
|||||||
$(document).ready( function() {
|
$(document).ready(function () {
|
||||||
performTranslation();
|
performTranslation();
|
||||||
|
|
||||||
var conf_editor_net = null;
|
var BOBLIGHT_ENABLED = window.comps.find(element => element.name == "BOBLIGHTSERVER");
|
||||||
var conf_editor_json = null;
|
|
||||||
var conf_editor_proto = null;
|
|
||||||
var conf_editor_fbs = null;
|
|
||||||
var conf_editor_bobl = null;
|
|
||||||
var conf_editor_forw = null;
|
|
||||||
|
|
||||||
if(window.showOptHelp)
|
var conf_editor_net = null;
|
||||||
{
|
var conf_editor_json = null;
|
||||||
//network
|
var conf_editor_proto = null;
|
||||||
$('#conf_cont').append(createRow('conf_cont_net'))
|
var conf_editor_fbs = null;
|
||||||
$('#conf_cont_net').append(createOptPanel('fa-sitemap', $.i18n("edt_conf_net_heading_title"), 'editor_container_net', 'btn_submit_net', 'panel-system'));
|
var conf_editor_bobl = null;
|
||||||
$('#conf_cont_net').append(createHelpTable(window.schema.network.properties, $.i18n("edt_conf_net_heading_title")));
|
var conf_editor_forw = null;
|
||||||
|
|
||||||
//jsonserver
|
if (window.showOptHelp) {
|
||||||
$('#conf_cont').append(createRow('conf_cont_json'))
|
//network
|
||||||
$('#conf_cont_json').append(createOptPanel('fa-sitemap', $.i18n("edt_conf_js_heading_title"), 'editor_container_jsonserver', 'btn_submit_jsonserver', 'panel-system'));
|
$('#conf_cont').append(createRow('conf_cont_net'))
|
||||||
$('#conf_cont_json').append(createHelpTable(window.schema.jsonServer.properties, $.i18n("edt_conf_js_heading_title")));
|
$('#conf_cont_net').append(createOptPanel('fa-sitemap', $.i18n("edt_conf_net_heading_title"), 'editor_container_net', 'btn_submit_net', 'panel-system'));
|
||||||
|
$('#conf_cont_net').append(createHelpTable(window.schema.network.properties, $.i18n("edt_conf_net_heading_title")));
|
||||||
|
|
||||||
//flatbufserver
|
//jsonserver
|
||||||
$('#conf_cont').append(createRow('conf_cont_flatbuf'))
|
$('#conf_cont').append(createRow('conf_cont_json'))
|
||||||
$('#conf_cont_flatbuf').append(createOptPanel('fa-sitemap', $.i18n("edt_conf_fbs_heading_title"), 'editor_container_fbserver', 'btn_submit_fbserver', 'panel-system'));
|
$('#conf_cont_json').append(createOptPanel('fa-sitemap', $.i18n("edt_conf_js_heading_title"), 'editor_container_jsonserver', 'btn_submit_jsonserver', 'panel-system'));
|
||||||
$('#conf_cont_flatbuf').append(createHelpTable(window.schema.flatbufServer.properties, $.i18n("edt_conf_fbs_heading_title"),"flatbufServerHelpPanelId"));
|
$('#conf_cont_json').append(createHelpTable(window.schema.jsonServer.properties, $.i18n("edt_conf_js_heading_title")));
|
||||||
|
|
||||||
//protoserver
|
//flatbufserver
|
||||||
$('#conf_cont').append(createRow('conf_cont_proto'))
|
$('#conf_cont').append(createRow('conf_cont_flatbuf'))
|
||||||
$('#conf_cont_proto').append(createOptPanel('fa-sitemap', $.i18n("edt_conf_pbs_heading_title"), 'editor_container_protoserver', 'btn_submit_protoserver', 'panel-system'));
|
$('#conf_cont_flatbuf').append(createOptPanel('fa-sitemap', $.i18n("edt_conf_fbs_heading_title"), 'editor_container_fbserver', 'btn_submit_fbserver', 'panel-system'));
|
||||||
$('#conf_cont_proto').append(createHelpTable(window.schema.protoServer.properties, $.i18n("edt_conf_pbs_heading_title"),"protoServerHelpPanelId"));
|
$('#conf_cont_flatbuf').append(createHelpTable(window.schema.flatbufServer.properties, $.i18n("edt_conf_fbs_heading_title"), "flatbufServerHelpPanelId"));
|
||||||
|
|
||||||
//boblight
|
//protoserver
|
||||||
$('#conf_cont').append(createRow('conf_cont_bobl'))
|
$('#conf_cont').append(createRow('conf_cont_proto'))
|
||||||
$('#conf_cont_bobl').append(createOptPanel('fa-sitemap', $.i18n("edt_conf_bobls_heading_title"), 'editor_container_boblightserver', 'btn_submit_boblightserver', 'panel-system'));
|
$('#conf_cont_proto').append(createOptPanel('fa-sitemap', $.i18n("edt_conf_pbs_heading_title"), 'editor_container_protoserver', 'btn_submit_protoserver', 'panel-system'));
|
||||||
$('#conf_cont_bobl').append(createHelpTable(window.schema.boblightServer.properties, $.i18n("edt_conf_bobls_heading_title"), "boblightServerHelpPanelId"));
|
$('#conf_cont_proto').append(createHelpTable(window.schema.protoServer.properties, $.i18n("edt_conf_pbs_heading_title"), "protoServerHelpPanelId"));
|
||||||
|
|
||||||
//forwarder
|
//boblight
|
||||||
if(storedAccess != 'default')
|
if (BOBLIGHT_ENABLED) {
|
||||||
{
|
$('#conf_cont').append(createRow('conf_cont_bobl'))
|
||||||
$('#conf_cont').append(createRow('conf_cont_fw'))
|
$('#conf_cont_bobl').append(createOptPanel('fa-sitemap', $.i18n("edt_conf_bobls_heading_title"), 'editor_container_boblightserver', 'btn_submit_boblightserver', 'panel-system'));
|
||||||
$('#conf_cont_fw').append(createOptPanel('fa-sitemap', $.i18n("edt_conf_fw_heading_title"), 'editor_container_forwarder', 'btn_submit_forwarder', 'panel-system'));
|
$('#conf_cont_bobl').append(createHelpTable(window.schema.boblightServer.properties, $.i18n("edt_conf_bobls_heading_title"), "boblightServerHelpPanelId"));
|
||||||
$('#conf_cont_fw').append(createHelpTable(window.schema.forwarder.properties, $.i18n("edt_conf_fw_heading_title"),"forwarderHelpPanelId"));
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$('#conf_cont').addClass('row');
|
|
||||||
$('#conf_cont').append(createOptPanel('fa-sitemap', $.i18n("edt_conf_net_heading_title"), 'editor_container_net', 'btn_submit_net'));
|
|
||||||
$('#conf_cont').append(createOptPanel('fa-sitemap', $.i18n("edt_conf_js_heading_title"), 'editor_container_jsonserver', 'btn_submit_jsonserver'));
|
|
||||||
$('#conf_cont').append(createOptPanel('fa-sitemap', $.i18n("edt_conf_fbs_heading_title"), 'editor_container_fbserver', 'btn_submit_fbserver'));
|
|
||||||
$('#conf_cont').append(createOptPanel('fa-sitemap', $.i18n("edt_conf_pbs_heading_title"), 'editor_container_protoserver', 'btn_submit_protoserver'));
|
|
||||||
$('#conf_cont').append(createOptPanel('fa-sitemap', $.i18n("edt_conf_bobls_heading_title"), 'editor_container_boblightserver', 'btn_submit_boblightserver'));
|
|
||||||
$('#conf_cont').append(createOptPanel('fa-sitemap', $.i18n("edt_conf_fw_heading_title"), 'editor_container_forwarder', 'btn_submit_forwarder'));
|
|
||||||
|
|
||||||
$("#conf_cont_tok").removeClass('row');
|
//forwarder
|
||||||
}
|
if (storedAccess != 'default') {
|
||||||
|
$('#conf_cont').append(createRow('conf_cont_fw'))
|
||||||
|
$('#conf_cont_fw').append(createOptPanel('fa-sitemap', $.i18n("edt_conf_fw_heading_title"), 'editor_container_forwarder', 'btn_submit_forwarder', 'panel-system'));
|
||||||
|
$('#conf_cont_fw').append(createHelpTable(window.schema.forwarder.properties, $.i18n("edt_conf_fw_heading_title"), "forwarderHelpPanelId"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$('#conf_cont').addClass('row');
|
||||||
|
$('#conf_cont').append(createOptPanel('fa-sitemap', $.i18n("edt_conf_net_heading_title"), 'editor_container_net', 'btn_submit_net'));
|
||||||
|
$('#conf_cont').append(createOptPanel('fa-sitemap', $.i18n("edt_conf_js_heading_title"), 'editor_container_jsonserver', 'btn_submit_jsonserver'));
|
||||||
|
$('#conf_cont').append(createOptPanel('fa-sitemap', $.i18n("edt_conf_fbs_heading_title"), 'editor_container_fbserver', 'btn_submit_fbserver'));
|
||||||
|
$('#conf_cont').append(createOptPanel('fa-sitemap', $.i18n("edt_conf_pbs_heading_title"), 'editor_container_protoserver', 'btn_submit_protoserver'));
|
||||||
|
$('#conf_cont').append(createOptPanel('fa-sitemap', $.i18n("edt_conf_bobls_heading_title"), 'editor_container_boblightserver', 'btn_submit_boblightserver'));
|
||||||
|
$('#conf_cont').append(createOptPanel('fa-sitemap', $.i18n("edt_conf_fw_heading_title"), 'editor_container_forwarder', 'btn_submit_forwarder'));
|
||||||
|
|
||||||
// net
|
$("#conf_cont_tok").removeClass('row');
|
||||||
conf_editor_net = createJsonEditor('editor_container_net', {
|
}
|
||||||
network : window.schema.network
|
|
||||||
}, true, true);
|
|
||||||
|
|
||||||
conf_editor_net.on('change',function() {
|
// net
|
||||||
conf_editor_net.validate().length || window.readOnlyMode ? $('#btn_submit_net').attr('disabled', true) : $('#btn_submit_net').attr('disabled', false);
|
conf_editor_net = createJsonEditor('editor_container_net', {
|
||||||
});
|
network: window.schema.network
|
||||||
|
}, true, true);
|
||||||
|
|
||||||
$('#btn_submit_net').off().on('click',function() {
|
conf_editor_net.on('change', function () {
|
||||||
requestWriteConfig(conf_editor_net.getValue());
|
conf_editor_net.validate().length || window.readOnlyMode ? $('#btn_submit_net').attr('disabled', true) : $('#btn_submit_net').attr('disabled', false);
|
||||||
});
|
});
|
||||||
|
|
||||||
//json
|
$('#btn_submit_net').off().on('click', function () {
|
||||||
conf_editor_json = createJsonEditor('editor_container_jsonserver', {
|
requestWriteConfig(conf_editor_net.getValue());
|
||||||
jsonServer : window.schema.jsonServer
|
});
|
||||||
}, true, true);
|
|
||||||
|
|
||||||
conf_editor_json.on('change',function() {
|
//json
|
||||||
conf_editor_json.validate().length || window.readOnlyMode ? $('#btn_submit_jsonserver').attr('disabled', true) : $('#btn_submit_jsonserver').attr('disabled', false);
|
conf_editor_json = createJsonEditor('editor_container_jsonserver', {
|
||||||
});
|
jsonServer: window.schema.jsonServer
|
||||||
|
}, true, true);
|
||||||
|
|
||||||
$('#btn_submit_jsonserver').off().on('click',function() {
|
conf_editor_json.on('change', function () {
|
||||||
requestWriteConfig(conf_editor_json.getValue());
|
conf_editor_json.validate().length || window.readOnlyMode ? $('#btn_submit_jsonserver').attr('disabled', true) : $('#btn_submit_jsonserver').attr('disabled', false);
|
||||||
});
|
});
|
||||||
|
|
||||||
//flatbuffer
|
$('#btn_submit_jsonserver').off().on('click', function () {
|
||||||
conf_editor_fbs = createJsonEditor('editor_container_fbserver', {
|
requestWriteConfig(conf_editor_json.getValue());
|
||||||
flatbufServer : window.schema.flatbufServer
|
});
|
||||||
}, true, true);
|
|
||||||
|
//flatbuffer
|
||||||
|
conf_editor_fbs = createJsonEditor('editor_container_fbserver', {
|
||||||
|
flatbufServer: window.schema.flatbufServer
|
||||||
|
}, true, true);
|
||||||
|
|
||||||
conf_editor_fbs.on('change', function () {
|
conf_editor_fbs.on('change', function () {
|
||||||
var flatbufServerEnable = conf_editor_fbs.getEditor("root.flatbufServer.enable").getValue();
|
var flatbufServerEnable = conf_editor_fbs.getEditor("root.flatbufServer.enable").getValue();
|
||||||
@ -96,17 +97,17 @@ $(document).ready( function() {
|
|||||||
showInputOptionsForKey(conf_editor_fbs, "flatbufServer", "enable", false);
|
showInputOptionsForKey(conf_editor_fbs, "flatbufServer", "enable", false);
|
||||||
$('#flatbufServerHelpPanelId').hide();
|
$('#flatbufServerHelpPanelId').hide();
|
||||||
}
|
}
|
||||||
conf_editor_fbs.validate().length || window.readOnlyMode ? $('#btn_submit_fbserver').attr('disabled', true) : $('#btn_submit_fbserver').attr('disabled', false);
|
conf_editor_fbs.validate().length || window.readOnlyMode ? $('#btn_submit_fbserver').attr('disabled', true) : $('#btn_submit_fbserver').attr('disabled', false);
|
||||||
});
|
});
|
||||||
|
|
||||||
$('#btn_submit_fbserver').off().on('click',function() {
|
$('#btn_submit_fbserver').off().on('click', function () {
|
||||||
requestWriteConfig(conf_editor_fbs.getValue());
|
requestWriteConfig(conf_editor_fbs.getValue());
|
||||||
});
|
});
|
||||||
|
|
||||||
//protobuffer
|
//protobuffer
|
||||||
conf_editor_proto = createJsonEditor('editor_container_protoserver', {
|
conf_editor_proto = createJsonEditor('editor_container_protoserver', {
|
||||||
protoServer : window.schema.protoServer
|
protoServer: window.schema.protoServer
|
||||||
}, true, true);
|
}, true, true);
|
||||||
|
|
||||||
conf_editor_proto.on('change', function () {
|
conf_editor_proto.on('change', function () {
|
||||||
var protoServerEnable = conf_editor_proto.getEditor("root.protoServer.enable").getValue();
|
var protoServerEnable = conf_editor_proto.getEditor("root.protoServer.enable").getValue();
|
||||||
@ -117,40 +118,41 @@ $(document).ready( function() {
|
|||||||
showInputOptionsForKey(conf_editor_proto, "protoServer", "enable", false);
|
showInputOptionsForKey(conf_editor_proto, "protoServer", "enable", false);
|
||||||
$('#protoServerHelpPanelId').hide();
|
$('#protoServerHelpPanelId').hide();
|
||||||
}
|
}
|
||||||
conf_editor_proto.validate().length || window.readOnlyMode ? $('#btn_submit_protoserver').attr('disabled', true) : $('#btn_submit_protoserver').attr('disabled', false);
|
conf_editor_proto.validate().length || window.readOnlyMode ? $('#btn_submit_protoserver').attr('disabled', true) : $('#btn_submit_protoserver').attr('disabled', false);
|
||||||
});
|
});
|
||||||
|
|
||||||
$('#btn_submit_protoserver').off().on('click',function() {
|
$('#btn_submit_protoserver').off().on('click', function () {
|
||||||
requestWriteConfig(conf_editor_proto.getValue());
|
requestWriteConfig(conf_editor_proto.getValue());
|
||||||
});
|
});
|
||||||
|
|
||||||
//boblight
|
//boblight
|
||||||
conf_editor_bobl = createJsonEditor('editor_container_boblightserver', {
|
if (BOBLIGHT_ENABLED) {
|
||||||
boblightServer : window.schema.boblightServer
|
conf_editor_bobl = createJsonEditor('editor_container_boblightserver', {
|
||||||
}, true, true);
|
boblightServer: window.schema.boblightServer
|
||||||
|
}, true, true);
|
||||||
|
|
||||||
conf_editor_bobl.on('change', function () {
|
conf_editor_bobl.on('change', function () {
|
||||||
var boblightServerEnable = conf_editor_bobl.getEditor("root.boblightServer.enable").getValue();
|
var boblightServerEnable = conf_editor_bobl.getEditor("root.boblightServer.enable").getValue();
|
||||||
if (boblightServerEnable) {
|
if (boblightServerEnable) {
|
||||||
showInputOptionsForKey(conf_editor_bobl, "boblightServer", "enable", true);
|
showInputOptionsForKey(conf_editor_bobl, "boblightServer", "enable", true);
|
||||||
$('#boblightServerHelpPanelId').show();
|
$('#boblightServerHelpPanelId').show();
|
||||||
} else {
|
} else {
|
||||||
showInputOptionsForKey(conf_editor_bobl, "boblightServer", "enable", false);
|
showInputOptionsForKey(conf_editor_bobl, "boblightServer", "enable", false);
|
||||||
$('#boblightServerHelpPanelId').hide();
|
$('#boblightServerHelpPanelId').hide();
|
||||||
}
|
}
|
||||||
conf_editor_bobl.validate().length || window.readOnlyMode ? $('#btn_submit_boblightserver').attr('disabled', true) : $('#btn_submit_boblightserver').attr('disabled', false);
|
conf_editor_bobl.validate().length || window.readOnlyMode ? $('#btn_submit_boblightserver').attr('disabled', true) : $('#btn_submit_boblightserver').attr('disabled', false);
|
||||||
});
|
});
|
||||||
|
|
||||||
$('#btn_submit_boblightserver').off().on('click', function () {
|
$('#btn_submit_boblightserver').off().on('click', function () {
|
||||||
requestWriteConfig(conf_editor_bobl.getValue());
|
requestWriteConfig(conf_editor_bobl.getValue());
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
if(storedAccess != 'default')
|
if (storedAccess != 'default') {
|
||||||
{
|
//forwarder
|
||||||
//forwarder
|
conf_editor_forw = createJsonEditor('editor_container_forwarder', {
|
||||||
conf_editor_forw = createJsonEditor('editor_container_forwarder', {
|
forwarder: window.schema.forwarder
|
||||||
forwarder : window.schema.forwarder
|
}, true, true);
|
||||||
}, true, true);
|
|
||||||
|
|
||||||
conf_editor_forw.on('change', function () {
|
conf_editor_forw.on('change', function () {
|
||||||
var forwarderEnable = conf_editor_forw.getEditor("root.forwarder.enable").getValue();
|
var forwarderEnable = conf_editor_forw.getEditor("root.forwarder.enable").getValue();
|
||||||
@ -161,90 +163,88 @@ $(document).ready( function() {
|
|||||||
showInputOptionsForKey(conf_editor_forw, "forwarder", "enable", false);
|
showInputOptionsForKey(conf_editor_forw, "forwarder", "enable", false);
|
||||||
$('#forwarderHelpPanelId').hide();
|
$('#forwarderHelpPanelId').hide();
|
||||||
}
|
}
|
||||||
conf_editor_forw.validate().length || window.readOnlyMode ? $('#btn_submit_forwarder').attr('disabled', true) : $('#btn_submit_forwarder').attr('disabled', false);
|
conf_editor_forw.validate().length || window.readOnlyMode ? $('#btn_submit_forwarder').attr('disabled', true) : $('#btn_submit_forwarder').attr('disabled', false);
|
||||||
});
|
});
|
||||||
|
|
||||||
$('#btn_submit_forwarder').off().on('click',function() {
|
$('#btn_submit_forwarder').off().on('click', function () {
|
||||||
requestWriteConfig(conf_editor_forw.getValue());
|
requestWriteConfig(conf_editor_forw.getValue());
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
//create introduction
|
//create introduction
|
||||||
if(window.showOptHelp)
|
if (window.showOptHelp) {
|
||||||
{
|
createHint("intro", $.i18n('conf_network_net_intro'), "editor_container_net");
|
||||||
createHint("intro", $.i18n('conf_network_net_intro'), "editor_container_net");
|
createHint("intro", $.i18n('conf_network_json_intro'), "editor_container_jsonserver");
|
||||||
createHint("intro", $.i18n('conf_network_json_intro'), "editor_container_jsonserver");
|
createHint("intro", $.i18n('conf_network_fbs_intro'), "editor_container_fbserver");
|
||||||
createHint("intro", $.i18n('conf_network_fbs_intro'), "editor_container_fbserver");
|
createHint("intro", $.i18n('conf_network_proto_intro'), "editor_container_protoserver");
|
||||||
createHint("intro", $.i18n('conf_network_proto_intro'), "editor_container_protoserver");
|
if (BOBLIGHT_ENABLED) {
|
||||||
createHint("intro", $.i18n('conf_network_bobl_intro'), "editor_container_boblightserver");
|
createHint("intro", $.i18n('conf_network_bobl_intro'), "editor_container_boblightserver");
|
||||||
createHint("intro", $.i18n('conf_network_forw_intro'), "editor_container_forwarder");
|
}
|
||||||
createHint("intro", $.i18n('conf_network_tok_intro'), "tok_desc_cont");
|
createHint("intro", $.i18n('conf_network_forw_intro'), "editor_container_forwarder");
|
||||||
}
|
createHint("intro", $.i18n('conf_network_tok_intro'), "tok_desc_cont");
|
||||||
|
}
|
||||||
|
|
||||||
// Token handling
|
// Token handling
|
||||||
function buildTokenList()
|
function buildTokenList() {
|
||||||
{
|
$('.tktbody').html("");
|
||||||
$('.tktbody').html("");
|
for (var key in tokenList) {
|
||||||
for(var key in tokenList)
|
var lastUse = (tokenList[key].last_use) ? tokenList[key].last_use : "-";
|
||||||
{
|
var btn = '<button id="tok' + tokenList[key].id + '" type="button" class="btn btn-danger">' + $.i18n('general_btn_delete') + '</button>';
|
||||||
var lastUse = (tokenList[key].last_use) ? tokenList[key].last_use : "-";
|
$('.tktbody').append(createTableRow([tokenList[key].comment, lastUse, btn], false, true));
|
||||||
var btn = '<button id="tok'+tokenList[key].id+'" type="button" class="btn btn-danger">'+$.i18n('general_btn_delete')+'</button>';
|
$('#tok' + tokenList[key].id).off().on('click', handleDeleteToken);
|
||||||
$('.tktbody').append(createTableRow([tokenList[key].comment, lastUse, btn], false, true));
|
}
|
||||||
$('#tok'+tokenList[key].id).off().on('click', handleDeleteToken);
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
createTable('tkthead', 'tktbody', 'tktable');
|
createTable('tkthead', 'tktbody', 'tktable');
|
||||||
$('.tkthead').html(createTableRow([$.i18n('conf_network_tok_cidhead'), $.i18n('conf_network_tok_lastuse'), $.i18n('general_btn_delete')], true, true));
|
$('.tkthead').html(createTableRow([$.i18n('conf_network_tok_cidhead'), $.i18n('conf_network_tok_lastuse'), $.i18n('general_btn_delete')], true, true));
|
||||||
buildTokenList();
|
buildTokenList();
|
||||||
|
|
||||||
function handleDeleteToken(e)
|
function handleDeleteToken(e) {
|
||||||
{
|
var key = e.currentTarget.id.replace("tok", "");
|
||||||
var key = e.currentTarget.id.replace("tok","");
|
requestTokenDelete(key);
|
||||||
requestTokenDelete(key);
|
$('#tok' + key).parent().parent().remove();
|
||||||
$('#tok'+key).parent().parent().remove();
|
// rm deleted token id
|
||||||
// rm deleted token id
|
tokenList = tokenList.filter(function (obj) {
|
||||||
tokenList = tokenList.filter(function( obj ) {
|
return obj.id !== key;
|
||||||
return obj.id !== key;
|
});
|
||||||
});
|
}
|
||||||
}
|
|
||||||
|
|
||||||
$('#btn_create_tok').off().on('click',function() {
|
$('#btn_create_tok').off().on('click', function () {
|
||||||
requestToken(encodeHTML($('#tok_comment').val()))
|
requestToken(encodeHTML($('#tok_comment').val()))
|
||||||
$('#tok_comment').val("")
|
$('#tok_comment').val("")
|
||||||
$('#btn_create_tok').attr('disabled', true)
|
$('#btn_create_tok').attr('disabled', true)
|
||||||
});
|
});
|
||||||
$('#tok_comment').off().on('input',function(e) {
|
$('#tok_comment').off().on('input', function (e) {
|
||||||
(e.currentTarget.value.length >= 10) ? $('#btn_create_tok').attr('disabled', false) : $('#btn_create_tok').attr('disabled', true);
|
(e.currentTarget.value.length >= 10) ? $('#btn_create_tok').attr('disabled', false) : $('#btn_create_tok').attr('disabled', true);
|
||||||
if(10-e.currentTarget.value.length >= 1 && 10-e.currentTarget.value.length <= 9)
|
if (10 - e.currentTarget.value.length >= 1 && 10 - e.currentTarget.value.length <= 9)
|
||||||
$('#tok_chars_needed').html(10-e.currentTarget.value.length + " " + $.i18n('general_chars_needed'))
|
$('#tok_chars_needed').html(10 - e.currentTarget.value.length + " " + $.i18n('general_chars_needed'))
|
||||||
else
|
else
|
||||||
$('#tok_chars_needed').html("<br />")
|
$('#tok_chars_needed').html("<br />")
|
||||||
});
|
});
|
||||||
$(window.hyperion).off("cmd-authorize-createToken").on("cmd-authorize-createToken", function(event) {
|
$(window.hyperion).off("cmd-authorize-createToken").on("cmd-authorize-createToken", function (event) {
|
||||||
var val = event.response.info;
|
var val = event.response.info;
|
||||||
showInfoDialog("newToken",$.i18n('conf_network_tok_diaTitle'),$.i18n('conf_network_tok_diaMsg')+'<br><div style="font-weight:bold">'+val.token+'</div>')
|
showInfoDialog("newToken", $.i18n('conf_network_tok_diaTitle'), $.i18n('conf_network_tok_diaMsg') + '<br><div style="font-weight:bold">' + val.token + '</div>')
|
||||||
tokenList.push(val)
|
tokenList.push(val)
|
||||||
buildTokenList()
|
buildTokenList()
|
||||||
});
|
});
|
||||||
|
|
||||||
//Reorder hardcoded token div after the general token setting div
|
//Reorder hardcoded token div after the general token setting div
|
||||||
$("#conf_cont_tok").insertAfter("#conf_cont_net");
|
$("#conf_cont_tok").insertAfter("#conf_cont_net");
|
||||||
|
|
||||||
function checkApiTokenState(state)
|
function checkApiTokenState(state) {
|
||||||
{
|
if (state == false)
|
||||||
if(state == false)
|
$("#conf_cont_tok").attr('style', 'display:none')
|
||||||
$("#conf_cont_tok").attr('style', 'display:none')
|
else
|
||||||
else
|
$("#conf_cont_tok").removeAttr('style')
|
||||||
$("#conf_cont_tok").removeAttr('style')
|
}
|
||||||
}
|
|
||||||
|
|
||||||
$('#root_network_apiAuth').change(function () {
|
$('#root_network_apiAuth').change(function () {
|
||||||
var state = $(this).is(":checked");
|
var state = $(this).is(":checked");
|
||||||
checkApiTokenState(state);
|
checkApiTokenState(state);
|
||||||
})
|
})
|
||||||
|
|
||||||
checkApiTokenState(window.serverConfig.network.apiAuth);
|
checkApiTokenState(window.serverConfig.network.apiAuth);
|
||||||
|
|
||||||
removeOverlay();
|
removeOverlay();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -46,7 +46,9 @@ class ColorAdjustment;
|
|||||||
class SettingsManager;
|
class SettingsManager;
|
||||||
class BGEffectHandler;
|
class BGEffectHandler;
|
||||||
class CaptureCont;
|
class CaptureCont;
|
||||||
|
#if defined(ENABLE_BOBLIGHT)
|
||||||
class BoblightServer;
|
class BoblightServer;
|
||||||
|
#endif
|
||||||
class LedDeviceWrapper;
|
class LedDeviceWrapper;
|
||||||
class Logger;
|
class Logger;
|
||||||
|
|
||||||
@ -545,8 +547,10 @@ private:
|
|||||||
|
|
||||||
VideoMode _currVideoMode = VideoMode::VIDEO_2D;
|
VideoMode _currVideoMode = VideoMode::VIDEO_2D;
|
||||||
|
|
||||||
|
#if defined(ENABLE_BOBLIGHT)
|
||||||
/// Boblight instance
|
/// Boblight instance
|
||||||
BoblightServer* _boblightServer;
|
BoblightServer* _boblightServer;
|
||||||
|
#endif
|
||||||
|
|
||||||
bool _readOnlyMode;
|
bool _readOnlyMode;
|
||||||
};
|
};
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
#include <QString>
|
#include <QString>
|
||||||
|
|
||||||
|
#include "HyperionConfig.h"
|
||||||
|
|
||||||
namespace hyperion
|
namespace hyperion
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -14,7 +16,9 @@ enum Components
|
|||||||
COMP_SMOOTHING,
|
COMP_SMOOTHING,
|
||||||
COMP_BLACKBORDER,
|
COMP_BLACKBORDER,
|
||||||
COMP_FORWARDER,
|
COMP_FORWARDER,
|
||||||
|
#if defined(ENABLE_BOBLIGHT)
|
||||||
COMP_BOBLIGHTSERVER,
|
COMP_BOBLIGHTSERVER,
|
||||||
|
#endif
|
||||||
COMP_GRABBER,
|
COMP_GRABBER,
|
||||||
COMP_V4L,
|
COMP_V4L,
|
||||||
COMP_COLOR,
|
COMP_COLOR,
|
||||||
@ -33,7 +37,9 @@ inline const char* componentToString(Components c)
|
|||||||
case COMP_SMOOTHING: return "Smoothing";
|
case COMP_SMOOTHING: return "Smoothing";
|
||||||
case COMP_BLACKBORDER: return "Blackborder detector";
|
case COMP_BLACKBORDER: return "Blackborder detector";
|
||||||
case COMP_FORWARDER: return "Json/Proto forwarder";
|
case COMP_FORWARDER: return "Json/Proto forwarder";
|
||||||
|
#if defined(ENABLE_BOBLIGHT)
|
||||||
case COMP_BOBLIGHTSERVER:return "Boblight server";
|
case COMP_BOBLIGHTSERVER:return "Boblight server";
|
||||||
|
#endif
|
||||||
case COMP_GRABBER: return "Framegrabber";
|
case COMP_GRABBER: return "Framegrabber";
|
||||||
case COMP_V4L: return "V4L capture device";
|
case COMP_V4L: return "V4L capture device";
|
||||||
case COMP_COLOR: return "Solid color";
|
case COMP_COLOR: return "Solid color";
|
||||||
@ -54,7 +60,9 @@ inline const char* componentToIdString(Components c)
|
|||||||
case COMP_SMOOTHING: return "SMOOTHING";
|
case COMP_SMOOTHING: return "SMOOTHING";
|
||||||
case COMP_BLACKBORDER: return "BLACKBORDER";
|
case COMP_BLACKBORDER: return "BLACKBORDER";
|
||||||
case COMP_FORWARDER: return "FORWARDER";
|
case COMP_FORWARDER: return "FORWARDER";
|
||||||
|
#if defined(ENABLE_BOBLIGHT)
|
||||||
case COMP_BOBLIGHTSERVER:return "BOBLIGHTSERVER";
|
case COMP_BOBLIGHTSERVER:return "BOBLIGHTSERVER";
|
||||||
|
#endif
|
||||||
case COMP_GRABBER: return "GRABBER";
|
case COMP_GRABBER: return "GRABBER";
|
||||||
case COMP_V4L: return "V4L";
|
case COMP_V4L: return "V4L";
|
||||||
case COMP_COLOR: return "COLOR";
|
case COMP_COLOR: return "COLOR";
|
||||||
@ -74,7 +82,9 @@ inline Components stringToComponent(const QString& component)
|
|||||||
if (cmp == "SMOOTHING") return COMP_SMOOTHING;
|
if (cmp == "SMOOTHING") return COMP_SMOOTHING;
|
||||||
if (cmp == "BLACKBORDER") return COMP_BLACKBORDER;
|
if (cmp == "BLACKBORDER") return COMP_BLACKBORDER;
|
||||||
if (cmp == "FORWARDER") return COMP_FORWARDER;
|
if (cmp == "FORWARDER") return COMP_FORWARDER;
|
||||||
|
#if defined(ENABLE_BOBLIGHT)
|
||||||
if (cmp == "BOBLIGHTSERVER")return COMP_BOBLIGHTSERVER;
|
if (cmp == "BOBLIGHTSERVER")return COMP_BOBLIGHTSERVER;
|
||||||
|
#endif
|
||||||
if (cmp == "GRABBER") return COMP_GRABBER;
|
if (cmp == "GRABBER") return COMP_GRABBER;
|
||||||
if (cmp == "V4L") return COMP_V4L;
|
if (cmp == "V4L") return COMP_V4L;
|
||||||
if (cmp == "COLOR") return COMP_COLOR;
|
if (cmp == "COLOR") return COMP_COLOR;
|
||||||
|
@ -10,7 +10,9 @@ add_subdirectory(jsonserver)
|
|||||||
add_subdirectory(flatbufserver)
|
add_subdirectory(flatbufserver)
|
||||||
add_subdirectory(protoserver)
|
add_subdirectory(protoserver)
|
||||||
add_subdirectory(ssdp)
|
add_subdirectory(ssdp)
|
||||||
add_subdirectory(boblightserver)
|
if(ENABLE_BOBLIGHT)
|
||||||
|
add_subdirectory(boblightserver)
|
||||||
|
endif()
|
||||||
add_subdirectory(leddevice)
|
add_subdirectory(leddevice)
|
||||||
add_subdirectory(utils)
|
add_subdirectory(utils)
|
||||||
add_subdirectory(effectengine)
|
add_subdirectory(effectengine)
|
||||||
|
@ -21,11 +21,19 @@
|
|||||||
#include "HyperionConfig.h"
|
#include "HyperionConfig.h"
|
||||||
#include <hyperion/Hyperion.h>
|
#include <hyperion/Hyperion.h>
|
||||||
#include <utils/QStringUtils.h>
|
#include <utils/QStringUtils.h>
|
||||||
|
#include <hyperion/PriorityMuxer.h>
|
||||||
|
|
||||||
// project includes
|
// project includes
|
||||||
#include "BoblightClientConnection.h"
|
#include "BoblightClientConnection.h"
|
||||||
|
|
||||||
BoblightClientConnection::BoblightClientConnection(Hyperion* hyperion, QTcpSocket *socket, int priority)
|
// Constants
|
||||||
|
namespace {
|
||||||
|
const int BOBLIGHT_DEFAULT_PRIORITY = 128;
|
||||||
|
const int BOBLIGHT_MIN_PRIORITY = PriorityMuxer::FG_PRIORITY+1;
|
||||||
|
const int BOBLIGHT_MAX_PRIORITY = PriorityMuxer::BG_PRIORITY-1;
|
||||||
|
} //End of constants
|
||||||
|
|
||||||
|
BoblightClientConnection::BoblightClientConnection(Hyperion* hyperion, QTcpSocket* socket, int priority)
|
||||||
: QObject()
|
: QObject()
|
||||||
, _locale(QLocale::C)
|
, _locale(QLocale::C)
|
||||||
, _socket(socket)
|
, _socket(socket)
|
||||||
@ -47,8 +55,8 @@ BoblightClientConnection::BoblightClientConnection(Hyperion* hyperion, QTcpSocke
|
|||||||
|
|
||||||
BoblightClientConnection::~BoblightClientConnection()
|
BoblightClientConnection::~BoblightClientConnection()
|
||||||
{
|
{
|
||||||
// clear the current channel
|
// clear the current channel
|
||||||
if (_priority != 0 && _priority >= 128 && _priority < 254)
|
if (_priority != 0 && _priority >= BOBLIGHT_MIN_PRIORITY && _priority <= BOBLIGHT_MAX_PRIORITY)
|
||||||
_hyperion->clear(_priority);
|
_hyperion->clear(_priority);
|
||||||
|
|
||||||
delete _socket;
|
delete _socket;
|
||||||
@ -59,7 +67,7 @@ void BoblightClientConnection::readData()
|
|||||||
_receiveBuffer.append(_socket->readAll());
|
_receiveBuffer.append(_socket->readAll());
|
||||||
|
|
||||||
int bytes = _receiveBuffer.indexOf('\n') + 1;
|
int bytes = _receiveBuffer.indexOf('\n') + 1;
|
||||||
while(bytes > 0)
|
while (bytes > 0)
|
||||||
{
|
{
|
||||||
// create message string (strip the newline)
|
// create message string (strip the newline)
|
||||||
const QString message = readMessage(_receiveBuffer.data(), bytes);
|
const QString message = readMessage(_receiveBuffer.data(), bytes);
|
||||||
@ -71,7 +79,7 @@ void BoblightClientConnection::readData()
|
|||||||
_receiveBuffer.remove(0, bytes);
|
_receiveBuffer.remove(0, bytes);
|
||||||
|
|
||||||
// drop messages if the buffer is too full
|
// drop messages if the buffer is too full
|
||||||
if (_receiveBuffer.size() > 100*1024)
|
if (_receiveBuffer.size() > 100 * 1024)
|
||||||
{
|
{
|
||||||
Debug(_log, "server drops messages (buffer full)");
|
Debug(_log, "server drops messages (buffer full)");
|
||||||
_receiveBuffer.clear();
|
_receiveBuffer.clear();
|
||||||
@ -82,9 +90,9 @@ void BoblightClientConnection::readData()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QString BoblightClientConnection::readMessage(const char *data, const size_t size) const
|
QString BoblightClientConnection::readMessage(const char* data, const size_t size) const
|
||||||
{
|
{
|
||||||
char *end = (char *)data + size - 1;
|
char* end = (char*)data + size - 1;
|
||||||
|
|
||||||
// Trim left
|
// Trim left
|
||||||
while (data < end && std::isspace(*data))
|
while (data < end && std::isspace(*data))
|
||||||
@ -100,7 +108,7 @@ QString BoblightClientConnection::readMessage(const char *data, const size_t siz
|
|||||||
|
|
||||||
// create message string (strip the newline)
|
// create message string (strip the newline)
|
||||||
const int len = end - data + 1;
|
const int len = end - data + 1;
|
||||||
const QString message = QString::fromLatin1(data, len);
|
const QString message = QString::fromLatin1(data, len);
|
||||||
|
|
||||||
//std::cout << bytes << ": \"" << message.toUtf8().constData() << "\"" << std::endl;
|
//std::cout << bytes << ": \"" << message.toUtf8().constData() << "\"" << std::endl;
|
||||||
|
|
||||||
@ -109,15 +117,15 @@ QString BoblightClientConnection::readMessage(const char *data, const size_t siz
|
|||||||
|
|
||||||
void BoblightClientConnection::socketClosed()
|
void BoblightClientConnection::socketClosed()
|
||||||
{
|
{
|
||||||
// clear the current channel
|
// clear the current channel
|
||||||
if (_priority >= 128 && _priority < 254)
|
if (_priority >= BOBLIGHT_MIN_PRIORITY && _priority <= BOBLIGHT_MAX_PRIORITY)
|
||||||
_hyperion->clear(_priority);
|
_hyperion->clear(_priority);
|
||||||
|
|
||||||
emit connectionClosed(this);
|
emit connectionClosed(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void BoblightClientConnection::handleMessage(const QString & message)
|
void BoblightClientConnection::handleMessage(const QString& message)
|
||||||
{
|
{
|
||||||
//std::cout << "boblight message: " << message.toStdString() << std::endl;
|
//std::cout << "boblight message: " << message.toStdString() << std::endl;
|
||||||
const QVector<QStringRef> messageParts = QStringUtils::splitRef(message, ' ', QStringUtils::SplitBehavior::SkipEmptyParts);
|
const QVector<QStringRef> messageParts = QStringUtils::splitRef(message, ' ', QStringUtils::SplitBehavior::SkipEmptyParts);
|
||||||
@ -166,16 +174,16 @@ void BoblightClientConnection::handleMessage(const QString & message)
|
|||||||
|
|
||||||
if (rc1 && rc2 && rc3)
|
if (rc1 && rc2 && rc3)
|
||||||
{
|
{
|
||||||
ColorRgb & rgb = _ledColors[ledIndex];
|
ColorRgb& rgb = _ledColors[ledIndex];
|
||||||
rgb.red = red;
|
rgb.red = red;
|
||||||
rgb.green = green;
|
rgb.green = green;
|
||||||
rgb.blue = blue;
|
rgb.blue = blue;
|
||||||
|
|
||||||
if (_priority == 0 || _priority < 128 || _priority >= 254)
|
if (_priority == 0 || _priority < BOBLIGHT_MIN_PRIORITY || _priority > BOBLIGHT_MAX_PRIORITY)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// send current color values to hyperion if this is the last led assuming leds values are send in order of id
|
// send current color values to hyperion if this is the last led assuming leds values are send in order of id
|
||||||
if (ledIndex == _ledColors.size() -1)
|
if (ledIndex == _ledColors.size() - 1)
|
||||||
{
|
{
|
||||||
_hyperion->setInput(_priority, _ledColors);
|
_hyperion->setInput(_priority, _ledColors);
|
||||||
}
|
}
|
||||||
@ -183,10 +191,10 @@ void BoblightClientConnection::handleMessage(const QString & message)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(messageParts[3] == "speed" ||
|
else if (messageParts[3] == "speed" ||
|
||||||
messageParts[3] == "interpolation" ||
|
messageParts[3] == "interpolation" ||
|
||||||
messageParts[3] == "use" ||
|
messageParts[3] == "use" ||
|
||||||
messageParts[3] == "singlechange")
|
messageParts[3] == "singlechange")
|
||||||
{
|
{
|
||||||
// these message are ignored by Hyperion
|
// these message are ignored by Hyperion
|
||||||
return;
|
return;
|
||||||
@ -202,16 +210,17 @@ void BoblightClientConnection::handleMessage(const QString & message)
|
|||||||
if (_priority != 0 && _hyperion->getPriorityInfo(_priority).componentId == hyperion::COMP_BOBLIGHTSERVER)
|
if (_priority != 0 && _hyperion->getPriorityInfo(_priority).componentId == hyperion::COMP_BOBLIGHTSERVER)
|
||||||
_hyperion->clear(_priority);
|
_hyperion->clear(_priority);
|
||||||
|
|
||||||
if (prio < 128 || prio >= 254)
|
if (prio < BOBLIGHT_MIN_PRIORITY || prio > BOBLIGHT_MAX_PRIORITY)
|
||||||
{
|
{
|
||||||
_priority = 128;
|
_priority = BOBLIGHT_DEFAULT_PRIORITY;
|
||||||
while (_hyperion->getActivePriorities().contains(_priority))
|
while (_hyperion->getActivePriorities().contains(_priority))
|
||||||
{
|
{
|
||||||
_priority += 1;
|
_priority += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// warn against invalid priority
|
// warn against invalid priority
|
||||||
Warning(_log, "The priority %i is not in the priority range between 128 and 253. Priority %i is used instead.", prio, _priority);
|
Warning(_log, "The priority %i is not in the priority range of [%d-%d]. Priority %i is used instead.",
|
||||||
|
prio, BOBLIGHT_MIN_PRIORITY, BOBLIGHT_MAX_PRIORITY, _priority);
|
||||||
// register new priority (previously modified)
|
// register new priority (previously modified)
|
||||||
_hyperion->registerInput(_priority, hyperion::COMP_BOBLIGHTSERVER, QString("Boblight@%1").arg(_socket->peerAddress().toString()));
|
_hyperion->registerInput(_priority, hyperion::COMP_BOBLIGHTSERVER, QString("Boblight@%1").arg(_socket->peerAddress().toString()));
|
||||||
}
|
}
|
||||||
@ -228,7 +237,7 @@ void BoblightClientConnection::handleMessage(const QString & message)
|
|||||||
}
|
}
|
||||||
else if (messageParts[0] == "sync")
|
else if (messageParts[0] == "sync")
|
||||||
{
|
{
|
||||||
if ( _priority >= 128 && _priority < 254)
|
if (_priority >= BOBLIGHT_MIN_PRIORITY && _priority <= BOBLIGHT_MAX_PRIORITY)
|
||||||
_hyperion->setInput(_priority, _ledColors); // send current color values to hyperion
|
_hyperion->setInput(_priority, _ledColors); // send current color values to hyperion
|
||||||
|
|
||||||
return;
|
return;
|
||||||
@ -248,9 +257,9 @@ const float ipows[] = {
|
|||||||
1.0f / 100000.0f,
|
1.0f / 100000.0f,
|
||||||
1.0f / 1000000.0f,
|
1.0f / 1000000.0f,
|
||||||
1.0f / 10000000.0f,
|
1.0f / 10000000.0f,
|
||||||
1.0f / 100000000.0f};
|
1.0f / 100000000.0f };
|
||||||
|
|
||||||
float BoblightClientConnection::parseFloat(const QStringRef& s, bool *ok) const
|
float BoblightClientConnection::parseFloat(const QStringRef& s, bool* ok) const
|
||||||
{
|
{
|
||||||
// We parse radix 10
|
// We parse radix 10
|
||||||
const char MIN_DIGIT = '0';
|
const char MIN_DIGIT = '0';
|
||||||
@ -331,7 +340,7 @@ float BoblightClientConnection::parseFloat(const QStringRef& s, bool *ok) const
|
|||||||
return f;
|
return f;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned BoblightClientConnection::parseUInt(const QStringRef& s, bool *ok) const
|
unsigned BoblightClientConnection::parseUInt(const QStringRef& s, bool* ok) const
|
||||||
{
|
{
|
||||||
// We parse radix 10
|
// We parse radix 10
|
||||||
const char MIN_DIGIT = '0';
|
const char MIN_DIGIT = '0';
|
||||||
@ -363,7 +372,7 @@ unsigned BoblightClientConnection::parseUInt(const QStringRef& s, bool *ok) cons
|
|||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t BoblightClientConnection::parseByte(const QStringRef& s, bool *ok) const
|
uint8_t BoblightClientConnection::parseByte(const QStringRef& s, bool* ok) const
|
||||||
{
|
{
|
||||||
const int LO = 0;
|
const int LO = 0;
|
||||||
const int HI = 255;
|
const int HI = 255;
|
||||||
@ -389,7 +398,7 @@ void BoblightClientConnection::sendLightMessage()
|
|||||||
for (int i = 0; i < _hyperion->getLedCount(); ++i)
|
for (int i = 0; i < _hyperion->getLedCount(); ++i)
|
||||||
{
|
{
|
||||||
_imageProcessor->getScanParameters(i, h0, h1, v0, v1);
|
_imageProcessor->getScanParameters(i, h0, h1, v0, v1);
|
||||||
n = snprintf(buffer, sizeof(buffer), "light %03d scan %f %f %f %f\n", i, 100*v0, 100*v1, 100*h0, 100*h1);
|
n = snprintf(buffer, sizeof(buffer), "light %03d scan %f %f %f %f\n", i, 100 * v0, 100 * v1, 100 * h0, 100 * h1);
|
||||||
sendMessage(QByteArray(buffer, n));
|
sendMessage(QByteArray(buffer, n));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -176,13 +176,8 @@ bool FramebufferFrameGrabber::getScreenInfo()
|
|||||||
break;
|
break;
|
||||||
case 24: _pixelFormat = PixelFormat::BGR24;
|
case 24: _pixelFormat = PixelFormat::BGR24;
|
||||||
break;
|
break;
|
||||||
#ifdef ENABLE_AMLOGIC
|
|
||||||
case 32: _pixelFormat = PixelFormat::PIXELFORMAT_RGB32;
|
|
||||||
break;
|
|
||||||
#else
|
|
||||||
case 32: _pixelFormat = PixelFormat::BGR32;
|
case 32: _pixelFormat = PixelFormat::BGR32;
|
||||||
break;
|
break;
|
||||||
#endif
|
|
||||||
default:
|
default:
|
||||||
rc= false;
|
rc= false;
|
||||||
QString errorReason = QString ("Unknown pixel format: %1 bits per pixel").arg(static_cast<int>(_varInfo.bits_per_pixel));
|
QString errorReason = QString ("Unknown pixel format: %1 bits per pixel").arg(static_cast<int>(_varInfo.bits_per_pixel));
|
||||||
|
@ -22,12 +22,15 @@ target_link_libraries(hyperion
|
|||||||
flatbufserver
|
flatbufserver
|
||||||
flatbuffers
|
flatbuffers
|
||||||
leddevice
|
leddevice
|
||||||
boblightserver
|
|
||||||
effectengine
|
effectengine
|
||||||
database
|
database
|
||||||
${QT_LIBRARIES}
|
${QT_LIBRARIES}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if(ENABLE_BOBLIGHT)
|
||||||
|
target_link_libraries(hyperion boblightserver)
|
||||||
|
endif()
|
||||||
|
|
||||||
if (ENABLE_AVAHI)
|
if (ENABLE_AVAHI)
|
||||||
target_link_libraries(hyperion bonjour)
|
target_link_libraries(hyperion bonjour)
|
||||||
endif ()
|
endif ()
|
||||||
|
@ -11,7 +11,12 @@ ComponentRegister::ComponentRegister(Hyperion* hyperion)
|
|||||||
{
|
{
|
||||||
// init all comps to false
|
// init all comps to false
|
||||||
QVector<hyperion::Components> vect;
|
QVector<hyperion::Components> vect;
|
||||||
vect << COMP_ALL << COMP_SMOOTHING << COMP_BLACKBORDER << COMP_FORWARDER << COMP_BOBLIGHTSERVER << COMP_GRABBER << COMP_V4L << COMP_LEDDEVICE;
|
vect << COMP_ALL << COMP_SMOOTHING << COMP_BLACKBORDER << COMP_FORWARDER << COMP_GRABBER << COMP_V4L << COMP_LEDDEVICE;
|
||||||
|
|
||||||
|
#if defined(ENABLE_BOBLIGHT)
|
||||||
|
vect << COMP_BOBLIGHTSERVER;
|
||||||
|
#endif
|
||||||
|
|
||||||
for(auto e : vect)
|
for(auto e : vect)
|
||||||
{
|
{
|
||||||
_componentStates.emplace(e, (e == COMP_ALL));
|
_componentStates.emplace(e, (e == COMP_ALL));
|
||||||
|
@ -37,7 +37,9 @@
|
|||||||
#include <hyperion/CaptureCont.h>
|
#include <hyperion/CaptureCont.h>
|
||||||
|
|
||||||
// Boblight
|
// Boblight
|
||||||
|
#if defined(ENABLE_BOBLIGHT)
|
||||||
#include <boblightserver/BoblightServer.h>
|
#include <boblightserver/BoblightServer.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
Hyperion::Hyperion(quint8 instance, bool readonlyMode)
|
Hyperion::Hyperion(quint8 instance, bool readonlyMode)
|
||||||
: QObject()
|
: QObject()
|
||||||
@ -58,7 +60,9 @@ Hyperion::Hyperion(quint8 instance, bool readonlyMode)
|
|||||||
, _BGEffectHandler(nullptr)
|
, _BGEffectHandler(nullptr)
|
||||||
, _captureCont(nullptr)
|
, _captureCont(nullptr)
|
||||||
, _ledBuffer(_ledString.leds().size(), ColorRgb::BLACK)
|
, _ledBuffer(_ledString.leds().size(), ColorRgb::BLACK)
|
||||||
|
#if defined(ENABLE_BOBLIGHT)
|
||||||
, _boblightServer(nullptr)
|
, _boblightServer(nullptr)
|
||||||
|
#endif
|
||||||
, _readOnlyMode(readonlyMode)
|
, _readOnlyMode(readonlyMode)
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -148,9 +152,11 @@ void Hyperion::start()
|
|||||||
// if there is no startup / background effect and no sending capture interface we probably want to push once BLACK (as PrioMuxer won't emit a priority change)
|
// if there is no startup / background effect and no sending capture interface we probably want to push once BLACK (as PrioMuxer won't emit a priority change)
|
||||||
update();
|
update();
|
||||||
|
|
||||||
|
#if defined(ENABLE_BOBLIGHT)
|
||||||
// boblight, can't live in global scope as it depends on layout
|
// boblight, can't live in global scope as it depends on layout
|
||||||
_boblightServer = new BoblightServer(this, getSetting(settings::BOBLSERVER));
|
_boblightServer = new BoblightServer(this, getSetting(settings::BOBLSERVER));
|
||||||
connect(this, &Hyperion::settingsChanged, _boblightServer, &BoblightServer::handleSettingsUpdate);
|
connect(this, &Hyperion::settingsChanged, _boblightServer, &BoblightServer::handleSettingsUpdate);
|
||||||
|
#endif
|
||||||
|
|
||||||
// instance initiated, enter thread event loop
|
// instance initiated, enter thread event loop
|
||||||
emit started();
|
emit started();
|
||||||
@ -168,7 +174,9 @@ void Hyperion::freeObjects()
|
|||||||
clear(-1,true);
|
clear(-1,true);
|
||||||
|
|
||||||
// delete components on exit of hyperion core
|
// delete components on exit of hyperion core
|
||||||
|
#if defined(ENABLE_BOBLIGHT)
|
||||||
delete _boblightServer;
|
delete _boblightServer;
|
||||||
|
#endif
|
||||||
delete _captureCont;
|
delete _captureCont;
|
||||||
delete _effectEngine;
|
delete _effectEngine;
|
||||||
delete _raw2ledAdjustment;
|
delete _raw2ledAdjustment;
|
||||||
|
@ -23,8 +23,8 @@
|
|||||||
{
|
{
|
||||||
"type" : "integer",
|
"type" : "integer",
|
||||||
"title" : "edt_conf_general_priority_title",
|
"title" : "edt_conf_general_priority_title",
|
||||||
"minimum" : 100,
|
"minimum" : 2,
|
||||||
"maximum" : 254,
|
"maximum" : 253,
|
||||||
"default" : 128,
|
"default" : 128,
|
||||||
"propertyOrder" : 3
|
"propertyOrder" : 3
|
||||||
}
|
}
|
||||||
|
@ -108,7 +108,7 @@ public:
|
|||||||
///
|
///
|
||||||
/// Enable/Disable components during runtime
|
/// Enable/Disable components during runtime
|
||||||
///
|
///
|
||||||
/// @param component The component [SMOOTHING, BLACKBORDER, FORWARDER, BOBLIGHT_SERVER, GRABBER]
|
/// @param component The component [SMOOTHING, BLACKBORDER, FORWARDER, BOBLIGHTSERVER, GRABBER]
|
||||||
/// @param state The state of the component [true | false]
|
/// @param state The state of the component [true | false]
|
||||||
///
|
///
|
||||||
void setComponentState(const QString & component, bool state);
|
void setComponentState(const QString & component, bool state);
|
||||||
|
@ -103,8 +103,8 @@ int main(int argc, char * argv[])
|
|||||||
BooleanOption & argSysInfo = parser.add<BooleanOption>('s', "sysinfo" , "show system info");
|
BooleanOption & argSysInfo = parser.add<BooleanOption>('s', "sysinfo" , "show system info");
|
||||||
BooleanOption & argClear = parser.add<BooleanOption>('x', "clear" , "Clear data for the priority channel provided by the -p option");
|
BooleanOption & argClear = parser.add<BooleanOption>('x', "clear" , "Clear data for the priority channel provided by the -p option");
|
||||||
BooleanOption & argClearAll = parser.add<BooleanOption>(0x0, "clearall" , "Clear data for all active priority channels");
|
BooleanOption & argClearAll = parser.add<BooleanOption>(0x0, "clearall" , "Clear data for all active priority channels");
|
||||||
Option & argEnableComponent = parser.add<Option> ('E', "enable" , "Enable the Component with the given name. Available Components are [SMOOTHING, BLACKBORDER, FORWARDER, BOBLIGHT_SERVER, GRABBER, V4L, LEDDEVICE]");
|
Option & argEnableComponent = parser.add<Option> ('E', "enable" , "Enable the Component with the given name. Available Components are [SMOOTHING, BLACKBORDER, FORWARDER, BOBLIGHTSERVER, GRABBER, V4L, LEDDEVICE]");
|
||||||
Option & argDisableComponent = parser.add<Option> ('D', "disable" , "Disable the Component with the given name. Available Components are [SMOOTHING, BLACKBORDER, FORWARDER, BOBLIGHT_SERVER, GRABBER, V4L, LEDDEVICE]");
|
Option & argDisableComponent = parser.add<Option> ('D', "disable" , "Disable the Component with the given name. Available Components are [SMOOTHING, BLACKBORDER, FORWARDER, BOBLIGHTSERVER, GRABBER, V4L, LEDDEVICE]");
|
||||||
Option & argId = parser.add<Option> ('q', "qualifier" , "Identifier(qualifier) of the adjustment to set");
|
Option & argId = parser.add<Option> ('q', "qualifier" , "Identifier(qualifier) of the adjustment to set");
|
||||||
IntOption & argBrightness = parser.add<IntOption> ('L', "brightness" , "Set the brightness gain of the LEDs");
|
IntOption & argBrightness = parser.add<IntOption> ('L', "brightness" , "Set the brightness gain of the LEDs");
|
||||||
IntOption & argBrightnessC = parser.add<IntOption> (0x0, "brightnessCompensation" , "Set the brightness compensation");
|
IntOption & argBrightnessC = parser.add<IntOption> (0x0, "brightnessCompensation" , "Set the brightness compensation");
|
||||||
|
Loading…
Reference in New Issue
Block a user