diff --git a/lib/I18n/translations/belarusian.yaml b/lib/I18n/translations/belarusian.yaml index 366ee3d8..56cb0281 100644 --- a/lib/I18n/translations/belarusian.yaml +++ b/lib/I18n/translations/belarusian.yaml @@ -67,7 +67,6 @@ STR_HIDE_BATTERY: "Схаваць % батарэі" STR_EXTRA_SPACING: "Дадат. інтэрвал абзаца" STR_TEXT_AA: "Згладжванне тэксту" STR_ORIENTATION: "Арыентацыя чытання" -STR_SIDE_BTN_LAYOUT: "Бакавыя кнопкі" STR_LONG_PRESS_SKIP: "Доўгае націсканне - змена раздзела" STR_FONT_FAMILY: "Шрыфт чытання" STR_FONT_SIZE: "Памер шрыфту інтэрфейсу" @@ -122,8 +121,6 @@ STR_PORTRAIT: "Партрэт" STR_LANDSCAPE_CW: "Ландшафт (CW)" STR_INVERTED: "Інверсія" STR_LANDSCAPE_CCW: "Ландшафт (CCW)" -STR_PREV_NEXT: "Назад/Наперад" -STR_NEXT_PREV: "Наперад/Назад" STR_BOOKERLY: "Bookerly" STR_NOTO_SANS: "Noto Sans" STR_OPEN_DYSLEXIC: "Open Dyslexic" diff --git a/lib/I18n/translations/catalan.yaml b/lib/I18n/translations/catalan.yaml index 49d5b424..01c0d705 100644 --- a/lib/I18n/translations/catalan.yaml +++ b/lib/I18n/translations/catalan.yaml @@ -71,7 +71,6 @@ STR_IMAGES_DISPLAY: "Mostrar" STR_IMAGES_PLACEHOLDER: "Text de mostra" STR_IMAGES_SUPPRESS: "Suprimir" STR_ORIENTATION: "Orientació de lectura" -STR_SIDE_BTN_LAYOUT: "Disposició botons laterals" STR_LONG_PRESS_SKIP: "Pressió llarga omet el capítol" STR_FONT_FAMILY: "Tipus de lletra" STR_FONT_SIZE: "Mida de la lletra (UI)" @@ -127,8 +126,6 @@ STR_PORTRAIT: "Vertical" STR_LANDSCAPE_CW: "Horitzontal horari" STR_INVERTED: "Invertit" STR_LANDSCAPE_CCW: "Horitzontal antihorari" -STR_PREV_NEXT: "Anterior/Següent" -STR_NEXT_PREV: "Següent/Anterior" STR_BOOKERLY: "Bookerly" STR_NOTO_SANS: "Noto Sans" STR_OPEN_DYSLEXIC: "Open Dyslexic" diff --git a/lib/I18n/translations/czech.yaml b/lib/I18n/translations/czech.yaml index c9f629ce..5da37a60 100644 --- a/lib/I18n/translations/czech.yaml +++ b/lib/I18n/translations/czech.yaml @@ -67,7 +67,6 @@ STR_HIDE_BATTERY: "Skrýt baterii %" STR_EXTRA_SPACING: "Extra mezery mezi odstavci" STR_TEXT_AA: "Vyhlazování textu" STR_ORIENTATION: "Orientace čtení" -STR_SIDE_BTN_LAYOUT: "Rozvržení bočních tlačítek (čtečka)" STR_LONG_PRESS_SKIP: "Dlouhé stisknutí Přeskočit kapitolu" STR_FONT_FAMILY: "Rodina písem čtečky" STR_FONT_SIZE: "Velikost písma rozhraní" @@ -122,8 +121,6 @@ STR_PORTRAIT: "Na výšku" STR_LANDSCAPE_CW: "Na šířku po směru hod. ručiček" STR_INVERTED: "Invertovaný" STR_LANDSCAPE_CCW: "Na šířku proti směru hod. ručiček" -STR_PREV_NEXT: "Předchozí/Další" -STR_NEXT_PREV: "Další/Předchozí" STR_BOOKERLY: "Bookerly" STR_NOTO_SANS: "Noto Sans" STR_OPEN_DYSLEXIC: "Open Dyslexic" diff --git a/lib/I18n/translations/danish.yaml b/lib/I18n/translations/danish.yaml index 86b60de8..9e540dca 100644 --- a/lib/I18n/translations/danish.yaml +++ b/lib/I18n/translations/danish.yaml @@ -71,7 +71,6 @@ STR_IMAGES_DISPLAY: "Vis" STR_IMAGES_PLACEHOLDER: "Pladsholder" STR_IMAGES_SUPPRESS: "Skjul" STR_ORIENTATION: "Læseretning" -STR_SIDE_BTN_LAYOUT: "Knaplayout på siden (læser)" STR_LONG_PRESS_SKIP: "Langt tryk spring kapitel over" STR_FONT_FAMILY: "Læser skrifttype" STR_FONT_SIZE: "Læser skriftstørrelse" @@ -127,8 +126,6 @@ STR_PORTRAIT: "Portræt" STR_LANDSCAPE_CW: "Liggende med uret" STR_INVERTED: "Inverteret" STR_LANDSCAPE_CCW: "Liggende mod uret" -STR_PREV_NEXT: "Forrige/Næste" -STR_NEXT_PREV: "Næste/Forrige" STR_BOOKERLY: "Bookerly" STR_NOTO_SANS: "Noto Sans" STR_OPEN_DYSLEXIC: "Open Dyslexic" diff --git a/lib/I18n/translations/dutch.yaml b/lib/I18n/translations/dutch.yaml index 5e0e631f..55d3814f 100644 --- a/lib/I18n/translations/dutch.yaml +++ b/lib/I18n/translations/dutch.yaml @@ -97,7 +97,6 @@ STR_IMAGE_DITHER_ATKINSON: "Atkinson" STR_IMAGE_DITHER_DIFFUSED_BAYER: "Gediffuseerde Bayer" STR_CREATE_FALLBACK_FOR_INVALID_TOC: "Maak fallback voor ongeldige inhoudsopgave" STR_ORIENTATION: "Leesstand" -STR_SIDE_BTN_LAYOUT: "Indeling zijknoppen (lezer)" STR_LONG_PRESS_SKIP: "Hoofdstuk overslaan (lang indrukken)" STR_FONT_FAMILY: "Lettertype lezer" STR_FONT_SIZE: "Lettergrootte lezer" @@ -202,8 +201,6 @@ STR_PORTRAIT: "Staand" STR_LANDSCAPE_CW: "Liggend (rechtsom)" STR_INVERTED: "Omgekeerd" STR_LANDSCAPE_CCW: "Liggend (linksom)" -STR_PREV_NEXT: "Vorige/Volgende" -STR_NEXT_PREV: "Volgende/Vorige" STR_BOOKERLY: "Bookerly" STR_NOTO_SANS: "Noto Sans" STR_OPEN_DYSLEXIC: "Open Dyslexic" diff --git a/lib/I18n/translations/english.yaml b/lib/I18n/translations/english.yaml index 89b2ac37..5a929c21 100644 --- a/lib/I18n/translations/english.yaml +++ b/lib/I18n/translations/english.yaml @@ -97,7 +97,6 @@ STR_IMAGE_DITHER_ATKINSON: "Atkinson" STR_IMAGE_DITHER_DIFFUSED_BAYER: "Diffused Bayer" STR_CREATE_FALLBACK_FOR_INVALID_TOC: "Create fallback for invalid TOC" STR_ORIENTATION: "Reading Orientation" -STR_SIDE_BTN_LAYOUT: "Side Button Layout (reader)" STR_LONG_PRESS_SKIP: "Long-press Chapter Skip" STR_FONT_FAMILY: "Reader Font Family" STR_FONT_SIZE: "Reader Font Size" @@ -202,8 +201,6 @@ STR_PORTRAIT: "Portrait" STR_LANDSCAPE_CW: "Landscape CW" STR_INVERTED: "Inverted" STR_LANDSCAPE_CCW: "Landscape CCW" -STR_PREV_NEXT: "Prev/Next" -STR_NEXT_PREV: "Next/Prev" STR_BOOKERLY: "Bookerly" STR_NOTO_SANS: "Noto Sans" STR_OPEN_DYSLEXIC: "Open Dyslexic" @@ -552,8 +549,6 @@ STR_BTN_BACK: "Back Button" STR_BTN_CONFIRM: "Confirm Button" STR_BTN_LEFT: "Left Button" STR_BTN_RIGHT: "Right Button" -STR_BTN_UP: "Up Button" -STR_BTN_DOWN: "Down Button" STR_BTN_PAGE_BACK: "Page Back Button" STR_BTN_PAGE_FORWARD: "Page Forward Button" STR_BTN_POWER: "Power Button" diff --git a/lib/I18n/translations/finnish.yaml b/lib/I18n/translations/finnish.yaml index 0c73b385..50923526 100644 --- a/lib/I18n/translations/finnish.yaml +++ b/lib/I18n/translations/finnish.yaml @@ -67,7 +67,6 @@ STR_HIDE_BATTERY: "Piilota akun %" STR_EXTRA_SPACING: "Kappaleiden lisäväli" STR_TEXT_AA: "Tekstin reunanpehmennys" STR_ORIENTATION: "Lukusuunta" -STR_SIDE_BTN_LAYOUT: "Sivupainikkeiden asettelu (lukija)" STR_LONG_PRESS_SKIP: "Pitkä painallus: lukuhyppy" STR_FONT_FAMILY: "Lukijan fonttiperhe" STR_FONT_SIZE: "Käyttöliittymän fonttikoko" @@ -122,8 +121,6 @@ STR_PORTRAIT: "Pysty" STR_LANDSCAPE_CW: "Vaaka myötäpäivään" STR_INVERTED: "Käännetty" STR_LANDSCAPE_CCW: "Vaaka vastapäivään" -STR_PREV_NEXT: "Edell/Seur" -STR_NEXT_PREV: "Seur/Edell" STR_BOOKERLY: "Bookerly" STR_NOTO_SANS: "Noto Sans" STR_OPEN_DYSLEXIC: "Open Dyslexic" diff --git a/lib/I18n/translations/french.yaml b/lib/I18n/translations/french.yaml index 5b24dc33..529475a4 100644 --- a/lib/I18n/translations/french.yaml +++ b/lib/I18n/translations/french.yaml @@ -92,7 +92,6 @@ STR_IMAGES_DISPLAY: "Affichage" STR_IMAGES_PLACEHOLDER: "Espace réservé" STR_IMAGES_SUPPRESS: "Masquer" STR_ORIENTATION: "Orientation de lecture" -STR_SIDE_BTN_LAYOUT: "Boutons latéraux" STR_LONG_PRESS_SKIP: "Appui long saut de chapitre" STR_FONT_FAMILY: "Police de caractères du lecteur" STR_FONT_SIZE: "Taille texte interface" @@ -150,8 +149,6 @@ STR_PORTRAIT: "Portrait" STR_LANDSCAPE_CW: "Paysage" STR_INVERTED: "Inversé" STR_LANDSCAPE_CCW: "Paysage inversé" -STR_PREV_NEXT: "Préc/Suiv" -STR_NEXT_PREV: "Suiv/Préc" STR_ABC: "abc" STR_FORCE_REFRESH: "Actualiser l'écran" STR_NEXT: "Suiv" diff --git a/lib/I18n/translations/german.yaml b/lib/I18n/translations/german.yaml index 81de9fbd..883a77f7 100644 --- a/lib/I18n/translations/german.yaml +++ b/lib/I18n/translations/german.yaml @@ -80,7 +80,6 @@ STR_IMAGE_DITHER_BAYER: "Bayer" STR_IMAGE_DITHER_ATKINSON: "Atkinson" STR_IMAGE_DITHER_DIFFUSED_BAYER: "Diffundiertes Bayer" STR_ORIENTATION: "Leseausrichtung" -STR_SIDE_BTN_LAYOUT: "Seitliche Tasten (Lesen)" STR_LONG_PRESS_SKIP: "Langes Drücken springt Kap." STR_FONT_FAMILY: "Lese-Schriftfamilie" STR_FONT_SIZE: "Schriftgröße" @@ -141,8 +140,6 @@ STR_PORTRAIT: "Hochformat" STR_LANDSCAPE_CW: "Querformat rechts" STR_INVERTED: "Invertiert" STR_LANDSCAPE_CCW: "Querformat links" -STR_PREV_NEXT: "Zurück/Weiter" -STR_NEXT_PREV: "Weiter/Zurück" STR_ABC: "abc" STR_FORCE_REFRESH: "Bildschirm aktualisieren" STR_NEXT: "Weiter" diff --git a/lib/I18n/translations/hungarian.yaml b/lib/I18n/translations/hungarian.yaml index 95416711..a3090ed3 100644 --- a/lib/I18n/translations/hungarian.yaml +++ b/lib/I18n/translations/hungarian.yaml @@ -71,7 +71,6 @@ STR_IMAGES_DISPLAY: "Megjelenítés" STR_IMAGES_PLACEHOLDER: "Helyőrző" STR_IMAGES_SUPPRESS: "Elnyomás" STR_ORIENTATION: "Olvasási irány" -STR_SIDE_BTN_LAYOUT: "Oldalsó gomb elrendezés (olvasó)" STR_LONG_PRESS_SKIP: "Hosszú nyomás - fejezet ugrás" STR_FONT_FAMILY: "Olvasó betűkészlet" STR_FONT_SIZE: "Olvasó betűméret" @@ -127,8 +126,6 @@ STR_PORTRAIT: "Álló" STR_LANDSCAPE_CW: "Fekvő jobbra" STR_INVERTED: "Fordított" STR_LANDSCAPE_CCW: "Fekvő balra" -STR_PREV_NEXT: "Előző/Következő" -STR_NEXT_PREV: "Következő/Előző" STR_BOOKERLY: "Bookerly" STR_NOTO_SANS: "Noto Sans" STR_OPEN_DYSLEXIC: "Open Dyslexic" diff --git a/lib/I18n/translations/italian.yaml b/lib/I18n/translations/italian.yaml index eb9e4f00..add4d299 100644 --- a/lib/I18n/translations/italian.yaml +++ b/lib/I18n/translations/italian.yaml @@ -92,7 +92,6 @@ STR_IMAGES_DISPLAY: "Visualizza" STR_IMAGES_PLACEHOLDER: "Segnaposto" STR_IMAGES_SUPPRESS: "Nascondi" STR_ORIENTATION: "Orientamento lettura" -STR_SIDE_BTN_LAYOUT: "Pulsanti laterali (lettore)" STR_LONG_PRESS_SKIP: "Pressione lunga: salta capitolo" STR_FONT_FAMILY: "Font lettore" STR_FONT_SIZE: "Dimensione font lettore" @@ -150,8 +149,6 @@ STR_PORTRAIT: "Verticale" STR_LANDSCAPE_CW: "Orizzontale ↻" STR_INVERTED: "Invertito" STR_LANDSCAPE_CCW: "Orizzontale ↺" -STR_PREV_NEXT: "Prec/Succ" -STR_NEXT_PREV: "Succ/Prec" STR_ABC: "abc" STR_FORCE_REFRESH: "Aggiorna schermo" STR_NEXT: "Succ" diff --git a/lib/I18n/translations/kazakh.yaml b/lib/I18n/translations/kazakh.yaml index 623aa81e..f6d87b8a 100644 --- a/lib/I18n/translations/kazakh.yaml +++ b/lib/I18n/translations/kazakh.yaml @@ -66,7 +66,6 @@ STR_HIDE_BATTERY: "Батарея % жасыру" STR_EXTRA_SPACING: "Қосымша абзац аралығы" STR_TEXT_AA: "Мәтін сырғытпасы" STR_ORIENTATION: "Оқу бағдары" -STR_SIDE_BTN_LAYOUT: "Бүйірлік түймелер орналасуы (оқырман)" STR_LONG_PRESS_SKIP: "Ұзақ басу арқылы тарау өткізу" STR_FONT_FAMILY: "Оқырман қаріп тобы" STR_FONT_SIZE: "Интерфейс қаріп өлшемі" @@ -121,8 +120,6 @@ STR_PORTRAIT: "Тік бағдар" STR_LANDSCAPE_CW: "Көлденең (сағат бағытымен)" STR_INVERTED: "Төңкерілген" STR_LANDSCAPE_CCW: "Көлденең (сағат тіліне қарсы)" -STR_PREV_NEXT: "Алдыңғы/Келесі" -STR_NEXT_PREV: "Келесі/Алдыңғы" STR_BOOKERLY: "Bookerly" STR_NOTO_SANS: "Noto Sans" STR_OPEN_DYSLEXIC: "Open Dyslexic" diff --git a/lib/I18n/translations/lithuanian.yaml b/lib/I18n/translations/lithuanian.yaml index 891a4fb4..29c457db 100644 --- a/lib/I18n/translations/lithuanian.yaml +++ b/lib/I18n/translations/lithuanian.yaml @@ -71,7 +71,6 @@ STR_IMAGES_DISPLAY: "Rodyti" STR_IMAGES_PLACEHOLDER: "Vietaženklis" STR_IMAGES_SUPPRESS: "Slėpti" STR_ORIENTATION: "Orientacija" -STR_SIDE_BTN_LAYOUT: "Šoniniai mygtukai" STR_LONG_PRESS_SKIP: "Praleisti skyrių (ilgai)" STR_FONT_FAMILY: "Šriftas" STR_FONT_SIZE: "Šrifto dydis" @@ -127,8 +126,6 @@ STR_PORTRAIT: "Stačias" STR_LANDSCAPE_CW: "Gulsčias (P)" STR_INVERTED: "Apverstas" STR_LANDSCAPE_CCW: "Gulsčias (A)" -STR_PREV_NEXT: "Atgal/Pirmyn" -STR_NEXT_PREV: "Pirmyn/Atgal" STR_BOOKERLY: "Bookerly" STR_NOTO_SANS: "Noto Sans" STR_OPEN_DYSLEXIC: "O. Dyslexic" diff --git a/lib/I18n/translations/polish.yaml b/lib/I18n/translations/polish.yaml index 6a948547..a20c0fb8 100644 --- a/lib/I18n/translations/polish.yaml +++ b/lib/I18n/translations/polish.yaml @@ -97,7 +97,6 @@ STR_IMAGE_DITHER_ATKINSON: "Atkinson" STR_IMAGE_DITHER_DIFFUSED_BAYER: "Dyfundowany Bayer" STR_CREATE_FALLBACK_FOR_INVALID_TOC: "Utwórz fallback dla nieprawidłowego spisu treści" STR_ORIENTATION: "Układ czytania" -STR_SIDE_BTN_LAYOUT: "Układ przycisków bocznych" STR_LONG_PRESS_SKIP: "Przytrzymaj aby przeskoczyć rozdział" STR_FONT_FAMILY: "Czcionka" STR_FONT_SIZE: "Rozmiar czcionki" @@ -202,8 +201,6 @@ STR_PORTRAIT: "Pionowo" STR_LANDSCAPE_CW: "Poziomo P" STR_INVERTED: "Odwrócony" STR_LANDSCAPE_CCW: "Poziomo L" -STR_PREV_NEXT: "Poprz./Nast." -STR_NEXT_PREV: "Nast./Poprz." STR_BOOKERLY: "Bookerly" STR_NOTO_SANS: "Noto Sans" STR_OPEN_DYSLEXIC: "Open Dyslexic" diff --git a/lib/I18n/translations/portuguese_br.yaml b/lib/I18n/translations/portuguese_br.yaml index ed483bcf..366f1210 100644 --- a/lib/I18n/translations/portuguese_br.yaml +++ b/lib/I18n/translations/portuguese_br.yaml @@ -96,7 +96,6 @@ STR_IMAGE_DITHER_BAYER: "Bayer" STR_IMAGE_DITHER_ATKINSON: "Atkinson" STR_IMAGE_DITHER_DIFFUSED_BAYER: "Bayer difuso" STR_ORIENTATION: "Orientação de leitura" -STR_SIDE_BTN_LAYOUT: "Disposição dos botões laterais" STR_LONG_PRESS_SKIP: "Pular capítulo com pressão longa" STR_FONT_FAMILY: "Fonte do leitor" STR_FONT_SIZE: "Tam. da fonte da UI" @@ -154,8 +153,6 @@ STR_PORTRAIT: "Retrato" STR_LANDSCAPE_CW: "Paisagem H" STR_INVERTED: "Invertido" STR_LANDSCAPE_CCW: "Paisagem AH" -STR_PREV_NEXT: "Ant/Próx" -STR_NEXT_PREV: "Próx/Ant" STR_BOOKERLY: "Bookerly" STR_NOTO_SANS: "Noto Sans" STR_OPEN_DYSLEXIC: "Open Dyslexic" diff --git a/lib/I18n/translations/portuguese_pt.yaml b/lib/I18n/translations/portuguese_pt.yaml index f4c993bd..1394e0d9 100644 --- a/lib/I18n/translations/portuguese_pt.yaml +++ b/lib/I18n/translations/portuguese_pt.yaml @@ -88,7 +88,6 @@ STR_TEXT_DARKNESS: "Escuridão do texto" STR_EXTRA_DARK: "Extra escuro" STR_MAX_DARK: "Máximo" STR_ORIENTATION: "Orientação de leitura" -STR_SIDE_BTN_LAYOUT: "Disposição dos botões laterais" STR_LONG_PRESS_SKIP: "Saltar capítulo com pressão longa" STR_FONT_FAMILY: "Tipo de letra do leitor" STR_FONT_SIZE: "Tamanho da letra do leitor" @@ -149,8 +148,6 @@ STR_PORTRAIT: "Retrato" STR_LANDSCAPE_CW: "Paisagem H" STR_INVERTED: "Invertido" STR_LANDSCAPE_CCW: "Paisagem AH" -STR_PREV_NEXT: "Ant./Próx." -STR_NEXT_PREV: "Próx./Ant." STR_BOOKERLY: "Bookerly" STR_NOTO_SANS: "Noto Sans" STR_OPEN_DYSLEXIC: "Open Dyslexic" diff --git a/lib/I18n/translations/romanian.yaml b/lib/I18n/translations/romanian.yaml index 41e9a26a..4d935023 100644 --- a/lib/I18n/translations/romanian.yaml +++ b/lib/I18n/translations/romanian.yaml @@ -71,7 +71,6 @@ STR_IMAGES_DISPLAY: "Afişare" STR_IMAGES_PLACEHOLDER: "Substituent" STR_IMAGES_SUPPRESS: "Suprimare" STR_ORIENTATION: "Orientare lectură" -STR_SIDE_BTN_LAYOUT: "Aspect butoane laterale (lectură)" STR_LONG_PRESS_SKIP: "Sărire capitol la apăsare lungă" STR_FONT_FAMILY: "Familie font lectură" STR_FONT_SIZE: "Dimensiune font" @@ -127,8 +126,6 @@ STR_PORTRAIT: "Vertical" STR_LANDSCAPE_CW: "Orizontal dreapta" STR_INVERTED: "Invers" STR_LANDSCAPE_CCW: "Orizontal stânga" -STR_PREV_NEXT: "Înainte/Înapoi" -STR_NEXT_PREV: "Înapoi/Înainte" STR_BOOKERLY: "Bookerly" STR_NOTO_SANS: "Noto Sans" STR_OPEN_DYSLEXIC: "Open Dyslexic" diff --git a/lib/I18n/translations/russian.yaml b/lib/I18n/translations/russian.yaml index 7e464cac..a8779835 100644 --- a/lib/I18n/translations/russian.yaml +++ b/lib/I18n/translations/russian.yaml @@ -89,7 +89,6 @@ STR_IMAGES_DISPLAY: "Показать" STR_IMAGES_PLACEHOLDER: "Заглушки" STR_IMAGES_SUPPRESS: "Скрыть" STR_ORIENTATION: "Ориентация чтения" -STR_SIDE_BTN_LAYOUT: "Боковые кнопки" STR_LONG_PRESS_SKIP: "Долгое нажатие - смена главы" STR_FONT_FAMILY: "Шрифт чтения" STR_FONT_SIZE: "Размер шрифта интерфейса" @@ -147,8 +146,6 @@ STR_PORTRAIT: "Портрет" STR_LANDSCAPE_CW: "Ландшафт (CW)" STR_INVERTED: "Инверсия" STR_LANDSCAPE_CCW: "Ландшафт (CCW)" -STR_PREV_NEXT: "Назад/Вперёд" -STR_NEXT_PREV: "Вперёд/Назад" STR_ABC: "abc" STR_FORCE_REFRESH: "Обновить экран" STR_NEXT: "Далее" diff --git a/lib/I18n/translations/slovenian.yaml b/lib/I18n/translations/slovenian.yaml index b3147081..b8cf33f1 100644 --- a/lib/I18n/translations/slovenian.yaml +++ b/lib/I18n/translations/slovenian.yaml @@ -85,7 +85,6 @@ STR_IMAGE_DITHER_ATKINSON: "Atkinson" STR_IMAGE_DITHER_DIFFUSED_BAYER: "Difuzni Bayer" STR_CREATE_FALLBACK_FOR_INVALID_TOC: "Ustvari rezervo za neveljavno kazalo" STR_ORIENTATION: "Orientacija branja" -STR_SIDE_BTN_LAYOUT: "Razpored stranskih gumbov" STR_LONG_PRESS_SKIP: "Dolgi pritisk za preskok poglavja" STR_FONT_FAMILY: "Pisava bralnika" STR_FONT_SIZE: "Velikost pisave" @@ -184,8 +183,6 @@ STR_PORTRAIT: "Pokončno" STR_LANDSCAPE_CW: "Ležeče (v smeri urinega kazalca)" STR_INVERTED: "Obrnjeno" STR_LANDSCAPE_CCW: "Ležeče (proti smeri urinega kazalca)" -STR_PREV_NEXT: "Nazaj/Naprej" -STR_NEXT_PREV: "Naprej/Nazaj" STR_BOOKERLY: "Bookerly" STR_NOTO_SANS: "Noto Sans" STR_OPEN_DYSLEXIC: "Open Dyslexic" diff --git a/lib/I18n/translations/spanish.yaml b/lib/I18n/translations/spanish.yaml index 4b8d2321..397ca2e4 100644 --- a/lib/I18n/translations/spanish.yaml +++ b/lib/I18n/translations/spanish.yaml @@ -86,7 +86,6 @@ STR_IMAGES_DISPLAY: "Mostrar" STR_IMAGES_PLACEHOLDER: "Reemplazar" STR_IMAGES_SUPPRESS: "Ocultar" STR_ORIENTATION: "Orientación" -STR_SIDE_BTN_LAYOUT: "Función botones laterales (lector)" STR_LONG_PRESS_SKIP: "Saltar capítulo (pulsación larga)" STR_FONT_FAMILY: "Tipografía" STR_FONT_SIZE: "Tamaño" @@ -144,8 +143,6 @@ STR_PORTRAIT: "Vertical" STR_LANDSCAPE_CW: "Horizontal (horario)" STR_INVERTED: "Invertido" STR_LANDSCAPE_CCW: "Horizontal (antihorario)" -STR_PREV_NEXT: "Ant./Sig." -STR_NEXT_PREV: "Sig./Ant." STR_ABC: "abc" STR_FORCE_REFRESH: "Actualizar pantalla" STR_NEXT: "Sig" diff --git a/lib/I18n/translations/swedish.yaml b/lib/I18n/translations/swedish.yaml index d366dfd1..16155cd1 100644 --- a/lib/I18n/translations/swedish.yaml +++ b/lib/I18n/translations/swedish.yaml @@ -97,7 +97,6 @@ STR_IMAGE_DITHER_ATKINSON: "Atkinson" STR_IMAGE_DITHER_DIFFUSED_BAYER: "Diffus Bayer" STR_CREATE_FALLBACK_FOR_INVALID_TOC: "Skapa fallback för ogiltig innehållsförteckning" STR_ORIENTATION: "Läsrikting" -STR_SIDE_BTN_LAYOUT: "Sidoknappslayout (Läsare)" STR_LONG_PRESS_SKIP: "Lång-tryck Kapitelskippning" STR_FONT_FAMILY: "Eboksläsarens typsnittsfamilj" STR_FONT_SIZE: "Eboksläsarens typsnittsstorlek" @@ -202,8 +201,6 @@ STR_PORTRAIT: "Porträtt" STR_LANDSCAPE_CW: "Landskap medurs" STR_INVERTED: "Inverterad" STR_LANDSCAPE_CCW: "Landskap moturs" -STR_PREV_NEXT: "Förra/Nästa" -STR_NEXT_PREV: "Nästa/Förra" STR_BOOKERLY: "Bookerly" STR_NOTO_SANS: "Noto Sans" STR_OPEN_DYSLEXIC: "Öppen Dyslexic" diff --git a/lib/I18n/translations/turkish.yaml b/lib/I18n/translations/turkish.yaml index 69e04311..1b28ab40 100644 --- a/lib/I18n/translations/turkish.yaml +++ b/lib/I18n/translations/turkish.yaml @@ -66,7 +66,6 @@ STR_HIDE_BATTERY: "Pil Yüzdesini Gizle" STR_EXTRA_SPACING: "Ekstra Paragraf Boşluğu" STR_TEXT_AA: "Metin Yumuşatma (AA)" STR_ORIENTATION: "Okuma Yönü" -STR_SIDE_BTN_LAYOUT: "Yan Tuş Dizilimi (okuyucu)" STR_LONG_PRESS_SKIP: "Uzun Basışla Bölüm Atla" STR_FONT_FAMILY: "Okuyucu Yazı Tipi Ailesi" STR_FONT_SIZE: "Arayüz Yazı Boyutu" @@ -123,8 +122,6 @@ STR_PORTRAIT: "Dikey" STR_LANDSCAPE_CW: "Yatay (Saat Yönü)" STR_INVERTED: "Ters" STR_LANDSCAPE_CCW: "Yatay (Saat Yönü Tersi)" -STR_PREV_NEXT: "Önceki/Sonraki" -STR_NEXT_PREV: "Sonraki/Önceki" STR_BOOKERLY: "Bookerly" STR_NOTO_SANS: "Noto Sans" STR_OPEN_DYSLEXIC: "Open Dyslexic" diff --git a/lib/I18n/translations/ukrainian.yaml b/lib/I18n/translations/ukrainian.yaml index 014744ef..0191fc5f 100644 --- a/lib/I18n/translations/ukrainian.yaml +++ b/lib/I18n/translations/ukrainian.yaml @@ -96,7 +96,6 @@ STR_IMAGE_DITHER_BAYER: "Bayer" STR_IMAGE_DITHER_ATKINSON: "Atkinson" STR_IMAGE_DITHER_DIFFUSED_BAYER: "Дифузний Bayer" STR_ORIENTATION: "Орієнтація читання" -STR_SIDE_BTN_LAYOUT: "Розташування бічних кнопок (читач)" STR_LONG_PRESS_SKIP: "Пропуск розділу при довгому натисканні" STR_FONT_FAMILY: "Сімейство шрифтів" STR_FONT_SIZE: "Розмір шрифту інтерфейсу" @@ -154,8 +153,6 @@ STR_PORTRAIT: "Портрет" STR_LANDSCAPE_CW: "Альбомний за годинниковою" STR_INVERTED: "Перевернутий" STR_LANDSCAPE_CCW: "Альбомний проти годинникової" -STR_PREV_NEXT: "Попер/Наст" -STR_NEXT_PREV: "Наст/Попер" STR_BOOKERLY: "Bookerly" STR_NOTO_SANS: "Noto Sans" STR_OPEN_DYSLEXIC: "Open Dyslexic" diff --git a/src/ButtonEventManager.cpp b/src/ButtonEventManager.cpp index 05f02516..af344e09 100644 --- a/src/ButtonEventManager.cpp +++ b/src/ButtonEventManager.cpp @@ -7,11 +7,6 @@ constexpr ButtonEventManager::Button ButtonEventManager::ALL_BUTTONS[ButtonEvent bool ButtonEventManager::hasDoubleAction(const Button button) { using BA = CrossPointSettings::BUTTON_ACTION; - // Up/Down share physical pins with PageBack/PageForward via sideButtonLayout. - // Their double-action settings must be consulted when checking the PageBack/PageForward FSMs - // so that the disambiguation delay is applied when either role has a double action. - const bool prevNext = static_cast(SETTINGS.sideButtonLayout) == - CrossPointSettings::SIDE_BUTTON_LAYOUT::PREV_NEXT; switch (button) { case Button::Back: return SETTINGS.btnDoubleBack != BA::BTN_DEFAULT; @@ -21,17 +16,10 @@ bool ButtonEventManager::hasDoubleAction(const Button button) { return SETTINGS.btnDoubleLeft != BA::BTN_DEFAULT; case Button::Right: return SETTINGS.btnDoubleRight != BA::BTN_DEFAULT; - case Button::Up: - case Button::Down: - return false; // Up/Down have no dedicated FSM; handled via PageBack/PageForward case Button::PageBack: - // PREV_NEXT: BTN_UP = PageBack; NEXT_PREV: BTN_DOWN = PageBack - return SETTINGS.btnDoublePageBack != BA::BTN_DEFAULT || - (prevNext ? SETTINGS.btnDoubleUp : SETTINGS.btnDoubleDown) != BA::BTN_DEFAULT; + return SETTINGS.btnDoublePageBack != BA::BTN_DEFAULT; case Button::PageForward: - // PREV_NEXT: BTN_DOWN = PageForward; NEXT_PREV: BTN_UP = PageForward - return SETTINGS.btnDoublePageForward != BA::BTN_DEFAULT || - (prevNext ? SETTINGS.btnDoubleDown : SETTINGS.btnDoubleUp) != BA::BTN_DEFAULT; + return SETTINGS.btnDoublePageForward != BA::BTN_DEFAULT; case Button::Power: return SETTINGS.btnDoublePower != BA::BTN_DEFAULT; } diff --git a/src/ButtonEventManager.h b/src/ButtonEventManager.h index f32f8f00..59b7562d 100644 --- a/src/ButtonEventManager.h +++ b/src/ButtonEventManager.h @@ -54,10 +54,6 @@ class ButtonEventManager { static bool hasDoubleAction(Button button); private: - // Up and Down alias the same physical GPIO pins as PageBack/PageForward (via sideButtonLayout). - // Running separate FSMs for both would double-fire on every side button press. - // Up/Down are therefore excluded here; their configurable actions are resolved in main.cpp - // by treating a PageBack/PageForward event as the canonical side-button event. static constexpr int NUM_BUTTONS = 7; static constexpr Button ALL_BUTTONS[NUM_BUTTONS] = { Button::Back, Button::Confirm, Button::Left, Button::Right, Button::PageBack, Button::PageForward, Button::Power, diff --git a/src/CrossPointSettings.cpp b/src/CrossPointSettings.cpp index 84d4f452..4f9932d6 100644 --- a/src/CrossPointSettings.cpp +++ b/src/CrossPointSettings.cpp @@ -151,7 +151,10 @@ bool CrossPointSettings::loadFromBinaryFile() { if (++settingsRead >= fileSettingsCount) break; readAndValidate(inputFile, frontButtonLayout, FRONT_BUTTON_LAYOUT_COUNT); if (++settingsRead >= fileSettingsCount) break; - readAndValidate(inputFile, sideButtonLayout, SIDE_BUTTON_LAYOUT_COUNT); + { + uint8_t ignored; + serialization::readPod(inputFile, ignored); + } // legacy sideButtonLayout field if (++settingsRead >= fileSettingsCount) break; readAndValidate(inputFile, fontFamily, FONT_FAMILY_COUNT); if (++settingsRead >= fileSettingsCount) break; diff --git a/src/CrossPointSettings.h b/src/CrossPointSettings.h index eedc674c..d81c8a4b 100644 --- a/src/CrossPointSettings.h +++ b/src/CrossPointSettings.h @@ -88,11 +88,6 @@ class CrossPointSettings { FRONT_BUTTON_HARDWARE_COUNT }; - // Side button layout options - // Default: Previous, Next - // Swapped: Next, Previous - enum SIDE_BUTTON_LAYOUT { PREV_NEXT = 0, NEXT_PREV = 1, SIDE_BUTTON_LAYOUT_COUNT }; - // Font family options enum FONT_FAMILY { BOOKERLY = 0, NOTOSANS = 1, OPENDYSLEXIC = 2, FONT_FAMILY_COUNT }; // Font size options @@ -208,7 +203,6 @@ class CrossPointSettings { uint8_t orientation = PORTRAIT; // Button layouts (front layout retained for migration only) uint8_t frontButtonLayout = BACK_CONFIRM_LEFT_RIGHT; - uint8_t sideButtonLayout = PREV_NEXT; // Front button remap (logical -> hardware) // Used by MappedInputManager to translate logical buttons into physical front buttons. uint8_t frontButtonBack = FRONT_HW_BACK; @@ -292,8 +286,6 @@ class CrossPointSettings { uint8_t btnShortConfirm = BTN_DEFAULT; uint8_t btnShortLeft = BTN_DEFAULT; uint8_t btnShortRight = BTN_DEFAULT; - uint8_t btnShortUp = BTN_DEFAULT; - uint8_t btnShortDown = BTN_DEFAULT; uint8_t btnShortPageBack = BTN_DEFAULT; uint8_t btnShortPageForward = BTN_DEFAULT; uint8_t btnShortPower = BTN_DEFAULT; @@ -303,8 +295,6 @@ class CrossPointSettings { uint8_t btnDoubleConfirm = BTN_DEFAULT; uint8_t btnDoubleLeft = BTN_DEFAULT; uint8_t btnDoubleRight = BTN_DEFAULT; - uint8_t btnDoubleUp = BTN_DEFAULT; - uint8_t btnDoubleDown = BTN_DEFAULT; uint8_t btnDoublePageBack = BTN_DEFAULT; uint8_t btnDoublePageForward = BTN_DEFAULT; uint8_t btnDoublePower = BTN_DEFAULT; @@ -314,8 +304,6 @@ class CrossPointSettings { uint8_t btnLongConfirm = BTN_DEFAULT; uint8_t btnLongLeft = BTN_DEFAULT; uint8_t btnLongRight = BTN_DEFAULT; - uint8_t btnLongUp = BTN_DEFAULT; - uint8_t btnLongDown = BTN_DEFAULT; uint8_t btnLongPageBack = BTN_DEFAULT; uint8_t btnLongPageForward = BTN_DEFAULT; uint8_t btnLongPower = BTN_DEFAULT; diff --git a/src/MappedInputManager.cpp b/src/MappedInputManager.cpp index 467c0f75..6679990c 100644 --- a/src/MappedInputManager.cpp +++ b/src/MappedInputManager.cpp @@ -2,55 +2,27 @@ #include "CrossPointSettings.h" -namespace { -using ButtonIndex = uint8_t; - -struct SideLayoutMap { - ButtonIndex pageBack; - ButtonIndex pageForward; -}; - -// Order matches CrossPointSettings::SIDE_BUTTON_LAYOUT. -constexpr SideLayoutMap kSideLayouts[] = { - {HalGPIO::BTN_UP, HalGPIO::BTN_DOWN}, - {HalGPIO::BTN_DOWN, HalGPIO::BTN_UP}, -}; -} // namespace - bool MappedInputManager::mapButton(const Button button, bool (HalGPIO::*fn)(uint8_t) const) const { - const auto sideLayout = static_cast(SETTINGS.sideButtonLayout); - const auto& side = kSideLayouts[sideLayout]; - switch (button) { case Button::Back: - // Logical Back maps to user-configured front button. return (gpio.*fn)(SETTINGS.frontButtonBack); case Button::Confirm: - // Logical Confirm maps to user-configured front button. return (gpio.*fn)(SETTINGS.frontButtonConfirm); case Button::Left: - // Logical Left maps to user-configured front button. return (gpio.*fn)(SETTINGS.frontButtonLeft); case Button::Right: - // Logical Right maps to user-configured front button. return (gpio.*fn)(SETTINGS.frontButtonRight); case Button::Up: - // Side buttons remain fixed for Up/Down. return (gpio.*fn)(HalGPIO::BTN_UP); case Button::Down: - // Side buttons remain fixed for Up/Down. return (gpio.*fn)(HalGPIO::BTN_DOWN); case Button::Power: - // Power button bypasses remapping. return (gpio.*fn)(HalGPIO::BTN_POWER); case Button::PageBack: - // Reader page navigation uses side buttons and can be swapped via settings. - return (gpio.*fn)(side.pageBack); + return (gpio.*fn)(HalGPIO::BTN_UP); case Button::PageForward: - // Reader page navigation uses side buttons and can be swapped via settings. - return (gpio.*fn)(side.pageForward); + return (gpio.*fn)(HalGPIO::BTN_DOWN); } - return false; } diff --git a/src/SettingsList.h b/src/SettingsList.h index e6bd2834..c833d4bc 100644 --- a/src/SettingsList.h +++ b/src/SettingsList.h @@ -131,9 +131,7 @@ inline const std::vector list = { .withSubcategory(StrId::STR_MENU_READER_TWEAKS), // --- Controls --- - SettingInfo::Enum(StrId::STR_SIDE_BTN_LAYOUT, &CrossPointSettings::sideButtonLayout, - {StrId::STR_PREV_NEXT, StrId::STR_NEXT_PREV}, "sideButtonLayout", StrId::STR_CAT_CONTROLS) - .withSubcategory(StrId::STR_MENU_BTN_PHYSICAL), + SettingInfo::Separator(StrId::STR_MENU_BTN_PHYSICAL), // --- Button Actions (short / double / long press per logical button) --- // All entries share the same ordered action-label list; the submenu groups them behind @@ -147,6 +145,7 @@ inline const std::vector list = { StrId::STR_BTN_ACT_PREV_SECTION, StrId::STR_BTN_ACT_EXIT_READER, StrId::STR_BTN_ACT_READER_MENU, \ StrId::STR_BTN_ACT_KOREADER_SYNC + SettingInfo::Separator(StrId::STR_MENU_BTN_ACTIONS), // Back button: short=exit reader, double=ignore, long=go home SettingInfo::Enum(StrId::STR_BTN_SHORT_PRESS, &CrossPointSettings::btnShortBack, {StrId::STR_BTN_DEF_EXIT_READER, BTN_ACT_OPTIONS}, "btnShortBack", StrId::STR_CAT_CONTROLS) @@ -162,9 +161,11 @@ inline const std::vector list = { {StrId::STR_BTN_DEF_READER_MENU, BTN_ACT_OPTIONS}, "btnShortConfirm", StrId::STR_CAT_CONTROLS) .withSubmenu(StrId::STR_BTN_CONFIRM), SettingInfo::Enum(StrId::STR_BTN_DOUBLE_PRESS, &CrossPointSettings::btnDoubleConfirm, - {StrId::STR_BTN_DEF_IGNORE, BTN_ACT_OPTIONS}, "btnDoubleConfirm", StrId::STR_CAT_CONTROLS), + {StrId::STR_BTN_DEF_IGNORE, BTN_ACT_OPTIONS}, "btnDoubleConfirm", StrId::STR_CAT_CONTROLS) + .withSubmenu(StrId::STR_BTN_CONFIRM), SettingInfo::Enum(StrId::STR_BTN_LONG_PRESS, &CrossPointSettings::btnLongConfirm, - {StrId::STR_BTN_DEF_KOREADER_SYNC, BTN_ACT_OPTIONS}, "btnLongConfirm", StrId::STR_CAT_CONTROLS), + {StrId::STR_BTN_DEF_KOREADER_SYNC, BTN_ACT_OPTIONS}, "btnLongConfirm", StrId::STR_CAT_CONTROLS) + .withSubmenu(StrId::STR_BTN_CONFIRM), // Left button: short=previous page, double=ignore, long=chapter back SettingInfo::Enum(StrId::STR_BTN_SHORT_PRESS, &CrossPointSettings::btnShortLeft, {StrId::STR_BTN_DEF_PREV_PAGE, BTN_ACT_OPTIONS}, "btnShortLeft", StrId::STR_CAT_CONTROLS) @@ -185,26 +186,6 @@ inline const std::vector list = { SettingInfo::Enum(StrId::STR_BTN_LONG_PRESS, &CrossPointSettings::btnLongRight, {StrId::STR_BTN_DEF_CHAPTER_FORWARD, BTN_ACT_OPTIONS}, "btnLongRight", StrId::STR_CAT_CONTROLS) .withSubmenu(StrId::STR_BTN_RIGHT), - // Up button: short=previous page, double=ignore, long=chapter back - SettingInfo::Enum(StrId::STR_BTN_SHORT_PRESS, &CrossPointSettings::btnShortUp, - {StrId::STR_BTN_DEF_PREV_PAGE, BTN_ACT_OPTIONS}, "btnShortUp", StrId::STR_CAT_CONTROLS) - .withSubmenu(StrId::STR_BTN_UP), - SettingInfo::Enum(StrId::STR_BTN_DOUBLE_PRESS, &CrossPointSettings::btnDoubleUp, - {StrId::STR_BTN_DEF_IGNORE, BTN_ACT_OPTIONS}, "btnDoubleUp", StrId::STR_CAT_CONTROLS) - .withSubmenu(StrId::STR_BTN_UP), - SettingInfo::Enum(StrId::STR_BTN_LONG_PRESS, &CrossPointSettings::btnLongUp, - {StrId::STR_BTN_DEF_CHAPTER_BACK, BTN_ACT_OPTIONS}, "btnLongUp", StrId::STR_CAT_CONTROLS) - .withSubmenu(StrId::STR_BTN_UP), - // Down button: short=next page, double=ignore, long=chapter forward - SettingInfo::Enum(StrId::STR_BTN_SHORT_PRESS, &CrossPointSettings::btnShortDown, - {StrId::STR_BTN_DEF_NEXT_PAGE, BTN_ACT_OPTIONS}, "btnShortDown", StrId::STR_CAT_CONTROLS) - .withSubmenu(StrId::STR_BTN_DOWN), - SettingInfo::Enum(StrId::STR_BTN_DOUBLE_PRESS, &CrossPointSettings::btnDoubleDown, - {StrId::STR_BTN_DEF_IGNORE, BTN_ACT_OPTIONS}, "btnDoubleDown", StrId::STR_CAT_CONTROLS) - .withSubmenu(StrId::STR_BTN_DOWN), - SettingInfo::Enum(StrId::STR_BTN_LONG_PRESS, &CrossPointSettings::btnLongDown, - {StrId::STR_BTN_DEF_CHAPTER_FORWARD, BTN_ACT_OPTIONS}, "btnLongDown", StrId::STR_CAT_CONTROLS) - .withSubmenu(StrId::STR_BTN_DOWN), // Page Back button: short=previous page, double=ignore, long=chapter back SettingInfo::Enum(StrId::STR_BTN_SHORT_PRESS, &CrossPointSettings::btnShortPageBack, {StrId::STR_BTN_DEF_PREV_PAGE, BTN_ACT_OPTIONS}, "btnShortPageBack", StrId::STR_CAT_CONTROLS) diff --git a/src/activities/settings/SettingsActivity.cpp b/src/activities/settings/SettingsActivity.cpp index 01020f65..7a9253c2 100644 --- a/src/activities/settings/SettingsActivity.cpp +++ b/src/activities/settings/SettingsActivity.cpp @@ -2,6 +2,8 @@ #include #include +#include +#include #include #include "CrossPointSettings.h" @@ -277,6 +279,5 @@ void SettingsActivity::render(RenderLock&&) { const auto labels = mappedInput.mapLabels(tr(STR_BACK), confirmLabel, tr(STR_DIR_UP), tr(STR_DIR_DOWN)); GUI.drawButtonHints(renderer, labels.btn1, labels.btn2, labels.btn3, labels.btn4); - // Always use standard refresh for settings screen - renderer.displayBuffer(); + renderer.displayBuffer(gpio.deviceIsX3() ? HalDisplay::HALF_REFRESH : HalDisplay::FAST_REFRESH); } diff --git a/src/activities/settings/SettingsSubmenuActivity.cpp b/src/activities/settings/SettingsSubmenuActivity.cpp index 0fc68ff0..d6267d31 100644 --- a/src/activities/settings/SettingsSubmenuActivity.cpp +++ b/src/activities/settings/SettingsSubmenuActivity.cpp @@ -1,6 +1,8 @@ #include "SettingsSubmenuActivity.h" #include +#include +#include #include #include "CrossPointSettings.h" @@ -63,5 +65,5 @@ void SettingsSubmenuActivity::render(RenderLock&&) { const auto labels = mappedInput.mapLabels(tr(STR_BACK), tr(STR_SELECT), tr(STR_DIR_UP), tr(STR_DIR_DOWN)); GUI.drawButtonHints(renderer, labels.btn1, labels.btn2, labels.btn3, labels.btn4); - renderer.displayBuffer(); + renderer.displayBuffer(gpio.deviceIsX3() ? HalDisplay::HALF_REFRESH : HalDisplay::FAST_REFRESH); } diff --git a/src/main.cpp b/src/main.cpp index 15296b51..3a5d7d03 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -387,87 +387,80 @@ void loop() { using B = MappedInputManager::Button; ButtonEventManager::ButtonEvent ev; while (buttonEventManager.consumeEvent(ev)) { - // Up/Down share physical pins with PageBack/PageForward via sideButtonLayout. - // ButtonEventManager only runs FSMs for PageBack/PageForward (not Up/Down) to avoid - // double-firing. Here we resolve Up/Down settings as aliases of the side-button events: - // with PREV_NEXT layout, PageBack = BTN_UP and PageForward = BTN_DOWN, so the - // btnShort/Double/LongUp/Down settings apply when PageBack/PageForward fires. - const bool prevNext = static_cast(SETTINGS.sideButtonLayout) == - CrossPointSettings::SIDE_BUTTON_LAYOUT::PREV_NEXT; auto actionFor = [&](B btn) -> uint8_t { - switch (ev.type) { - case ButtonEventManager::PressType::Short: - switch (btn) { - case B::Back: + switch (btn) { + case B::Back: + switch (ev.type) { + case ButtonEventManager::PressType::Short: return SETTINGS.btnShortBack; - case B::Confirm: - return SETTINGS.btnShortConfirm; - case B::Left: - return SETTINGS.btnShortLeft; - case B::Right: - return SETTINGS.btnShortRight; - case B::Up: - return BA::BTN_DEFAULT; // no dedicated FSM - case B::Down: - return BA::BTN_DEFAULT; // no dedicated FSM - case B::PageBack: - if (SETTINGS.btnShortPageBack != BA::BTN_DEFAULT) return SETTINGS.btnShortPageBack; - return prevNext ? SETTINGS.btnShortUp : SETTINGS.btnShortDown; - case B::PageForward: - if (SETTINGS.btnShortPageForward != BA::BTN_DEFAULT) return SETTINGS.btnShortPageForward; - return prevNext ? SETTINGS.btnShortDown : SETTINGS.btnShortUp; - case B::Power: - return SETTINGS.btnShortPower; - } - break; - case ButtonEventManager::PressType::Double: - switch (btn) { - case B::Back: + case ButtonEventManager::PressType::Double: return SETTINGS.btnDoubleBack; - case B::Confirm: - return SETTINGS.btnDoubleConfirm; - case B::Left: - return SETTINGS.btnDoubleLeft; - case B::Right: - return SETTINGS.btnDoubleRight; - case B::Up: - return BA::BTN_DEFAULT; // no dedicated FSM - case B::Down: - return BA::BTN_DEFAULT; // no dedicated FSM - case B::PageBack: - if (SETTINGS.btnDoublePageBack != BA::BTN_DEFAULT) return SETTINGS.btnDoublePageBack; - return prevNext ? SETTINGS.btnDoubleUp : SETTINGS.btnDoubleDown; - case B::PageForward: - if (SETTINGS.btnDoublePageForward != BA::BTN_DEFAULT) return SETTINGS.btnDoublePageForward; - return prevNext ? SETTINGS.btnDoubleDown : SETTINGS.btnDoubleUp; - case B::Power: - return SETTINGS.btnDoublePower; + case ButtonEventManager::PressType::Long: + return SETTINGS.btnLongBack; } break; - case ButtonEventManager::PressType::Long: - switch (btn) { - case B::Back: - return SETTINGS.btnLongBack; - case B::Confirm: + case B::Confirm: + switch (ev.type) { + case ButtonEventManager::PressType::Short: + return SETTINGS.btnShortConfirm; + case ButtonEventManager::PressType::Double: + return SETTINGS.btnDoubleConfirm; + case ButtonEventManager::PressType::Long: return SETTINGS.btnLongConfirm; - case B::Left: + } + break; + case B::Left: + switch (ev.type) { + case ButtonEventManager::PressType::Short: + return SETTINGS.btnShortLeft; + case ButtonEventManager::PressType::Double: + return SETTINGS.btnDoubleLeft; + case ButtonEventManager::PressType::Long: return SETTINGS.btnLongLeft; - case B::Right: + } + break; + case B::Right: + switch (ev.type) { + case ButtonEventManager::PressType::Short: + return SETTINGS.btnShortRight; + case ButtonEventManager::PressType::Double: + return SETTINGS.btnDoubleRight; + case ButtonEventManager::PressType::Long: return SETTINGS.btnLongRight; - case B::Up: - return BA::BTN_DEFAULT; // no dedicated FSM - case B::Down: - return BA::BTN_DEFAULT; // no dedicated FSM - case B::PageBack: - if (SETTINGS.btnLongPageBack != BA::BTN_DEFAULT) return SETTINGS.btnLongPageBack; - return prevNext ? SETTINGS.btnLongUp : SETTINGS.btnLongDown; - case B::PageForward: - if (SETTINGS.btnLongPageForward != BA::BTN_DEFAULT) return SETTINGS.btnLongPageForward; - return prevNext ? SETTINGS.btnLongDown : SETTINGS.btnLongUp; - case B::Power: + } + break; + case B::PageBack: + switch (ev.type) { + case ButtonEventManager::PressType::Short: + return SETTINGS.btnShortPageBack; + case ButtonEventManager::PressType::Double: + return SETTINGS.btnDoublePageBack; + case ButtonEventManager::PressType::Long: + return SETTINGS.btnLongPageBack; + } + break; + case B::PageForward: + switch (ev.type) { + case ButtonEventManager::PressType::Short: + return SETTINGS.btnShortPageForward; + case ButtonEventManager::PressType::Double: + return SETTINGS.btnDoublePageForward; + case ButtonEventManager::PressType::Long: + return SETTINGS.btnLongPageForward; + } + break; + case B::Power: + switch (ev.type) { + case ButtonEventManager::PressType::Short: + return SETTINGS.btnShortPower; + case ButtonEventManager::PressType::Double: + return SETTINGS.btnDoublePower; + case ButtonEventManager::PressType::Long: return SETTINGS.btnLongPower; } break; + default: + break; // Up/Down have no FSMs — ButtonEventManager never emits these } return BA::BTN_DEFAULT; };