ledConfig in config, report creation and upload (#398)

* update effects

* fix

* try

* .

* Update clock.py

* Update clock.py

* upd

* impl ledConfig

* upd

* fix

* update

* update js

* fix pacman

* change order of priorities
This commit is contained in:
brindosch 2017-02-15 15:53:35 +01:00 committed by redPanther
parent 37b8a909b6
commit 7c336b0511
17 changed files with 887 additions and 260 deletions

View File

@ -46,55 +46,55 @@
<tbody>
<tr>
<td class="ltd">
<label class="ltdlabel" for="ip_cl_ledstop" data-i18n="conf_leds_layout_cl_top">Top</label>
<label class="ltdlabel" for="ip_cl_top" data-i18n="conf_leds_layout_cl_top">Top</label>
</td>
<td class="itd input-group">
<input class="form-control ledCLconstr led_val_int" id="ip_cl_ledstop" type="number" value="10" min="0" step="1"></input>
<input class="form-control ledCLconstr " id="ip_cl_top" type="number" value="10" min="0" step="1"></input>
<div class="input-group-addon" data-i18n="edt_append_leds">LEDs</div>
</td>
</tr>
<tr>
<td class="ltd">
<label class="ltdlabel" for="ip_cl_ledsbottom" data-i18n="conf_leds_layout_cl_bottom">Bottom</label>
<label class="ltdlabel" for="ip_cl_bottom" data-i18n="conf_leds_layout_cl_bottom">Bottom</label>
</td>
<td class="itd input-group">
<input class="form-control ledCLconstr led_val_int" id="ip_cl_ledsbottom" type="number" value="10" min="0" step="1"></input>
<input class="form-control ledCLconstr" id="ip_cl_bottom" type="number" value="10" min="0" step="1"></input>
<div class="input-group-addon" data-i18n="edt_append_leds">LEDs</div>
</td>
</tr>
<tr>
<td class="ltd">
<label class="ltdlabel" for="ip_cl_ledsleft" data-i18n="conf_leds_layout_cl_left">Left</label>
<label class="ltdlabel" for="ip_cl_left" data-i18n="conf_leds_layout_cl_left">Left</label>
</td>
<td class="itd input-group">
<input class="form-control ledCLconstr led_val_int" id="ip_cl_ledsleft" type="number" value="6" min="0" step="1"></input>
<input class="form-control ledCLconstr" id="ip_cl_left" type="number" value="6" min="0" step="1"></input>
<div class="input-group-addon" data-i18n="edt_append_leds">LEDs</div>
</td>
</tr>
<tr>
<td class="ltd">
<label class="ltdlabel" for="ip_cl_ledsright" data-i18n="conf_leds_layout_cl_right">Right</label>
<label class="ltdlabel" for="ip_cl_right" data-i18n="conf_leds_layout_cl_right">Right</label>
</td>
<td class="itd input-group">
<input class="form-control ledCLconstr led_val_int" id="ip_cl_ledsright" type="number" value="6" min="0" step="1"></input>
<input class="form-control ledCLconstr" id="ip_cl_right" type="number" value="6" min="0" step="1"></input>
<div class="input-group-addon" data-i18n="edt_append_leds">LEDs</div>
</td>
</tr>
<tr>
<td class="ltd">
<label class="ltdlabel" for="ip_cl_ledsglength" data-i18n="conf_leds_layout_cl_gaglength">Gap length</label>
<label class="ltdlabel" for="ip_cl_glength" data-i18n="conf_leds_layout_cl_gaglength">Gap length</label>
</td>
<td class="itd input-group">
<input class="form-control ledCLconstr led_val_int" id="ip_cl_ledsglength" type="number" value="0" min="0" step="1"></input>
<input class="form-control ledCLconstr" id="ip_cl_glength" type="number" value="0" min="0" step="1"></input>
<div class="input-group-addon" data-i18n="edt_append_leds">LEDs</div>
</td>
</tr>
<tr>
<td class="ltd">
<label class="ltdlabel" for="ip_cl_ledsgpos" data-i18n="conf_leds_layout_cl_gappos">Gap position</label>
<label class="ltdlabel" for="ip_cl_gpos" data-i18n="conf_leds_layout_cl_gappos">Gap position</label>
</td>
<td class="itd">
<input class="form-control ledCLconstr led_val_int" id="ip_cl_ledsgpos" type="number" value="0" min="0" step="1">
<input class="form-control ledCLconstr" id="ip_cl_gpos" type="number" value="0" min="0" step="1">
</td>
</tr>
<tr>
@ -102,7 +102,7 @@
<label class="ltdlabel" for="ip_cl_position" data-i18n="conf_leds_layout_cl_inppos">Input position</label>
</td>
<td class="itd">
<input class="form-control ledCLconstr led_val_int" id="ip_cl_position" type="number" value="0" step="1">
<input class="form-control ledCLconstr" id="ip_cl_position" type="number" value="0" step="1">
</td>
</tr>
<tr>
@ -111,7 +111,7 @@
</td>
<td class="itd">
<div class="checkbox">
<input class="ledCLconstr led_val_bool" id="ip_cl_reverse" type="checkbox" value="false"></input>
<input class="ledCLconstr" id="ip_cl_reverse" type="checkbox" value="false"></input>
<label></label>
</div>
</td>
@ -130,19 +130,19 @@
<tbody>
<tr>
<td class="ltd">
<label class="ltdlabel" for="ip_cl_ledshdepth" data-i18n="conf_leds_layout_cl_hleddepth">Horizontal LED depth</label>
<label class="ltdlabel" for="ip_cl_hdepth" data-i18n="conf_leds_layout_cl_hleddepth">Horizontal LED depth</label>
</td>
<td class="itd input-group">
<input class="form-control ledCLconstr led_val_int" id="ip_cl_ledshdepth" type="number" value="8" min="1" max="100" step="1"></input>
<input class="form-control ledCLconstr" id="ip_cl_hdepth" type="number" value="8" min="1" max="100" step="1"></input>
<div class="input-group-addon" data-i18n="edt_append_percent">%</div>
</td>
</tr>
<tr>
<td class="ltd">
<label class="ltdlabel" for="ip_cl_ledsvdepth" data-i18n="conf_leds_layout_cl_vleddepth">Vertical LED depth</label>
<label class="ltdlabel" for="ip_cl_vdepth" data-i18n="conf_leds_layout_cl_vleddepth">Vertical LED depth</label>
</td>
<td class="itd input-group">
<input class="form-control ledCLconstr led_val_int" id="ip_cl_ledsvdepth" type="number" value="5" min="1" max="100" step="1"></input>
<input class="form-control ledCLconstr" id="ip_cl_vdepth" type="number" value="5" min="1" max="100" step="1"></input>
<div class="input-group-addon" data-i18n="edt_append_percent">%</div>
</td>
</tr>
@ -151,25 +151,25 @@
<label class="ltdlabel" for="ip_cl_overlap" data-i18n="conf_leds_layout_cl_overlap">Edge Gap</label>
</td>
<td class="itd input-group">
<input class="form-control ledCLconstr led_val_int" id="ip_cl_overlap" type="number" value="0" min="0" max="100" step="1"></input>
<input class="form-control ledCLconstr" id="ip_cl_overlap" type="number" value="0" min="0" max="200" step="1"></input>
<div class="input-group-addon" data-i18n="edt_append_percent">%</div>
</td>
</tr>
<tr>
<td class="ltd">
<label class="ltdlabel" for="ip_cl_ledsedgegap" data-i18n="conf_leds_layout_cl_edgegap">Edge Gap</label>
<label class="ltdlabel" for="ip_cl_edgegap" data-i18n="conf_leds_layout_cl_edgegap">Edge Gap</label>
</td>
<td class="itd input-group">
<input class="form-control ledCLconstr led_val_int" id="ip_cl_ledsedgegap" type="number" value="0" min="0" max="50" step="1"></input>
<input class="form-control ledCLconstr" id="ip_cl_edgegap" type="number" value="0" min="0" max="50" step="1"></input>
<div class="input-group-addon" data-i18n="edt_append_percent">%</div>
</td>
</tr>
<!-- <tr>
<td class="ltd">
<label class="ltdlabel" for="ip_cl_ledscornergap" data-i18n="conf_leds_layout_cl_cornergap">Corner Gap</label>
<label class="ltdlabel" for="ip_cl_cornergap" data-i18n="conf_leds_layout_cl_cornergap">Corner Gap</label>
</td>
<td class="itd input-group">
<input class="form-control ledCLconstr led_val_int" id="ip_cl_ledscornergap" type="number" value="0" min="0" max="50" step="1"></input>
<input class="form-control ledCLconstr " id="ip_cl_cornergap" type="number" value="0" min="0" max="50" step="1"></input>
<div class="input-group-addon" data-i18n="edt_append_percent">%</div>
</td>
</tr>
@ -201,7 +201,7 @@
<label class="ltdlabel" for="ip_ma_ledshoriz" data-i18n="conf_leds_layout_ma_horiz">Horizontal</label>
</td>
<td class="itd input-group">
<input class="form-control ledMAconstr led_val_int" id="ip_ma_ledshoriz" type="number" value="10" min="1" step="1"></input>
<input class="form-control ledMAconstr" id="ip_ma_ledshoriz" type="number" value="10" min="1" step="1"></input>
<div class="input-group-addon" data-i18n="edt_append_leds">LEDs</div>
</td>
</tr>
@ -210,7 +210,7 @@
<label class="ltdlabel" for="ip_ma_ledsvert" data-i18n="conf_leds_layout_ma_vert">Vertical</label>
</td>
<td class="itd input-group">
<input class="form-control ledMAconstr led_val_int" id="ip_ma_ledsvert" type="number" value="10" min="1" step="1"></input>
<input class="form-control ledMAconstr" id="ip_ma_ledsvert" type="number" value="10" min="1" step="1"></input>
<div class="input-group-addon" data-i18n="edt_append_leds">LEDs</div>
</td>
</tr>
@ -219,7 +219,7 @@
<label class="ltdlabel" for="ip_ma_cabling" data-i18n="conf_leds_layout_ma_cabling">Cabling</label>
</td>
<td class="itd">
<select class="form-control ledMAconstr led_val_string" id="ip_ma_cabling">
<select class="form-control ledMAconstr" id="ip_ma_cabling">
<option value="snake" data-i18n="conf_leds_layout_ma_optsnake">Snake</option>
<option value="parallel" data-i18n="conf_leds_layout_ma_optparallel">Parallel</option>
</select>
@ -242,7 +242,7 @@
<label class="ltdlabel" for="ip_ma_start" data-i18n="conf_leds_layout_ma_position">Input</label>
</td>
<td class="itd">
<select class="form-control ledMAconstr led_val_string" id="ip_ma_start">
<select class="form-control ledMAconstr" id="ip_ma_start">
<option value="top-left" data-i18n="conf_leds_layout_ma_opttopleft">Top left</option>
<option value="top-right" data-i18n="conf_leds_layout_ma_opttopright">Top right</option>
<option value="bottom-left" data-i18n="conf_leds_layout_ma_optbottomleft">Bottom left</option>

View File

@ -161,9 +161,12 @@
"conf_kodi_label_title" : "Kodi Überwachung",
"conf_kodi_intro" : "Die Kodi Überwachung ermöglicht es dir abhängig vom Kodi Status dein ambient light an oder abzuschalten. Dies ist nicht limitiert auf das selbe Gerät. Du kannst jedes Kodi in deinem lokalen Netzwerk überwachen lassen.",
"conf_logging_label_intro" : "Überprüfe die Meldungen im Prokotoll um zu erfahren was Hyperion gerade beschäftigt. Je nach eingestellter Protokoll-Stufe siehst du mehr oder weniger Informationen.",
"conf_logging_btn_pbupload" : "Protokoll hochladen",
"conf_logging_btn_pbupload" : "Bericht für Supportanfrage erstellen",
"conf_logging_btn_autoscroll" : "Automatisch scrollen",
"conf_logging_nomessage" : "Keine Einträge vorhanden.",
"conf_logging_uploading" : "Aufbereitung der Daten...",
"conf_logging_yourlink" : "Link zu deinem Bericht",
"conf_logging_uplfailed" : "Hochladen fehlgeschlagen! Überprüfe deine Internetverbindung!",
"conf_webconfig_label_intro" : "Einstellungen zur Webkonfiguration. Änderungen können die Erreichbarkeit des Webinterfaces beeinflussen.",
"remote_losthint" : "Notiz: Alle Änderungen gehen nach einem Neustart verloren.",
"remote_color_label" : "Farbe/Effekt",
@ -285,7 +288,7 @@
"wiz_hue_create_user" : "Benutzer anlegen",
"wiz_hue_failure_ip" : "Bitte überprüfe deine IP Adresse.",
"wiz_hue_failure_connection" : "Connection Timeout. Bitte drücke die Taste rechtzeitig.",
"wiz_hue_press_link" : "Bitte Link Taste auf der Hue Bridge drücken.",
"wiz_hue_press_link" : "Bitte \"Link\" Taste auf der Hue Bridge drücken.",
"wiz_cc_title" : "Farbkalibrierungs Assistent",
"wiz_cc_intro1" : "Der Assistent wird dich durch die Kalibrierung deiner LEDs leiten. Sofern du Kodi nutzt, können die Bilder und Testvideos direkt an Kodi geschickt werden. Andernfalls musst du das Material selbst herunterladen und anwenden.",
"wiz_cc_kwebs" : "Kodi Webserver (IP:Port)",
@ -296,11 +299,11 @@
"wiz_cc_kodishould" : "Kodi sollte jetzt folgendes Bild anzeigen: $1",
"wiz_cc_lettvshow" : "Lass dabei deinen Fernseher folgendes Bild anzeigen: $1",
"wiz_cc_lettvshowm" : "Überprüfe dies mithilfe folgender Bildern: $1",
"wiz_cc_adjustit" : "Verändere dein \"$1\", bis du zufrieden bist.",
"wiz_cc_adjustit" : "Verändere dein \"$1\", bis du zufrieden bist. Beachte: Je mehr du reduzierst bzw von dem Standardwert abweichst, je mehr veränderst du den maximalen Farbraum, was alle Farben die daraus abgeleitet werden ebenfalls betrifft. Je nach TV/LED Farbspektrum sind die Ergebnisse unterschiedlich.",
"wiz_cc_adjustgamma" : "Gamma: Was du jetzt tun musst ist, jeden Gamma-Kanal so einstellen, dass der \"Grauverlauf\" auf den LEDs nicht grünlich/rötlich/bläulich aussieht. Beispiel: Sollte dein grau etwas rötlich sein bedeutet dies, dass du dein Gamma für Rot erhöhen musst um den Rot-Anteil zu verringern (Je mehr Gamma, desto weniger Farbe).",
"wiz_cc_chooseid" : "Wähle einen Namen für dieses Profil.",
"wiz_cc_btn_switchpic" : "Testbild ändern",
"wiz_cc_minBright" : "Zusätzlich kannst du eine minimale Helligkeit einstellen, um \"irritierende Farben\" bei fast schwarzem Bild zu vermeiden oder du den Wechsel zwischen Farbe und Aus als zu anstrengend empfindest. Diese ist deaktiviert im Zustand \"Aus\" sowie bei Farben und Effekten.",
"wiz_cc_backlight" : "Zusätzlich kannst du eine Hintergrundbeluchtung einstellen, um \"irritierende Farben\" bei fast schwarzem Bild zu vermeiden oder du den Wechsel zwischen Farbe und Aus als zu anstrengend empfindest. Zusätzlich kann bestimmt werden, ob diese farbig oder nur weiß sein soll. Wird automatisch deaktiviert im Zustand \"Aus\" sowie bei \"Farbe\" und \"Effekt\".",
"wiz_cc_testintro" : "Nun ist es an der Zeit für einen Testlauf.",
"wiz_cc_testintrok" : "Klicke auf einen Button, um eines der Testvideos abzuspielen.",
"wiz_cc_testintrowok" : "Unter folgendem Link findest du ein paar Testvideos zum herunterladen und abspielen:",
@ -422,9 +425,10 @@
"edt_conf_color_gammaGreen_expl" : "Gamma von grün.",
"edt_conf_color_gammaBlue_title" : "Gamma blau",
"edt_conf_color_gammaBlue_expl" : "Gamma von blau",
"edt_conf_color_backlightThreshold_title" : "Minimale Helligkeit",
"edt_conf_color_backlightColored_title" : "Farbige Hintergrundbeleuchtung",
"edt_conf_color_brightnessMin_expl" : "Auch als Hintergrundhelligkeit genutzt.",
"edt_conf_color_backlightThreshold_title" : "Hintergrund - beleuchtung",
"edt_conf_color_backlightThreshold_expl" : "Eine Beleuchtung die dauerhaft aktiv ist. (Automatisch deaktiviert bei Effekten, Farben oder im Zustand \"Aus\")",
"edt_conf_color_backlightColored_title" : "Farbige Hintergrund - beleuchtung",
"edt_conf_color_backlightColored_expl" : "Die Hintergrundbeleuchtung kann mit oder ohne Farbanteile genutzt werden.",
"edt_conf_color_brightness_title" : "Maximale Helligkeit",
"edt_conf_color_brightness_expl" : "Zwischen 0.0 und 0.5 ist die Helligkeit linearisiert. Von 0.5 bis 1.0 wird cyan, magenta und gelb bis zu 2x heller und weiß bis zu 3x.",
"edt_conf_smooth_heading_title" : "Glättung",
@ -615,9 +619,11 @@
"edt_eff_colorHour_title" : "Farbe Stunde",
"edt_eff_colorMinute_title" : "Farbe Minute",
"edt_eff_colorSecond_title" : "Farbe Sekunde",
"edt_eff_hourMargin_title" : "Abstand Stunde",
"edt_eff_minuteMargin_title" : "Abstand Minute",
"edt_eff_secondMargin_title" : "Abstand Sekunde",
"edt_eff_hourMargin_title" : "Länge Stunde",
"edt_eff_minuteMargin_title" : "Länge Minute",
"edt_eff_secondMargin_title" : "Länge Sekunde",
"edt_eff_margin_title" : "Abstand",
"edt_eff_colorMarker_title" : "Farbe Markierung",
"edt_append_ns" : "ns",
"edt_append_ms" : "ms",
"edt_append_s" : "s",

View File

@ -161,9 +161,12 @@
"conf_kodi_label_title" : "Kodi Watch",
"conf_kodi_intro" : "The Kodi Watcher enables you to enable and disable the screencapture depending on Kodi state. This is not limited to the same machine, you could observe also a Kodi on any other device at your network.",
"conf_logging_label_intro" : "Area to check log messages, depending on loglevel setting you see more or less information.",
"conf_logging_btn_pbupload" : "Upload log",
"conf_logging_btn_pbupload" : "Create report for support request",
"conf_logging_btn_autoscroll" : "Auto scrolling",
"conf_logging_nomessage" : "No log messages available.",
"conf_logging_uploading" : "Prepare data...",
"conf_logging_yourlink" : "Link to your report",
"conf_logging_uplfailed" : "Upload failed! Please check your internet connection!",
"conf_webconfig_label_intro" : "Webconfiguration settings. Edit wisely.",
"remote_losthint" : "Note: All changes are lost after a restart.",
"remote_color_label" : "Colors/Effects",
@ -296,11 +299,11 @@
"wiz_cc_kodishould" : "Kodi should the following picture: $1",
"wiz_cc_lettvshow" : "Let your TV show the following picture: $1",
"wiz_cc_lettvshowm" : "Check this with the following pictures: $1",
"wiz_cc_adjustit" : "Adjust your \"$1\", until your are fine with it.",
"wiz_cc_adjustit" : "Adjust your \"$1\", until your are fine with it. Take notice: The more you adjust away from the default value the color spectrum will be limited (Also for all colors in between). Depending on TV/LED color spectrum the results will vary.",
"wiz_cc_adjustgamma" : "Gamma: Was du jetzt tun musst ist, jeden Gamma-Kanal so einstellen, dass der \"Grauverlauf\" auf den LEDs nicht grünlich/rötlich/bläulich aussieht. Beispiel: Sollte dein grau etwas rötlich sein bedeutet dies, dass du dein Gamma für Rot erhöhen musst um den Rot-Anteil zu verringern (Je mehr Gamma, desto weniger Farbe).",
"wiz_cc_chooseid" : "Select a name for this profile.",
"wiz_cc_chooseid" : "Define a name for this profile.",
"wiz_cc_btn_switchpic" : "Switch picture",
"wiz_cc_minBright" : "Additional you could define a minimum brightness to sort out \"bad colors\" on nearly dark areas or if you don't like the switch between color and off during watching. This is disabled during the state \"Off\" ,color and effect.",
"wiz_cc_backlight" : "Additional you could define a backlight to sort out \"bad colors\" on nearly dark areas or if you don't like the switch between color and off during watching. Additional you could define if there should be some color in it or just white. This is disabled during the state \"Off\" ,\"Color\" and \"Effect\".",
"wiz_cc_testintro" : "Time for a real test!",
"wiz_cc_testintrok" : "Push on a button below to start a test video.",
"wiz_cc_testintrowok" : "Checkout the following link to download test videos:",
@ -422,9 +425,10 @@
"edt_conf_color_gammaGreen_expl" : "The gamma of green.",
"edt_conf_color_gammaBlue_title" : "gamma blue",
"edt_conf_color_gammaBlue_expl" : "The gamma of blue.",
"edt_conf_color_backlightThreshold_title" : "backlight threshold",
"edt_conf_color_backlightThreshold_title" : "Backlight threshold",
"edt_conf_color_backlightThreshold_expl" : "The minimum amount of brightness (backlight). Disabled during effects, colors and in status \"Off\"",
"edt_conf_color_backlightColored_title" : "Colored backlight",
"edt_conf_color_brightnessMin_expl" : "The minimum amount of brightness (backlight).",
"edt_conf_color_backlightColored_expl" : "Add some color to your backlight.",
"edt_conf_color_brightness_title" : "maximal brightness",
"edt_conf_color_brightness_expl" : "From 0.0 to 0.5 the brightness is linearised, from 0.5 to 1.0 cyan, magenta, yellow is up to 2x brighter and white 3x.",
"edt_conf_smooth_heading_title" : "Smoothing",
@ -618,6 +622,8 @@
"edt_eff_hourMargin_title" : "Margin hour",
"edt_eff_minuteMargin_title" : "Margin minute",
"edt_eff_secondMargin_title" : "Margin second",
"edt_eff_margin_title" : "Margin",
"edt_eff_colorMarker_title" : "Color marker",
"edt_append_ns" : "ns",
"edt_append_ms" : "ms",
"edt_append_s" : "s",

View File

@ -4,6 +4,7 @@ $(document).ready( function() {
var effectName = "";
var effects_editor = null;
var effectPy = "";
var testrun;
if(showOptHelp)
createHintH("intro", $.i18n('effectsconfigurator_label_intro'), "intro_effc");
@ -27,6 +28,7 @@ $(document).ready( function() {
}
function triggerTestEffect() {
testrun = true;
var args = effects_editor.getEditor('root.args');
requestTestEffect(effectName, ":/effects/" + effectPy.slice(1), JSON.stringify(args.getValue()));
};
@ -79,6 +81,9 @@ $(document).ready( function() {
showInfoDialog('success', "", $.i18n('infoDialog_effconf_created_text', effectName));
});
if (testrun)
setTimeout(requestPriorityClear,100);
});
$('#btn_start_test').off().on('click',function() {
@ -87,6 +92,7 @@ $(document).ready( function() {
$('#btn_stop_test').off().on('click',function() {
requestPriorityClear();
testrun = false;
});
$('#btn_cont_test').off().on('click',function() {

View File

@ -1,9 +1,6 @@
var ledsCustomCfgInitialized = false;
var finalLedArray = [];
var IntListIds;
var StrListIds;
var BoolListIds;
function validateText(){
e = isJsonString($("#ledconfig").val());
@ -15,53 +12,6 @@ function validateText(){
return true
}
function loadStoredValues()
{
if (storageComp() && getStorage('ip_cl_ledstop') != null)
{
for(var i = 0; i < IntListIds.length; i++)
{
$('#'+IntListIds[i]).val(parseInt(getStorage(IntListIds[i])));
}
for(var i = 0; i < BoolListIds.length; i++)
{
var vb = getStorage(BoolListIds[i]);
$('#'+BoolListIds[i]).prop('checked', vb == "true" ? true : false);
}
for(var i = 0; i < StrListIds.length; i++)
{
$('#'+StrListIds[i]).val(getStorage(StrListIds[i]));
}
return;
}
return;
}
function saveValues()
{
if(storageComp())
{
for(var i = 0; i < IntListIds.length; i++)
{
setStorage(IntListIds[i], $('#'+IntListIds[i]).val());
}
for(var i = 0; i < BoolListIds.length; i++)
{
setStorage(BoolListIds[i], $('#'+BoolListIds[i]).is(":checked"));
}
for(var i = 0; i < StrListIds.length; i++)
{
setStorage(StrListIds[i], $('#'+StrListIds[i]).val());
}
return;
}
}
function round(number) {
var factor = Math.pow(10, 4);
var tempNumber = number * factor;
@ -115,20 +65,20 @@ function createLedPreview(leds, origin){
function createClassicLeds(){
//get values
var ledstop = parseInt($("#ip_cl_ledstop").val());
var ledsbottom = parseInt($("#ip_cl_ledsbottom").val());
var ledsleft = parseInt($("#ip_cl_ledsleft").val());
var ledsright = parseInt($("#ip_cl_ledsright").val());
var ledsglength = parseInt($("#ip_cl_ledsglength").val());
var ledsgpos = parseInt($("#ip_cl_ledsgpos").val());
var ledstop = parseInt($("#ip_cl_top").val());
var ledsbottom = parseInt($("#ip_cl_bottom").val());
var ledsleft = parseInt($("#ip_cl_left").val());
var ledsright = parseInt($("#ip_cl_right").val());
var ledsglength = parseInt($("#ip_cl_glength").val());
var ledsgpos = parseInt($("#ip_cl_gpos").val());
var position = parseInt($("#ip_cl_position").val());
var reverse = $("#ip_cl_reverse").is(":checked");
//advanced values
var ledsVDepth = parseInt($("#ip_cl_ledsvdepth").val())/100;
var ledsHDepth = parseInt($("#ip_cl_ledshdepth").val())/100;
var edgeVGap = parseInt($("#ip_cl_ledsedgegap").val())/100/2;
//var cornerVGap = parseInt($("#ip_cl_ledscornergap").val())/100/2;
var ledsVDepth = parseInt($("#ip_cl_vdepth").val())/100;
var ledsHDepth = parseInt($("#ip_cl_hdepth").val())/100;
var edgeVGap = parseInt($("#ip_cl_edgegap").val())/100/2;
//var cornerVGap = parseInt($("#ip_cl_cornergap").val())/100/2;
var overlap = $("#ip_cl_overlap").val()/4000;
//helper
@ -373,13 +323,31 @@ $(document).ready(function() {
$('#led_vis_help').html('<div><div class="led_ex" style="background-color:black;margin-right:5px;margin-top:3px"></div><div style="display:inline-block;vertical-align:top">'+$.i18n('conf_leds_layout_preview_l1')+'</div></div><div class="led_ex" style="background-color:grey;margin-top:3px;margin-right:2px"></div><div class="led_ex" style="background-color: rgb(169, 169, 169);margin-right:5px;margin-top:3px;"></div><div style="display:inline-block;vertical-align:top">'+$.i18n('conf_leds_layout_preview_l2')+'</div>');
}
//gather ids
IntListIds = $('.led_val_int').map(function() { return this.id; }).get();
StrListIds = $('.led_val_string').map(function() { return this.id; }).get();
BoolListIds = $('.led_val_bool').map(function() { return this.id; }).get();
var slConfig = serverConfig.ledConfig;
// restore values from storage
loadStoredValues();
//restore ledConfig
for(key in slConfig)
{
if(typeof(slConfig[key]) === "boolean")
$('#ip_cl_'+key).prop('checked', slConfig[key]);
else
$('#ip_cl_'+key).val(slConfig[key]);
}
function saveValues()
{
var ledConfig = {};
for(key in slConfig)
{
if(typeof(slConfig[key]) === "boolean")
ledConfig[key] = $('#ip_cl_'+key).is(':checked');
else if(Number.isInteger(slConfig[key]))
ledConfig[key] = parseInt($('#ip_cl_'+key).val());
else
ledConfig[key] = $('#ip_cl_'+key).val();
}
setTimeout(requestWriteConfig, 100, {ledConfig});
}
// check access level and adjust ui
if(storedAccess == "default")
@ -410,7 +378,6 @@ $(document).ready(function() {
$("#ledconfig").text(JSON.stringify(finalLedArray, null, "\t"));
$('#collapse1').collapse('hide');
$('#collapse4').collapse('show');
saveValues();
}
});
@ -420,7 +387,6 @@ $(document).ready(function() {
$("#ledconfig").text(JSON.stringify(finalLedArray, null, "\t"));
$('#collapse2').collapse('hide');
$('#collapse4').collapse('show');
saveValues();
}
});
@ -518,7 +484,10 @@ $(document).ready(function() {
// validate and save led config from textfield
$("#leds_custom_save").off().on("click", function() {
if (validateText())
{
requestWriteConfig(JSON.parse('{"leds" :'+$("#ledconfig").val()+'}'));
saveValues();
}
});
// toggle led numbers

View File

@ -5,6 +5,8 @@
$(document).ready(function() {
var messages;
$('#conf_cont').append(createOptPanel('fa-reorder', $.i18n("edt_conf_log_heading_title"), 'editor_container', 'btn_submit'));
if(showOptHelp)
{
@ -24,6 +26,80 @@ $(document).ready(function() {
requestWriteConfig(conf_editor.getValue());
});
function uploadLog()
{
var reportUrl = 'https://glot.io/snippets/';
var log = "";
var config = JSON.stringify(serverConfig, null, "\t").replace(/"/g, '\\"');
var prios = serverInfo.info.priorities;
var comps = serverInfo.info.components;
//create log
for(var i = 0; i<messages.length; i++)
{
app_name = messages[i].appName;
logger_name = messages[i].loggerName;
function_ = messages[i].function;
line = messages[i].line;
file_name = messages[i].fileName;
msg = messages[i].message;
level_string = messages[i].levelString;
debug = "";
if(level_string == "DEBUG") {
debug = "<"+file_name+":"+line+":"+function_+"()> ";
}
log += "["+app_name+" "+logger_name+"] <"+level_string+"> "+debug+msg+"\n";
}
//create prios
var info = "######## PRIORITIES ######## \n";
for(var i = 0; i<prios.length; i++)
{
info += prios[i].priority;
if(prios[i].visible)
info += ' VISIBLE!';
else
info += ' ';
info += ' ('+prios[i].component+') Owner: '+prios[i].owner+'\n';
}
info += '\npriorities_autoselect: '+serverInfo.info.priorities_autoselect+'\n\n';
//create comps
info += '######## COMPONENTS ######## \n'
for(var i = 0; i<comps.length; i++)
{
info += comps[i].enabled+' - '+comps[i].name+'\n';
}
$.ajax({
url: 'https://snippets.glot.io/snippets',
// headers: { "Authorization": "Token 9ed92d37-36ca-4430-858f-47b6a3d4d535", "Access-Control-Allow-Origin": "*", "Access-Control-Allow-Methods": "GET,HEAD,OPTIONS,POST,PUT", "Access-Control-Allow-Headers": "Origin, X-Requested-With, Content-Type, Accept, Authorization" },
crossDomain: true,
contentType: 'application/json',
type: 'POST',
timeout: 7000,
data: '{"language":"plaintext","title":"Hyperion '+currentVersion+' Report ('+serverConfig.general.name+' ('+serverInfo.info.ledDevices.active+'))","public":false,"files":[{"name":"Info","content":"'+info+'"},{"name":"Hyperion Log","content":"'+log+'"},{"name":"Hyperion Config","content":"'+config+'"}]}'
})
.done( function( data, textStatus, jqXHR ) {
reportUrl += data.id;
if(textStatus == "success")
{
$('#upl_link').html($.i18n('conf_logging_yourlink')+': <a href="'+reportUrl+'" target="_blank">'+reportUrl+'</a>');
$("html, body").animate({ scrollTop: 9999 }, "fast");
}
else
{
$('#btn_logupload').attr("disabled", false);
$('#upl_link').html('<span style="color:red">'+$.i18n('conf_logging_uplfailed')+'<span>');
}
})
.fail( function( jqXHR, textStatus ) {
//console.log(jqXHR, textStatus)
});
}
if (!loggingHandlerInstalled)
{
loggingHandlerInstalled = true;
@ -31,12 +107,17 @@ $(document).ready(function() {
messages = (event.response.result.messages);
if(messages.length != 0 && !createdCont)
{
$('#log_content').html('<pre><div id="logmessages" style="overflow:scroll;max-height:400px"></div></pre><button class="btn btn-primary" id="btn_pbupload">'+$.i18n('conf_logging_btn_pbupload')+'</button><button class="btn btn-success" id="btn_autoscroll" style="margin-left:10px;">'+$.i18n('conf_logging_btn_autoscroll')+'</button>');
$('#log_content').html('<pre><div id="logmessages" style="overflow:scroll;max-height:400px"></div></pre><button class="btn btn-primary" id="btn_logupload">'+$.i18n('conf_logging_btn_pbupload')+'</button><button class="btn btn-success" id="btn_autoscroll" style="margin-left:10px;">'+$.i18n('conf_logging_btn_autoscroll')+'</button><div id="upl_link" style="margin-top:10px;font-weight:bold;"></div>');
createdCont = true;
$('#btn_autoscroll').off().on('click',function() {
toggleClass('#btn_autoscroll', "btn-success", "btn-danger");
});
$('#btn_logupload').off().on('click',function() {
uploadLog();
$(this).attr("disabled", true);
$('#upl_link').html($.i18n('conf_logging_uploading'))
});
}
for(var idx=0; idx<messages.length; idx++)
{

View File

@ -41,9 +41,18 @@ $(document).ready(function() {
requestAdjustment(e.target.id.substr(e.target.id.indexOf("_") + 1), '['+rgb.r+','+rgb.g+','+rgb.b+']');
});
}
else if(sColor[key].type == "boolean")
{
property = '<div class="checkbox"><input id="cr_'+sColor[key].key+'" type="checkbox" value="'+value+'"/><label></label></div>';
$('.crtbody').append(createTableRow([title, property], false, true));
$('#cr_'+sColor[key].key).off().on('change', function(e){
requestAdjustment(e.target.id.substr(e.target.id.indexOf("_") + 1), e.currentTarget.checked);
});
}
else
{
if(sColor[key].key == "brightness" || sColor[key].key == "brightnessMin")
if(sColor[key].key == "brightness" || sColor[key].key == "backlightThreshold")
property = '<input id="cr_'+sColor[key].key+'" type="number" class="form-control" min="0.0" max="1.0" step="0.05" value="'+value+'"/>';
else
property = '<input id="cr_'+sColor[key].key+'" type="number" class="form-control" min="0.0" max="4.0" step="0.1" value="'+value+'"/>';

View File

@ -175,7 +175,7 @@ $(document).ready( function() {
var picnr = 0;
var availVideos = ["Sweet_Cocoon","Caminandes_2_GranDillama","Caminandes_3_Llamigos"];
if(getStorage("kodiAddress" != null))
if(getStorage("kodiAddress") != null)
kodiAddress = getStorage("kodiAddress");
function switchPicture(pictures)
@ -208,9 +208,9 @@ $(document).ready( function() {
$.ajax({
url: 'http://' + kodiAddress + '/jsonrpc',
dataType: 'jsonp',
crossDomain: true,
jsonpCallback: 'jsonCallback',
type: 'POST',
async: true,
timeout: 2000,
data: 'request=' + encodeURIComponent( command )
})
@ -347,8 +347,8 @@ $(document).ready( function() {
}
if(step == 10)
{
updateWEditor(["backlightThreshold"]);
h = $.i18n('wiz_cc_minBright');
updateWEditor(["backlightThreshold","backlightColored"]);
h = $.i18n('wiz_cc_backlight');
if(withKodi)
{
h += '<br/>'+$.i18n('wiz_cc_kodishould',$.i18n('edt_conf_color_black_title'));
@ -632,5 +632,4 @@ $(document).ready( function() {
}
$('#btn_wizard_philipshue').off().on('click',startWizardPhilipsHue);
});

View File

@ -195,7 +195,7 @@
"blackborderdetector" :
{
"enable" : true,
"threshold" : 0.0,
"threshold" : 0.05,
"unknownFrameCnt" : 600,
"borderFrameCnt" : 50,
"maxInconsistentCnt" : 10,
@ -341,6 +341,23 @@
]
},
/// Recreate and save led layouts made with web config. These values are just helpers for ui, not for Hyperion.
"ledConfig" :
{
"top" : 8,
"bottom" : 8,
"left" : 5,
"right" : 5,
"glength" : 0,
"gpos" : 0,
"position" : 0,
"reverse" : false,
"hdepth" : 8,
"vdepth" : 5,
"overlap" : 0,
"edgegap" : 0
},
/// The configuration for each individual led. This contains the specification of the area
/// averaged of an input image for each led to determine its color. Each item in the list
/// contains the following fields:
@ -351,97 +368,293 @@
/// * vscan: The fractional part of the image along the vertical used for the averaging
/// (minimum and maximum inclusive)
"leds" :
"leds":
[
{
"hscan": {
"maximum": 0.125,
"minimum": 0
},
"index": 0,
"hscan": { "maximum": 0.1667, "minimum": 0 },
"vscan": { "maximum": 0.0800, "minimum": 0 }
"vscan": {
"maximum": 0.08,
"minimum": 0
}
},
{
"hscan": {
"maximum": 0.25,
"minimum": 0.125
},
"index": 1,
"hscan": { "maximum": 0.3332, "minimum": 0.1667 },
"vscan": { "maximum": 0.0800, "minimum": 0 }
"vscan": {
"maximum": 0.08,
"minimum": 0
}
},
{
"hscan": {
"maximum": 0.375,
"minimum": 0.25
},
"index": 2,
"hscan": { "maximum": 0.5, "minimum": 0.3333 },
"vscan": { "maximum": 0.0800, "minimum": 0 }
"vscan": {
"maximum": 0.08,
"minimum": 0
}
},
{
"hscan": {
"maximum": 0.5,
"minimum": 0.375
},
"index": 3,
"hscan": { "maximum": 0.6667, "minimum": 0.5 },
"vscan": { "maximum": 0.0800, "minimum": 0 }
"vscan": {
"maximum": 0.08,
"minimum": 0
}
},
{
"hscan": {
"maximum": 0.625,
"minimum": 0.5
},
"index": 4,
"hscan": { "maximum": 0.8333, "minimum": 0.6667 },
"vscan": { "maximum": 0.0800, "minimum": 0 }
"vscan": {
"maximum": 0.08,
"minimum": 0
}
},
{
"hscan": {
"maximum": 0.75,
"minimum": 0.625
},
"index": 5,
"hscan": { "maximum": 1, "minimum": 0.8333 },
"vscan": { "maximum": 0.0800, "minimum": 0 }
"vscan": {
"maximum": 0.08,
"minimum": 0
}
},
{
"hscan": {
"maximum": 0.875,
"minimum": 0.75
},
"index": 6,
"hscan": { "maximum": 1, "minimum": 0.95 },
"vscan": { "maximum": 0.3333, "minimum": 0 }
"vscan": {
"maximum": 0.08,
"minimum": 0
}
},
{
"hscan": {
"maximum": 1,
"minimum": 0.875
},
"index": 7,
"hscan": { "maximum": 1, "minimum": 0.95 },
"vscan": { "maximum": 0.6667, "minimum": 0.3333 }
"vscan": {
"maximum": 0.08,
"minimum": 0
}
},
{
"hscan": {
"maximum": 1,
"minimum": 0.95
},
"index": 8,
"hscan": { "maximum": 1, "minimum": 0.95 },
"vscan": { "maximum": 1, "minimum": 0.6667 }
"vscan": {
"maximum": 0.2,
"minimum": 0
}
},
{
"hscan": {
"maximum": 1,
"minimum": 0.95
},
"index": 9,
"hscan": { "maximum": 1, "minimum": 0.8333 },
"vscan": { "maximum": 1, "minimum": 0.92 }
"vscan": {
"maximum": 0.4,
"minimum": 0.2
}
},
{
"hscan": {
"maximum": 1,
"minimum": 0.95
},
"index": 10,
"hscan": { "maximum": 0.8333, "minimum": 0.6667 },
"vscan": { "maximum": 1, "minimum": 0.92 }
"vscan": {
"maximum": 0.6,
"minimum": 0.4
}
},
{
"hscan": {
"maximum": 1,
"minimum": 0.95
},
"index": 11,
"hscan": { "maximum": 0.6667, "minimum": 0.5 },
"vscan": { "maximum": 1, "minimum": 0.92 }
"vscan": {
"maximum": 0.8,
"minimum": 0.6
}
},
{
"hscan": {
"maximum": 1,
"minimum": 0.95
},
"index": 12,
"hscan": { "maximum": 0.5, "minimum": 0.3333 },
"vscan": { "maximum": 1, "minimum": 0.92 }
"vscan": {
"maximum": 1,
"minimum": 0.8
}
},
{
"hscan": {
"maximum": 1,
"minimum": 0.875
},
"index": 13,
"hscan": { "maximum": 0.3333, "minimum": 0.1667 },
"vscan": { "maximum": 1, "minimum": 0.92 }
"vscan": {
"maximum": 1,
"minimum": 0.92
}
},
{
"hscan": {
"maximum": 0.875,
"minimum": 0.75
},
"index": 14,
"hscan": { "maximum": 0.1667, "minimum": 0 },
"vscan": { "maximum": 1, "minimum": 0.92 }
"vscan": {
"maximum": 1,
"minimum": 0.92
}
},
{
"hscan": {
"maximum": 0.75,
"minimum": 0.625
},
"index": 15,
"hscan": { "maximum": 0.05, "minimum": 0 },
"vscan": { "maximum": 1, "minimum": 0.6667 }
"vscan": {
"maximum": 1,
"minimum": 0.92
}
},
{
"hscan": {
"maximum": 0.625,
"minimum": 0.5
},
"index": 16,
"hscan": { "maximum": 0.05, "minimum": 0 },
"vscan": { "maximum": 0.6667, "minimum": 0.3333 }
"vscan": {
"maximum": 1,
"minimum": 0.92
}
},
{
"hscan": {
"maximum": 0.5,
"minimum": 0.375
},
"index": 17,
"hscan": { "maximum": 0.05, "minimum": 0 },
"vscan": { "maximum": 0.3333, "minimum": 0 }
"vscan": {
"maximum": 1,
"minimum": 0.92
}
},
{
"hscan": {
"maximum": 0.375,
"minimum": 0.25
},
"index": 18,
"vscan": {
"maximum": 1,
"minimum": 0.92
}
},
{
"hscan": {
"maximum": 0.25,
"minimum": 0.125
},
"index": 19,
"vscan": {
"maximum": 1,
"minimum": 0.92
}
},
{
"hscan": {
"maximum": 0.125,
"minimum": 0
},
"index": 20,
"vscan": {
"maximum": 1,
"minimum": 0.92
}
},
{
"hscan": {
"maximum": 0.05,
"minimum": 0
},
"index": 21,
"vscan": {
"maximum": 1,
"minimum": 0.8
}
},
{
"hscan": {
"maximum": 0.05,
"minimum": 0
},
"index": 22,
"vscan": {
"maximum": 0.8,
"minimum": 0.6
}
},
{
"hscan": {
"maximum": 0.05,
"minimum": 0
},
"index": 23,
"vscan": {
"maximum": 0.6,
"minimum": 0.4
}
},
{
"hscan": {
"maximum": 0.05,
"minimum": 0
},
"index": 24,
"vscan": {
"maximum": 0.4,
"minimum": 0.2
}
},
{
"hscan": {
"maximum": 0.05,
"minimum": 0
},
"index": 25,
"vscan": {
"maximum": 0.2,
"minimum": 0
}
}
]
}

View File

@ -85,18 +85,26 @@
"framegrabber" :
{
"enable" : true,
"type" : "auto",
"width" : 80,
"height" : 45,
"frequency_Hz" : 10,
"priority" : 250
"enable" : true,
"type" : "auto",
"width" : 80,
"height" : 45,
"frequency_Hz" : 10,
"priority" : 250,
"useXGetImage" : false,
"horizontalPixelDecimation" : 8,
"verticalPixelDecimation" : 8,
"cropLeft" : 0,
"cropRight" : 0,
"cropTop" : 0,
"cropBottom" : 0,
"device" : "/dev/fb0"
},
"blackborderdetector" :
{
"enable" : true,
"threshold" : 0.5,
"threshold" : 0.05,
"unknownFrameCnt" : 600,
"borderFrameCnt" : 50,
"maxInconsistentCnt" : 10,
@ -181,97 +189,309 @@
"paths" : ["../custom-effects"]
},
"leds":
"ledConfig" :
{
"top" : 8,
"bottom" : 8,
"left" : 5,
"right" : 5,
"glength" : 0,
"gpos" : 0,
"position" : 0,
"reverse" : false,
"hdepth" : 8,
"vdepth" : 5,
"overlap" : 0,
"edgegap" : 0
},
"leds":
[
{
"hscan": {
"maximum": 0.125,
"minimum": 0
},
"index": 0,
"hscan": { "maximum": 0.1667, "minimum": 0 },
"vscan": { "maximum": 0.0800, "minimum": 0 }
"vscan": {
"maximum": 0.08,
"minimum": 0
}
},
{
"hscan": {
"maximum": 0.25,
"minimum": 0.125
},
"index": 1,
"hscan": { "maximum": 0.3332, "minimum": 0.1667 },
"vscan": { "maximum": 0.0800, "minimum": 0 }
"vscan": {
"maximum": 0.08,
"minimum": 0
}
},
{
"hscan": {
"maximum": 0.375,
"minimum": 0.25
},
"index": 2,
"hscan": { "maximum": 0.5, "minimum": 0.3333 },
"vscan": { "maximum": 0.0800, "minimum": 0 }
"vscan": {
"maximum": 0.08,
"minimum": 0
}
},
{
"hscan": {
"maximum": 0.5,
"minimum": 0.375
},
"index": 3,
"hscan": { "maximum": 0.6667, "minimum": 0.5 },
"vscan": { "maximum": 0.0800, "minimum": 0 }
"vscan": {
"maximum": 0.08,
"minimum": 0
}
},
{
"hscan": {
"maximum": 0.625,
"minimum": 0.5
},
"index": 4,
"hscan": { "maximum": 0.8333, "minimum": 0.6667 },
"vscan": { "maximum": 0.0800, "minimum": 0 }
"vscan": {
"maximum": 0.08,
"minimum": 0
}
},
{
"hscan": {
"maximum": 0.75,
"minimum": 0.625
},
"index": 5,
"hscan": { "maximum": 1, "minimum": 0.8333 },
"vscan": { "maximum": 0.0800, "minimum": 0 }
"vscan": {
"maximum": 0.08,
"minimum": 0
}
},
{
"hscan": {
"maximum": 0.875,
"minimum": 0.75
},
"index": 6,
"hscan": { "maximum": 1, "minimum": 0.95 },
"vscan": { "maximum": 0.3333, "minimum": 0 }
"vscan": {
"maximum": 0.08,
"minimum": 0
}
},
{
"hscan": {
"maximum": 1,
"minimum": 0.875
},
"index": 7,
"hscan": { "maximum": 1, "minimum": 0.95 },
"vscan": { "maximum": 0.6667, "minimum": 0.3333 }
"vscan": {
"maximum": 0.08,
"minimum": 0
}
},
{
"hscan": {
"maximum": 1,
"minimum": 0.95
},
"index": 8,
"hscan": { "maximum": 1, "minimum": 0.95 },
"vscan": { "maximum": 1, "minimum": 0.6667 }
"vscan": {
"maximum": 0.2,
"minimum": 0
}
},
{
"hscan": {
"maximum": 1,
"minimum": 0.95
},
"index": 9,
"hscan": { "maximum": 1, "minimum": 0.8333 },
"vscan": { "maximum": 1, "minimum": 0.92 }
"vscan": {
"maximum": 0.4,
"minimum": 0.2
}
},
{
"hscan": {
"maximum": 1,
"minimum": 0.95
},
"index": 10,
"hscan": { "maximum": 0.8333, "minimum": 0.6667 },
"vscan": { "maximum": 1, "minimum": 0.92 }
"vscan": {
"maximum": 0.6,
"minimum": 0.4
}
},
{
"hscan": {
"maximum": 1,
"minimum": 0.95
},
"index": 11,
"hscan": { "maximum": 0.6667, "minimum": 0.5 },
"vscan": { "maximum": 1, "minimum": 0.92 }
"vscan": {
"maximum": 0.8,
"minimum": 0.6
}
},
{
"hscan": {
"maximum": 1,
"minimum": 0.95
},
"index": 12,
"hscan": { "maximum": 0.5, "minimum": 0.3333 },
"vscan": { "maximum": 1, "minimum": 0.92 }
"vscan": {
"maximum": 1,
"minimum": 0.8
}
},
{
"hscan": {
"maximum": 1,
"minimum": 0.875
},
"index": 13,
"hscan": { "maximum": 0.3333, "minimum": 0.1667 },
"vscan": { "maximum": 1, "minimum": 0.92 }
"vscan": {
"maximum": 1,
"minimum": 0.92
}
},
{
"hscan": {
"maximum": 0.875,
"minimum": 0.75
},
"index": 14,
"hscan": { "maximum": 0.1667, "minimum": 0 },
"vscan": { "maximum": 1, "minimum": 0.92 }
"vscan": {
"maximum": 1,
"minimum": 0.92
}
},
{
"hscan": {
"maximum": 0.75,
"minimum": 0.625
},
"index": 15,
"hscan": { "maximum": 0.05, "minimum": 0 },
"vscan": { "maximum": 1, "minimum": 0.6667 }
"vscan": {
"maximum": 1,
"minimum": 0.92
}
},
{
"hscan": {
"maximum": 0.625,
"minimum": 0.5
},
"index": 16,
"hscan": { "maximum": 0.05, "minimum": 0 },
"vscan": { "maximum": 0.6667, "minimum": 0.3333 }
"vscan": {
"maximum": 1,
"minimum": 0.92
}
},
{
"hscan": {
"maximum": 0.5,
"minimum": 0.375
},
"index": 17,
"hscan": { "maximum": 0.05, "minimum": 0 },
"vscan": { "maximum": 0.3333, "minimum": 0 }
"vscan": {
"maximum": 1,
"minimum": 0.92
}
},
{
"hscan": {
"maximum": 0.375,
"minimum": 0.25
},
"index": 18,
"vscan": {
"maximum": 1,
"minimum": 0.92
}
},
{
"hscan": {
"maximum": 0.25,
"minimum": 0.125
},
"index": 19,
"vscan": {
"maximum": 1,
"minimum": 0.92
}
},
{
"hscan": {
"maximum": 0.125,
"minimum": 0
},
"index": 20,
"vscan": {
"maximum": 1,
"minimum": 0.92
}
},
{
"hscan": {
"maximum": 0.05,
"minimum": 0
},
"index": 21,
"vscan": {
"maximum": 1,
"minimum": 0.8
}
},
{
"hscan": {
"maximum": 0.05,
"minimum": 0
},
"index": 22,
"vscan": {
"maximum": 0.8,
"minimum": 0.6
}
},
{
"hscan": {
"maximum": 0.05,
"minimum": 0
},
"index": 23,
"vscan": {
"maximum": 0.6,
"minimum": 0.4
}
},
{
"hscan": {
"maximum": 0.05,
"minimum": 0
},
"index": 24,
"vscan": {
"maximum": 0.4,
"minimum": 0.2
}
},
{
"hscan": {
"maximum": 0.05,
"minimum": 0
},
"index": 25,
"vscan": {
"maximum": 0.2,
"minimum": 0
}
}
]
}

View File

@ -1,14 +0,0 @@
{
"name" : "Clock",
"script" : "clock.py",
"args" :
{
"offset" : 0,
"hour-margin" : 2,
"minute-margin" : 1,
"second-margin" : 0,
"hour-color" : [255, 0, 0],
"minute-color" : [0, 255, 0],
"second-color" : [0, 0, 255]
}
}

View File

@ -7,11 +7,10 @@ def myRange(index, margin):
""" Define some variables """
sleepTime = 1
markers = [0, 13, 25, 38]
ledCount = hyperion.ledCount
offset = hyperion.args.get('offset', 0)
direction = bool(hyperion.args.get('direction', False))
hourMargin = hyperion.args.get('hour-margin', 2)
minuteMargin = hyperion.args.get('minute-margin', 1)
@ -21,6 +20,11 @@ hourColor = hyperion.args.get('hour-color', (255,0,0))
minuteColor = hyperion.args.get('minute-color', (0,255,0))
secondColor = hyperion.args.get('second-color', (0,0,255))
markerColor = hyperion.args.get('marker-color', (255,255,255))
marker = ledCount/4
markers = (0+offset, int(marker + offset) % ledCount, int(2*marker + offset) % ledCount, int(3*marker + offset) % ledCount)
""" The effect loop """
while not hyperion.abort():
@ -32,17 +36,18 @@ while not hyperion.abort():
m = now.minute
s = now.second
led_hour = ((h*4 + h//3%2 + h//6) + offset) % ledCount
led_minute = ((m*ledCount)/60 + offset) % ledCount
hmin = float(h+(1/60*m))
if hmin > 12:
hmin -= 12
hour = float(hmin/12 * ledCount)
led_hour = int(hour + offset) % ledCount
minute = m/60. * ledCount
minute_low = int(minute)
g1 = round((1-(minute-minute_low))*255)
led_minute = int(minute + offset) % ledCount
second = s/60. * ledCount
second_low = int(second)
b1 = round((1-(second-second_low))*255)
led_second = int(second + offset) % ledCount
hourRange = myRange(led_hour, hourMargin)
@ -53,7 +58,7 @@ while not hyperion.abort():
blend = [0, 0, 0]
if i in markers:
blend = [255, 255, 255]
blend = markerColor
if i in hourRange:
blend = hourColor

View File

@ -3,6 +3,7 @@
"script" : "pacman.py",
"args" :
{
"sleep-time" : 0.3
"margin-pos" : 2.0,
"rotationTime" : 8
}
}

View File

@ -4,10 +4,11 @@ import colorsys
from random import randint
#get args
sleepTime = float(hyperion.args.get('sleep-time', 0.3))
rotationTime = int(hyperion.args.get('rotationTime', 8))
marginPos = float(hyperion.args.get('margin-pos', 1.5))
# define pacman
pacman = bytearray((255, 255, 1))
pacman = bytearray((255, 255, 0))
# define ghosts
redGuy = bytearray((255, 0, 0))
@ -18,18 +19,29 @@ slowGuy = bytearray((255, 184, 81))
light = bytearray((255, 184, 174))
background = bytearray((0, 0, 0))
#helper
posPac = 1
diffPac = 6*marginPos
diffGuys = 3*marginPos
sleepTime = rotationTime/ledCount
posPinkGuy = posPac + diffPac
posBlueGuy = posPinkGuy + diffGuys
posSlowGuy = posBlueGuy + diffGuys
posRedGuy = posSlowGuy + diffGuys
# initialize the led data
ledDataEscape = bytearray()
for i in range(hyperion.ledCount):
if i == 1:
ledDataEscape += pacman
elif i == 7:
elif i == posPinkGuy:
ledDataEscape += pinkGuy
elif i == 10:
elif i == posBlueGuy:
ledDataEscape += blueGuy
elif i == 13:
elif i == posSlowGuy:
ledDataEscape += slowGuy
elif i == 16:
elif i == posRedGuy:
ledDataEscape += redGuy
else:
ledDataEscape += background
@ -38,7 +50,7 @@ ledDataChase = bytearray()
for i in range(hyperion.ledCount):
if i == 1:
ledDataChase += pacman
elif i in [7, 10, 13, 16]:
elif i in [posPinkGuy, posBlueGuy, posSlowGuy, posRedGuy]:
ledDataChase += bytearray((33, 33, 255))
else:
ledDataChase += background

View File

@ -5,7 +5,7 @@
"required": true,
"properties": {
"offset": {
"type": "number",
"type": "integer",
"title": "edt_eff_offset_title",
"default": 0,
"append": "edt_append_leds",
@ -54,25 +54,36 @@
"propertyOrder": 4
},
"hour-margin": {
"type": "number",
"type": "integer",
"title": "edt_eff_hourMargin_title",
"default": 2,
"append": "edt_append_leds",
"propertyOrder": 5
"propertyOrder" : 5
},
"minute-margin": {
"type": "number",
"type": "integer",
"title": "edt_eff_minuteMargin_title",
"default": 1,
"append": "edt_append_leds",
"propertyOrder": 6
"propertyOrder" : 6
},
"second-margin": {
"type": "number",
"type": "integer",
"title": "edt_eff_secondMargin_title",
"default": 0,
"append": "edt_append_leds",
"propertyOrder": 7
"propertyOrder" : 7
},
"marker-color": {
"type": "array",
"title":"edt_eff_colorMarker_title",
"format":"colorpicker",
"default": [255,255,255],
"items" : {
"type": "integer",
"minimum": 0,
"maximum": 255
},
"minItems": 3,
"maxItems": 3,
"propertyOrder" : 8
}
},
"additionalProperties": false

View File

@ -4,14 +4,22 @@
"title":"edt_eff_pacman_header_title",
"required":true,
"properties":{
"sleep-time": {
"type": "number",
"title":"edt_eff_sleeptime_title",
"default": 0.3,
"rotationTime": {
"type": "integer",
"title":"edt_eff_rotationtime_title",
"default": 5,
"step" : 0.1,
"minimum": 0.01,
"minimum": 1,
"append" : "edt_append_s",
"propertyOrder" : 1
},
"margin-pos": {
"type": "number",
"title":"edt_eff_margin_title",
"default": 1.0,
"step" : 0.1,
"minimum": 1.0,
"propertyOrder" : 2
}
},
"additionalProperties": false

View File

@ -643,7 +643,8 @@
"type" : "string",
"title" : "edt_conf_fg_type_title",
"enum" : ["auto","dispmanx","amlogic","x11","framebuffer"],
"default" : "auto"
"default" : "auto",
"propertyOrder" : 2
},
"width" :
{
@ -651,7 +652,8 @@
"title" : "edt_conf_v4l2_width_title",
"minimum" : 10,
"default" : 80,
"append" : "edt_append_pixel"
"append" : "edt_append_pixel",
"propertyOrder" : 3
},
"height" :
{
@ -659,7 +661,8 @@
"title" : "edt_conf_v4l2_height_title",
"minimum" : 10,
"default" : 45,
"append" : "edt_append_pixel"
"append" : "edt_append_pixel",
"propertyOrder" : 3
},
"frequency_Hz" :
{
@ -667,7 +670,8 @@
"title" : "edt_conf_fg_frequency_Hz_title",
"minimum" : 1,
"default" : 10,
"append" : "edt_append_hz"
"append" : "edt_append_hz",
"propertyOrder" : 4
},
"priority" :
{
@ -675,7 +679,8 @@
"title" : "edt_conf_general_priority_title",
"minimum" : 100,
"maximum" : 253,
"default" : 250
"default" : 250,
"propertyOrder" : 5
},
"cropLeft" :
{
@ -683,7 +688,8 @@
"title" : "edt_conf_v4l2_cropLeft_title",
"minimum" : 0,
"default" : 0,
"append" : "edt_append_pixel"
"append" : "edt_append_pixel",
"propertyOrder" : 6
},
"cropRight" :
{
@ -691,7 +697,8 @@
"title" : "edt_conf_v4l2_cropRight_title",
"minimum" : 0,
"default" : 0,
"append" : "edt_append_pixel"
"append" : "edt_append_pixel",
"propertyOrder" : 7
},
"cropTop" :
{
@ -699,7 +706,8 @@
"title" : "edt_conf_v4l2_cropTop_title",
"minimum" : 0,
"default" : 0,
"append" : "edt_append_pixel"
"append" : "edt_append_pixel",
"propertyOrder" : 8
},
"cropBottom" :
{
@ -707,39 +715,45 @@
"title" : "edt_conf_v4l2_cropBottom_title",
"minimum" : 0,
"default" : 0,
"append" : "edt_append_pixel"
"append" : "edt_append_pixel",
"propertyOrder" : 9
},
"useXGetImage" :
{
"type" : "boolean",
"title" : "edt_conf_fg_useXGetImage_title",
"default" : false
"default" : false,
"propertyOrder" : 10
},
"horizontalPixelDecimation" :
{
"type" : "integer",
"title" : "edt_conf_fg_horizontalPixelDecimation_title",
"minimum" : 0,
"default" : 8
"default" : 8,
"propertyOrder" : 11
},
"verticalPixelDecimation" :
{
"type" : "integer",
"title" : "edt_conf_fg_verticalPixelDecimation_title",
"minimum" : 0,
"default" : 8
"default" : 8,
"propertyOrder" : 12
},
"device" :
{
"type" : "string",
"title" : "edt_conf_fg_device_title",
"default" : "/dev/fb0"
"default" : "/dev/fb0",
"propertyOrder" : 13
},
"display" :
{
"type" : "integer",
"title" : "edt_conf_fg_display_title",
"minimum" : 0
"minimum" : 0,
"propertyOrder" : 14
}
},
"additionalProperties" : false
@ -1235,6 +1249,87 @@
},
"additionalProperties" : false
},
"ledConfig":
{
"type" : "object",
"properties" :
{
"top" :
{
"type" : "integer",
"minimum" : 0,
"default" : 8
},
"bottom" :
{
"type" : "integer",
"minimum" : 0,
"default" : 8
},
"left" :
{
"type" : "integer",
"minimum" : 0,
"default" : 5
},
"right" :
{
"type" : "integer",
"minimum" : 0,
"default" : 5
},
"glength" :
{
"type" : "integer",
"minimum" : 0,
"default" : 0
},
"gpos" :
{
"type" : "integer",
"minimum" : 0,
"default" : 0
},
"position" :
{
"type" : "integer",
"default" : 0
},
"reverse" :
{
"type" : "boolean",
"default" : false
},
"hdepth" :
{
"type" : "integer",
"minimum" : 1,
"maximum" : 100,
"default" : 8
},
"vdepth" :
{
"type" : "integer",
"minimum" : 1,
"maximum" : 100,
"default" : 5
},
"overlap" :
{
"type" : "integer",
"minimum" : 0,
"default" : 0
},
"edgegap" :
{
"type" : "integer",
"minimum" : 0,
"maximum" : 50,
"default" : 0
}
},
"additionalProperties" : false
},
"leds":
{
"type":"array",