Upward version compatability (#1639)

* Fix macOS build

* Update minimum cmake version

* Correct compile errorswith Qt6.7

* Update minimum cmake version (2)

* Use C++17

* Correct compile errors with Qt6.7

* Replace unsupported Lambda UniqueConnection

* Support UTF-8 Output on console

* Update general page

* Fix Matrix Effect

* Install PR relative to current path

* Additional update

* Correct compile errors with Qt6.7 after master merge

* Add language - Hebrew

* Consolidate Changelog
This commit is contained in:
LordGrey 2023-10-15 21:27:21 +02:00 committed by GitHub
parent 88c6bef9be
commit a5625cf984
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 263 additions and 49 deletions

View File

@ -10,19 +10,72 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added
- Nanoleaf: Wizard to generate user authorization token allowing users to configure the device via a single window
- Nanoleaf: Generation of a default layout per device's configuration, including orientation
- New language: Hebrew
##### LED-Devices
**Philips Hue**
- APIv2 support, incl. full https security and certificate validation
- Multi-Segment device support, e.g. Gradient light
- Use Entertainment area device location for Hyperion layout in addition to manual locations
- Option to layout by focussing on full- or only center of entertainment area
- Wizard supports multiple Hue-Bridge discovery
- Support of DIYHue specifics. DIYHue bridge's name must start with "DIY"
- Backward compatibility for bridges not supporting APIv2 and/or Entertainment API
Note: The wizard will configure an APIv2 capable bridge always with Entertainment to ensure the best experience.
**Nanoleaf**
- Wizard to generate user authorization token allowing users to configure the device via a single window
- Generation of a default layout per device's configuration, including orientation
- Lines support
### Changed
- Updated misleading error messages in case Hyperion is not able to support the suspend/lock feature (#1622)
- ws281x - Update logic to identify is user is admin and disable device configuration if not (#1621)
- Hide Hyperion from the Dock on macOS, as all features can be accessed from the menubar - Thanks @Rastafabisch
### Fixed
- Fixed missing Include limits in QJsonSchemaChecker
- Fixed dependencies for deb packages in Debian Bookworm
- Nanoleaf: "Panel numbering sequence" was not configurable any longer
- Nanoleaf: Number of panels increased during retries (#1643)
- Correctly display local language characters in log, e.g. Umlauts
- Fixed that Audio Capture is enabled after reboot automatically (#1581)
- Fixed that Audio Capture is not shown when there is no screen nor video grabber
- Audio Capture settings are no longer ignored (#1630)
- Fixed that the Matrix effect finds its image - Thanks @lsellens
- MDNSBrower - Fixed, if timeout while resolving host occurs
- Non image updates ignored blacklisted LEDs (#1634)
##### LED-Devices
**WLED**
- Fixed UI handling, if segment streaming is not supported
**Nanoleaf**
- "Panel numbering sequence" was not configurable any longer
- Number of panels increased during retries (#1643)
### Removed
- Nanoleaf: Removed "Start Position" in favour of the general Blacklist feature provided
##### LED-Devices
**Philips Hue**
- "Switch Off On Black" for APIv2, as the original bridge will switch off LEDs itself.
- "Candy Gamma" for APIv2, as the bridge maps the RGB values best per device.
**Nanoleaf**
- Removed "Start Position" in favour of the general Blacklist feature provided
### Technical
- Changed default build from Stretch to Buster
- Support Qt 6.7, Update to Protobuf 23.4.0, Update mbedTLS to v3.4.0, Update flatbuffers to v23.5.26
- Use C++17 standard as default
- Fixed missing include limits in QJsonSchemaChecker - Thanks @Portisch
- Fixed dependencies for deb packages in Debian Bookworm (#1579) - Thanks @hg42, @Psirus
- Fixed git version identification when run in docker and local code
- Address cmake deprecation warnings, cmake 3.5 is required at minimum now
- Address some build warnings
- Removed UniqueConnections from Lambdas, as not supported
## [2.0.15](https://github.com/hyperion-project/hyperion.ng/releases/tag/2.0.15) - 2023-02

View File

@ -28,17 +28,20 @@
</div>
</div>
</div>
<div class="col-lg-6" id="conf_imp">
<div class="panel panel-default">
<div class="panel-heading"><i class="fa fa-wrench fa-fw"></i><span data-i18n="conf_general_impexp_title"></span></div>
<div class="panel-body">
<p data-i18n="conf_general_impexp_l1" style="font-weight:bold"></p>
<p data-i18n="conf_general_impexp_l2" style="font-weight:bold"></p>
<input type="file" id="select_import_conf" accept=".json">
</div>
<div class="panel-footer" style="text-align:right">
<button type="file" class="btn btn-primary" id="btn_import_conf" data-i18n="conf_general_impexp_impbtn" disabled>Import</button>
<button class="btn btn-primary" id="btn_export_conf" data-i18n="conf_general_impexp_expbtn">Export</button>
<!-- Instance(s) -->
<div class="row instances">
<div class="col-lg-6" id="conf_imp">
<div class="panel panel-default">
<div class="panel-heading"><i class="fa fa-wrench fa-fw"></i><span data-i18n="conf_general_impexp_title"></span></div>
<div class="panel-body">
<p data-i18n="conf_general_impexp_l1" style="font-weight:bold"></p>
<p data-i18n="conf_general_impexp_l2" style="font-weight:bold"></p>
<input type="file" id="select_import_conf" accept=".json">
</div>
<div class="panel-footer" style="text-align:right">
<button type="file" class="btn btn-primary" id="btn_import_conf" data-i18n="conf_general_impexp_impbtn" disabled>Import</button>
<button class="btn btn-primary" id="btn_export_conf" data-i18n="conf_general_impexp_expbtn">Export</button>
</div>
</div>
</div>
</div>
@ -48,3 +51,4 @@
</div>
<script src="/js/content_general.js"></script>

View File

@ -0,0 +1,155 @@
{
"InfoDialog_access_text": "בהתאם לרמת ההגדרות תוכל להתאים אפשרויות נוספות או לקבל גישה לתכונות נוספות. רמת \"ברירת המחדל\" המומלצת היא.",
"InfoDialog_iswitch_text": "אם אתה מפעיל את Hyperion יותר מפעם אחת ברשת המקומית שלך, תוכל לעבור בין תצורות האינטרנט. בחר את המופע של Hyperion למטה והחלף!",
"InfoDialog_nostorage_text": "הדפדפן שלך אינו תומך ב-localStorage. לא ניתן לשמור הגדרת שפה מסוימת (חזרה ל'זיהוי אוטומטי') ורמת גישה (חזרה ל'ברירת מחדל'). קוסמים מסוימים עשויים להיות מוסתרים. אתה עדיין יכול להשתמש בממשק האינטרנט ללא בעיות נוספות",
"InfoDialog_nowrite_text": "Hyperion לא יכול לכתוב לקובץ התצורה הנטען הנוכחי שלך. אנא תקן את הרשאות הקובץ כדי להמשיך.",
"conf_colors_blackborder_intro": "דלג על פסים שחורים באשר הם. כל מצב משתמש באלגוריתם זיהוי אחר המכוון למצבים מיוחדים. תעלה את הסף אם זה לא עובד לך.",
"conf_colors_color_intro": "צור פרופיל כיול אחד או יותר, התאם כל צבע, בהירות, ליניאריזציה ועוד.",
"conf_colors_smoothing_intro": "החלקה משטחת שינויי צבע/בהירות כדי להפחית הסחת דעת מעצבנת.",
"conf_effect_bgeff_intro": "הגדר אפקט/צבע רקע, המוצג בזמן \"בטלה\" של Hyperion. מתחיל תמיד בערוץ עדיפות 255.",
"conf_effect_fgeff_intro": "הגדר אפקט אתחול או צבע, שיוצג במהלך האתחול של Hyperion למשך הזמן שהוגדר.",
"conf_effect_path_intro": "טען אפקטים מהנתיבים המוגדרים. בנוסף, אתה יכול להשבית אפקטים בודדים לפי שם כדי להסתיר אותם מכל רשימות האפקטים.",
"conf_general_impexp_expbtn": "ייצא",
"conf_general_impexp_impbtn": "ייבא",
"conf_general_impexp_l1": "ייבא הגדרה על ידי בחירת קובץ הגדרות למטה ולחץ על \"ייבוא\".",
"conf_general_impexp_l2": "ייצא הגדרה על ידי בחירת קובץ הגדרות למטה ולחץ על \"ייצוא\".",
"conf_general_impexp_title": "תצורת ייבוא/ייצוא",
"conf_general_intro": "הגדרות בסיסיות סביב Hyperion ו-WebUI שאינן מתאימות לקטגוריה אחרת.",
"conf_general_label_title": "הגדרות כלליות",
"conf_grabber_fg_intro": "לכידת מסך היא לכידת המערכת המקומית שלך כמקור קלט, Hyperion מותקן על.",
"conf_grabber_v4l_intro": "לכידת USB היא התקן (לכידה) המחובר באמצעות USB המשמש להזנת תמונות מקור לעיבוד.",
"conf_helptable_expl": "הֶסבֵּר",
"conf_helptable_option": "אפשרות",
"conf_leds_contr_label_contrtype": "סוג בקר",
"conf_leds_device_intro": "Hyperion תומך בהרבה בקרים להעברת נתונים למכשיר היעד שלך. בחר בקר LED מתוך הרשימה הממוינת והגדר אותו. בחרנו את הגדרות ברירת המחדל הטובות ביותר עבור כל מכשיר.",
"conf_leds_layout_btn_checklist": "הצג רשימת בדיקה",
"conf_leds_layout_checkp1": "ה-LED השחור הוא ה-LED הראשון שלך, LED הראשון הוא הנקודה שבה אתה מזין את אות הנתונים שלך.",
"conf_leds_layout_checkp2": "הפריסה היא תמיד המראה הקדמי של הטלוויזיה שלך, לעולם לא התצוגה האחורית.",
"conf_leds_layout_checkp3": "ודא שהכיוון נכון. הנוריות האפורות מציינות את מספר LED 2 ו-3 כדי להמחיש את כיוון הנתונים.",
"conf_leds_layout_checkp4": "בחר פער: בכדי ליצור פער, התעלם ממנו תחילה כאשר אתה מגדיר עליון/תחתון/שמאל/ימין והגדר לאחר מכן את אורך הפער כדי להסיר כמות לדים. שנה את מיקום הפער עד שיתאים.",
"conf_leds_layout_frame": "פריסה קלאסית (מסגרת LED)",
"conf_leds_layout_generatedconf": "תצורת LED שנוצרה/נוכחית",
"conf_leds_layout_intro": "אתה גם צריך פריסת LED, המשקפת את עמדות LED שלך. הפריסה הקלאסית היא מסגרת הטלוויזיה המשמשת בדרך כלל, אך אנו תומכים גם ביצירת מטריצות LED (קירות LED). התצוגה על פריסה זו היא תמיד מחזית הטלוויזיה שלך.",
"conf_leds_layout_matrix": "פריסת מטריצה (קיר LED)",
"conf_leds_layout_textf1": "שדה טקסט זה מציג כברירת מחדל את הפריסה הנטענת הנוכחית שלך וייחלף אם תיצור פריסה חדשה עם האפשרויות שלמעלה. לחלופין, תוכל לבצע עריכות נוספות.",
"conf_leds_nav_label_ledcontroller": "בקר LED",
"conf_leds_nav_label_ledlayout": "פריסת LED",
"conf_leds_optgroup_network": "רשת",
"conf_logging_label_intro": "אזור לבדיקת הודעות יומן, תראה יותר או פחות מידע בהתאם לרמת הרישום שנקבעה.",
"conf_network_forw_intro": "העבר את כל הקלט להתקנה שנייה של Hyperion שניתן להניע עם בקר LED אחר",
"conf_network_proto_intro": "ה-PROTO-Port של כל המופעים של Hyperion, המשמש עבור זרמי תמונות (HyperionScreenCap, Kodi Addon, Android Hyperion Grabber, ...)",
"dashboard_alert_message_confedit": "תצורת ה-Hyperion שלך שונתה. כדי להחיל אותו, הפעל מחדש את Hyperion.",
"dashboard_alert_message_confedit_t": "התצורה השתנתה",
"dashboard_alert_message_confsave_success": "תצורת ה-Hyperion שלך נשמרה בהצלחה. השינויים שלך פעילים כעת.",
"dashboard_alert_message_confsave_success_t": "התצורה נשמרה",
"dashboard_componentbox_label_comp": "רְכִיב",
"dashboard_componentbox_label_status": "מצב",
"dashboard_componentbox_label_title": "מצב הרכיבים",
"dashboard_infobox_label_currenthyp": "גרסת ה-Hyperion שלך:",
"dashboard_infobox_label_instance": "למשל:",
"dashboard_infobox_label_latesthyp": "הגרסה האחרונה של Hyperion:",
"dashboard_infobox_label_platform": "פלטפורמה:",
"dashboard_infobox_label_ports": "יציאות",
"dashboard_infobox_label_smartacc": "גישה חכמה",
"dashboard_infobox_label_statush": "מצב ה-Hyperion:",
"dashboard_infobox_label_title": "מידע",
"dashboard_infobox_message_updatesuccess": "הינך מריץ את הגרסה האחרונה של Hyperion.",
"dashboard_infobox_message_updatewarning": "גרסה חדשה יותר של Hyperion זמינה! ($1)",
"dashboard_label_intro": "לוח המחוונים נותן לך סקירה מהירה על מצב ה- Hyperion",
"dashboard_newsbox_label_title": "בלוג ה-Hyperion",
"dashboard_newsbox_noconn": "לא ניתן להתחבר לשרת Hyperion כדי לאחזר את הפוסטים האחרונים, האם חיבור האינטרנט שלך תקין?",
"dashboard_newsbox_readmore": "קרא עוד",
"dashboard_newsbox_visitblog": "בקר ב-Hyperion בלוג ",
"edt_conf_color_brightnessComp_expl": "מפצה על הבדלי בהירות בין אדום ירוק כחול, ציאן מגנטה צהוב ולבן. 100 פירושו פיצוי מלא, 0 אין פיצוי",
"edt_conf_color_channelAdjustment_header_expl": "צור פרופילי צבע שניתן להקצות לרכיב מסוים. התאם צבע, גמא, בהירות, פיצוי ועוד.",
"edt_conf_v4l2_fpsSoftwareDecimation_expl": "כדי לחסוך במשאבים כל מסגרת n' תעובד בלבד. למשל. אם ה-grabber מוגדר ל-30fps עם אפשרות זו מוגדרת ל-5, התוצאה הסופית תהיה בסביבות 6fps",
"edt_conf_v4l2_signalDetection_expl": "אם מופעל, לכידת USB תושבת זמנית כאשר לא נמצא אות. זה יקרה כאשר התמונה תרד מתחת לערך הסף למשך תקופה של 4 שניות.",
"effectsconfigurator_label_intro": "צור מתוך האפקטים הבסיסיים אפקטים חדשים המותאמים לטעמך. בהתאם לאפקט יש אפשרויות כמו צבע, מהירות, כיוון ועוד.",
"general_access_advanced": "מתקדם",
"general_access_default": "ברירת מחדל",
"general_access_expert": "מומחה",
"general_btn_back": "חזור",
"general_btn_cancel": "בטל",
"general_btn_continue": "המשך",
"general_btn_iswitch": "החלף",
"general_btn_next": "הבא",
"general_btn_off": "כיבוי",
"general_btn_ok": "בסדר",
"general_btn_on": "הדלקה",
"general_btn_restarthyperion": "הפעל מחדש את Hyperion",
"general_btn_save": "שמור",
"general_btn_saveandreload": "שמור וטען מחדש",
"general_btn_yes": "כן",
"general_button_savesettings": "שמור הגדרות",
"general_col_blue": "כחול",
"general_col_green": "ירוק",
"general_col_red": "אדום",
"general_comp_BLACKBORDER": "Blackbar זיהוי",
"general_comp_BOBLIGHTSERVER": "שרת Boblight",
"general_comp_FLATBUFSERVER": "שרת ",
"general_comp_FORWARDER": "שילוח",
"general_comp_GRABBER": "לכידת מסך",
"general_comp_LEDDEVICE": "פלט LED",
"general_comp_PROTOSERVER": "שרת מאגר פרוטוקול",
"general_comp_SMOOTHING": "חלק",
"general_comp_V4L": "לכידת כניסת USB",
"general_country_de": "גרמניה",
"general_country_es": "ספרד",
"general_country_fr": "צרפת",
"general_country_it": "איטליה",
"general_country_nl": "הולנד",
"general_country_uk": "בריטניה",
"general_country_us": "ארצות הברית",
"general_speech_cs": "צ'כית",
"general_speech_de": "גרמנית",
"general_speech_en": "אנגלית",
"general_speech_es": "ספרדית",
"general_speech_it": "איטלקית",
"general_webui_title": "Hyperion - תצורת אינטרנט",
"general_wiki_moreto": "מידע נוסף על \"$1\" בוויקי שלנו",
"info_restart_contus": "אם אתה עדיין משוטט כאן לאחר 20 שניות ואין לך מושג למה, בבקשה פתח נושא חדש בפורום התמיכה שלנו...",
"main_ledsim_btn_togglelednumber": "מספר נורות LED",
"main_ledsim_btn_toggleleds": "הצג אורות",
"main_ledsim_btn_togglelivevideo": "וידאו חי",
"main_ledsim_text": "הדמיה חיה של צבעי LED ואפשרות הזרמת הווידאו הנוכחי של מכשיר הלכידה שלך.",
"main_ledsim_title": "חזותיות LED",
"main_menu_about_token": "אודות Hyperion",
"main_menu_colors_conf_token": "עיבוד תמונה",
"main_menu_dashboard_token": "לוּחַ מַחווָנִים",
"main_menu_effect_conf_token": "אפקטים",
"main_menu_effectsconfigurator_token": "הגדרת אפקטים",
"main_menu_general_conf_token": "כללי",
"main_menu_grabber_conf_token": "לכידת חומרה",
"main_menu_input_selection_token": "בחירת קלט",
"main_menu_leds_conf_token": "יצאת LED",
"main_menu_network_conf_token": "שירותי אינטרנט",
"main_menu_remotecontrol_token": "שלט רחוק",
"main_menu_support_token": "תמיכה",
"main_menu_system_token": "מערכת",
"main_menu_update_token": "עדכון",
"main_menu_webconfig_token": "תצורת אינטרנט",
"remote_input_intro": "Hyperion משתמש במערכת עדיפות לבחירת מקור. לכל מה שתגדירו יש עדיפות (אפקט/צבע/צילום מסך/לכידת USB ומקורות רשת). כברירת מחדל, Hyperion בוחר מקורות בהתאם לעדיפות (המספר הנמוך ביותר משקף את המקור הפעיל הנוכחי). כעת יש לך הזדמנות לבחור מקורות בעצמך. $1",
"support_label_intro": "Hyperion היא תוכנה חינמית ללא מטרות רווח. צוות קטן עובד על זה וזו הסיבה שאנחנו צריכים את התמיכה הקבועה שלכם.",
"update_label_intro": "סקירה כללית על כל גרסאות Hyperion הזמינות. בנוסף, תוכל לעדכן או לשדרג לאחור את הגרסה שלך של Hyperion מתי שתרצה. ממוין מהחדש להכי ישן",
"wiz_atmoorb_desc2": "כעת בחר אילו כדורים יש להוסיף. המיקום מקצה את המנורה למיקום מסוים ב\"תמונה\" שלך. מנורות מושבתות לא יתווספו. לזיהוי מנורות בודדות לחץ על הכפתור בצד ימין.",
"wiz_atmoorb_intro1": "אשף זה מגדיר את Hyperion עבור AtmoOrbs. התכונות הן הזיהוי האוטומטי של AtmoOrb, הגדרת כל אור למיקום ספציפי בתמונה שלך או השבתה וביצוע אופטימיזציה של הגדרות Hyperion באופן אוטומטי! אז בקיצור: כל מה שאתה צריך זה כמה קליקים וסיימת!",
"wiz_cc_adjustgamma": "גמא: מה שאתה צריך לעשות הוא, להתאים את רמות הגמא של כל ערוץ עד שתהיה לך אותה כמות נתפסת של כל ערוץ. רמז: ניטרלי הוא 1.0! לדוגמה, אם האפור שלך קצת אדמדם, זה אומר שאתה צריך להגדיל את הגמא האדום כדי להפחית את כמות האדום (ככל שיותר גמא, כך פחות צבע).",
"wiz_cc_adjustit": "התאם את ה-\"$1\" שלך עד שתסתדר עם זה. שימו לב: ככל שתתרחקו מערך ברירת המחדל, ספקטרום הצבעים יהיה מוגבל (גם עבור כל הצבעים שביניהם). תלוי בקול הטלוויזיה/LED",
"wiz_cc_backlight": "בנוסף, אתה יכול להגדיר תאורה אחורית כדי למיין \"צבעים רעים\" באזורים כמעט כהים או אם אתה לא אוהב את המעבר בין צבע לכבוי במהלך הצפייה. בנוסף אתה יכול להגדיר אם צריך להיות בו קצת צבע או רק לבן. זה מושבת במצב \"כבוי\", \"צבע\" ו\"אפקט\".",
"wiz_cc_intro1": "אשף זה ידריך אותך בכיול ה-LED שלך. אם אתה משתמש בקודי, ניתן לשלוח את תמונות הכיול וסרטוני הווידאו ישירות אליו. תנאי מוקדם: עליך להפעיל את \"אפשר שליטה מרחוק מיישומים במערכות אחרות\" בקודי.<br />לחלופין, ייתכן שתרצה להוריד את הקבצים האלה בעצמך ולהציג אותם כשהאשף יבקש ממך להתאים את ההגדרה.",
"wiz_cc_kodidiscon": "Kodi לא נמצא, המשך ללא תמיכת Kodi (אנא בדוק אם שלט רחוק על ידי מערכות אחרות מופעלת).",
"wiz_cc_summary": "מסקנה של ההגדרות שלך. במהלך הפעלת וידאו, תוכל לשנות או לבדוק שוב ערכים. אם סיימת, לחץ על שמור.",
"wiz_cololight_intro1": "אשף זה מגדיר את Hyperion עבור מערכת Cololight. התכונות הן הזיהוי האוטומטי של Cololight וכוונון את הגדרות Hyperion באופן אוטומטי! בקיצור: כל מה שאתה צריך זה כמה קליקים וסיימת!<br />הערה: במקרה של Cololight Strip, ייתכן שיהיה עליך לתקן ידנית את ספירת ה-LED ואת הפריסה.",
"wiz_hue_desc1": "1. Hyperion מחפש אוטומטית עבור Hue-Bridge, במקרה שהוא לא יכול למצוא אחד, עליך לספק את שם המארח או כתובת ה-IP וללחוץ על כפתור הטעינה מחדש. \n2. ספק מזהה משתמש, אם אין לך צור אחד חדש.",
"wiz_hue_desc2": "3. כעת בחרו אילו מנורות יש להוסיף. המיקום מקצה את המנורה למיקום מסוים ב\"תמונה\" שלך. מנורות מושבתות לא יתווספו. לזיהוי מנורות בודדות לחץ על הכפתור בצד ימין",
"wiz_hue_e_desc1": "1. Hyperion מחפש אוטומטית עבור Hue-Bridge, במקרה שהוא לא יכול למצוא אחד, עליך לספק את שם המארח או כתובת ה-IP וללחוץ על כפתור הטעינה מחדש. <br>2. ספק מזהה משתמש ומפתח הלקוח, אם אין לך את שניהם, צור חדשים.",
"wiz_hue_e_desc3": "4. בחר באיזה מיקום המנורה המתאימה צריכה להיות \"בתמונה\". בחירה מראש של העמדה נעשתה בהתבסס על המיקומים המוגדרים של האורות בקבוצת הבידור. זו רק המלצה וניתן להתאים אישית לפי הרצון. לכן אתה יכול להדגיש אותם בקצרה על ידי לחיצה על הכפתור הימני כדי לשפר את הבחירה.",
"wiz_hue_e_intro1": "אשף זה מגדיר את Hyperion עבור מערכת Philips Hue Entertainment הידועה. התכונות הן: זיהוי אוטומטי של Hue Bridge, יצירת מפתחות משתמש ולקוח, בחירת קבוצת בידור, הגדרת אורות קבוצה למיקום ספציפי בתמונה שלך ואופטימיזציה של הגדרות Hyperion באופן אוטומטי! אז בקיצור: כל מה שאתה צריך זה כמה קליקים וסיימת!",
"wiz_hue_failure_user": "המשתמש לא נמצא, צור אחד חדש עם הכפתור למטה או הזן מזהה משתמש חוקי ולחץ על הסמל \"טען מחדש\".",
"wiz_hue_intro1": "אשף זה מגדיר את Hyperion עבור מערכת Philips Hue הידועה. התכונות הן זיהוי אוטומטי של Hue Bridge, יצירת משתמש, הגדר כל אור גוון למיקום מסוים בתמונה שלך או השבת אותו וכוונו את הגדרות Hyperion באופן אוטומטי! אז בקיצור: כל מה שאתה צריך זה כמה קליקים וסיימת!",
"wiz_rgb_expl": "נקודת הצבע מחליפה כל x שניות את הצבע (אדום, ירוק), ובאותו הזמן גם נוריות ה-LED שלך מחליפות את הצבע. ענה על השאלות בתחתית כדי לבדוק/לתקן את סדר הביטים שלך.",
"wiz_rgb_intro1": "אשף זה ידריך אותך בתהליך מציאת סדר הצבעים הנכון עבור הלדים שלך. לחץ על המשך כדי להתחיל.",
"wiz_rgb_intro2": "מתי אתה צריך את האשף הזה? דוגמה: אתה קובע את הצבע האדום, אבל אתה מקבל ירוק או כחול. אתה יכול גם להשתמש בו עבור תצורה ראשונה.",
"wiz_yeelight_desc2": "כעת בחר אילו מנורות יש להוסיף. המיקום מקצה את המנורה למיקום מסוים ב\"תמונה\" שלך. מנורות מושבתות לא יתווספו. לזיהוי מנורות בודדות לחץ על הכפתור בצד ימין.",
"wiz_yeelight_intro1": "אשף זה מגדיר את Hyperion עבור מערכת Yeelight. התכונות הן הזיהוי האוטומטי של Yeelighs, הגדרת כל אור למיקום מסוים בתמונה שלך או להשבית אותו ולכוון את הגדרות Hyperion באופן אוטומטי! אז בקיצור: כל מה שאתה צריך זה כמה קליקים וסיימת!"
}

View File

@ -1,6 +1,6 @@
var storedLang;
var availLang = ['ca', 'cs', 'da', 'de', 'el', 'en', 'es', 'fr', 'hu', 'it', 'ja', 'nl', 'nb', 'pl', 'pt', 'ro', 'sv', 'vi', 'ru', 'tr', 'zh-CN'];
var availLangText = ['Català', 'Čeština', 'Dansk', 'Deutsch', 'Ελληνική', 'English', 'Español', 'Français', 'Magyar', 'Italiano', '日本語', 'Nederlands', 'Norsk Bokmål', 'Polski', 'Português', 'Română', 'Svenska', 'Tiếng Việt', 'русский', 'Türkçe', '汉语'];
var availLang = ['ca', 'cs', 'da', 'de', 'el', 'en', 'es', 'fr', 'he', 'hu', 'it', 'ja', 'nl', 'nb', 'pl', 'pt', 'ro', 'sv', 'vi', 'ru', 'tr', 'zh-CN'];
var availLangText = ['Català', 'Čeština', 'Dansk', 'Deutsch', 'Ελληνική', 'English', 'Español', 'Français', 'עִברִית' ,'Magyar', 'Italiano', '日本語', 'Nederlands', 'Norsk Bokmål', 'Polski', 'Português', 'Română', 'Svenska', 'Tiếng Việt', 'русский', 'Türkçe', '汉语'];
//$.i18n.debug = true;

View File

@ -12,6 +12,8 @@ hasPython3=$?
type python > /dev/null 2> /dev/null
hasPython2=$?
BASE_PATH='.';
if [[ "${hasWget}" -ne 0 ]] && [[ "${hasCurl}" -ne 0 ]]; then
echo '---> Critical Error: wget or curl required to download pull request artifacts'
exit 1
@ -171,20 +173,20 @@ fi
# Download packed PR artifact
echo "---> Downloading the Pull Request #$pr_number"
if [ $hasCurl -eq 0 ]; then
curl -skH "Authorization: token ${PR_TOKEN}" -o $HOME/temp.zip -L --get $archive_download_url
curl -skH "Authorization: token ${PR_TOKEN}" -o $BASE_PATH/temp.zip -L --get $archive_download_url
elif [ $hasWget -eq 0 ]; then
echo "wget"
wget --quiet --header="Authorization: token ${PR_TOKEN}" -O $HOME/temp.zip $archive_download_url
wget --quiet --header="Authorization: token ${PR_TOKEN}" -O $BASE_PATH/temp.zip $archive_download_url
fi
# Create new folder & extract PR artifact
echo "---> Extracting packed Artifact"
mkdir -p $HOME/hyperion_pr$pr_number
unzip -p $HOME/temp.zip | tar --strip-components=2 -C $HOME/hyperion_pr$pr_number share/hyperion/ -xz
mkdir -p $BASE_PATH/hyperion_pr$pr_number
unzip -p $BASE_PATH/temp.zip | tar --strip-components=2 -C $BASE_PATH/hyperion_pr$pr_number share/hyperion/ -xz
# Delete PR artifact
echo '---> Remove temporary files'
rm $HOME/temp.zip 2>/dev/null
rm $BASE_PATH/temp.zip 2>/dev/null
# Create the startup script
echo '---> Create startup script'
@ -209,7 +211,7 @@ if [[ ! -z ${CURRENT_SERVICE} ]]; then
fi
fi'""
TARGET_CONFIGDIR="$HOME/hyperion_pr$pr_number/config"
TARGET_CONFIGDIR="$BASE_PATH/config"
if [[ ! -z ${CONFIGDIR} ]]; then
STARTUP_SCRIPT+="
@ -221,19 +223,19 @@ fi
STARTUP_SCRIPT+="
# Start PR artifact
cd $HOME/hyperion_pr$pr_number
cd $BASE_PATH/hyperion_pr$pr_number
./bin/hyperiond -d -u $TARGET_CONFIGDIR"
# Place startup script
echo "$STARTUP_SCRIPT" > $HOME/hyperion_pr$pr_number/$pr_number.sh
echo "$STARTUP_SCRIPT" > $BASE_PATH/hyperion_pr$pr_number/$pr_number.sh
# Set the executen bit
chmod +x -R $HOME/hyperion_pr$pr_number/$pr_number.sh
chmod +x -R $BASE_PATH/hyperion_pr$pr_number/$pr_number.sh
echo "*******************************************************************************"
echo "Download finished!"
$REBOOTMESSAGE
echo "You can test the pull request with this command: ~/hyperion_pr$pr_number/$pr_number.sh"
echo "Remove the test installation with: rm -R ~/hyperion_pr$pr_number"
echo "You can test the pull request with this command: $BASE_PATH/hyperion_pr$pr_number/$pr_number.sh"
echo "Remove the test installation with: rm -R $BASE_PATH/hyperion_pr$pr_number"
echo "Feedback is welcome at https://github.com/hyperion-project/hyperion.ng/pull/$pr_number"
echo "*******************************************************************************"

View File

@ -11,6 +11,6 @@
"grayscale": false,
"imageSource": "file",
"reverse": false,
"file": "matrix.gif"
"file": ":matrix.gif"
}
}

View File

@ -1290,11 +1290,11 @@ QJsonArray V4L2Grabber::discover(const QJsonObject& params)
format["format"] = pixelFormatToString(encodingFormat);
QMap<std::pair<int, int>, QSet<int>> combined = QMap<std::pair<int, int>, QSet<int>>();
for (auto enc : input.value().encodingFormats.values(encodingFormat))
for (const auto &enc : input.value().encodingFormats.values(encodingFormat))
{
std::pair<int, int> width_height{enc.width, enc.height};
auto &com = combined[width_height];
for (auto framerate : qAsConst(enc.framerates))
for (auto framerate : enc.framerates)
{
com.insert(framerate);
}
@ -1326,7 +1326,7 @@ QJsonArray V4L2Grabber::discover(const QJsonObject& params)
device["video_inputs"] = video_inputs;
QJsonObject controls, controls_default;
for (const auto &control : qAsConst(_deviceControls[device_property.key()]))
for (const auto &control : std::as_const(_deviceControls[device_property.key()]))
{
QJsonObject property;
property["minValue"] = control.minValue;

View File

@ -446,11 +446,11 @@ bool LedDevicePhilipsHueBridge::checkApiError(const QJsonDocument &response, boo
QJsonObject obj = response.object();
if (obj.contains(API_ERRORS))
{
QJsonArray errorList = obj.value(API_ERRORS).toArray();
const QJsonArray errorList = obj.value(API_ERRORS).toArray();
if (!errorList.isEmpty())
{
QStringList errors;
for (const QJsonValue &error : qAsConst(errorList))
for (const QJsonValue &error : errorList)
{
QString errorString = error.toObject()[API_ERROR_DESCRIPTION].toString();
if (!errorString.contains("may not have effect"))
@ -909,9 +909,9 @@ void LedDevicePhilipsHueBridge::setDevicesMap(const QJsonDocument &doc)
if (_useApiV2)
{
QJsonArray devices = doc.array();
const QJsonArray devices = doc.array();
for (const QJsonValue &device : qAsConst(devices))
for (const QJsonValue &device : devices)
{
QString deviceId = device.toObject().value("id").toString();
_devicesMap.insert(deviceId, device.toObject());
@ -925,9 +925,9 @@ void LedDevicePhilipsHueBridge::setLightsMap(const QJsonDocument &doc)
if (_useApiV2)
{
QJsonArray lights = doc.array();
const QJsonArray lights = doc.array();
for (const QJsonValue &light : qAsConst(lights))
for (const QJsonValue &light : lights)
{
QString lightId = light.toObject().value("id").toString();
_lightsMap.insert(lightId, light.toObject());
@ -965,9 +965,9 @@ void LedDevicePhilipsHueBridge::setGroupMap(const QJsonDocument &doc)
_groupsMap.clear();
if (_useApiV2)
{
QJsonArray groups = doc.array();
const QJsonArray groups = doc.array();
for (const QJsonValue &group : qAsConst(groups))
for (const QJsonValue &group : groups)
{
QString groupId = group.toObject().value("id").toString();
_groupsMap.insert(groupId, group.toObject());
@ -995,9 +995,9 @@ void LedDevicePhilipsHueBridge::setEntertainmentSrvMap(const QJsonDocument &doc)
if (_useApiV2)
{
QJsonArray entertainmentSrvs = doc.array();
const QJsonArray entertainmentSrvs = doc.array();
for (const QJsonValue &entertainmentSrv : qAsConst(entertainmentSrvs))
for (const QJsonValue &entertainmentSrv : entertainmentSrvs)
{
QString entertainmentSrvId = entertainmentSrv.toObject().value("id").toString();
_entertainmentMap.insert(entertainmentSrvId, entertainmentSrv.toObject());
@ -1093,8 +1093,8 @@ QStringList LedDevicePhilipsHueBridge::getGroupLights(const QString& groupId) co
{
if (_useApiV2)
{
QJsonArray lightServices = group.value( API_LIGHT_SERVICES ).toArray();
for (const QJsonValue &light : qAsConst(lightServices))
const QJsonArray lightServices = group.value( API_LIGHT_SERVICES ).toArray();
for (const QJsonValue &light : lightServices)
{
groupLights.append( light.toObject().value(API_RID).toString());
}
@ -1140,7 +1140,7 @@ QJsonObject LedDevicePhilipsHueBridge::getEntertainmentSrvDetails(const QString&
DebugIf( verbose, _log, "getEntertainmentSrvDetails [%s]", QSTRING_CSTR(deviceId) );
QJsonObject details;
for (const QJsonObject& entertainmentSrv : qAsConst(_entertainmentMap))
for (const QJsonObject& entertainmentSrv : std::as_const(_entertainmentMap))
{
QJsonObject owner = entertainmentSrv[API_OWNER].toObject();
@ -1933,7 +1933,7 @@ bool LedDevicePhilipsHue::updateLights(const QMap<QString, QJsonObject> &map)
if(!_lightIds.empty())
{
_lights.reserve(static_cast<size_t>(_lightIds.size()));
for(const auto &id : qAsConst(_lightIds))
for(const auto &id : std::as_const(_lightIds))
{
if (map.contains(id))
{