Skip to content

Commit a86b083

Browse files
authored
Merge pull request #1402 from makermelissa/master
Lofi radio: Add automatic rotation fix
2 parents 2d408ec + 9e585ef commit a86b083

File tree

1 file changed

+40
-6
lines changed

1 file changed

+40
-6
lines changed

Raspberry_Pi_Braincraft_Radio/setup-kiosk.sh

Lines changed: 40 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,9 @@ import signal
6060
import os
6161
import sys
6262
from datetime import datetime
63+
from collections import deque
64+
import re
65+
import fileinput
6366
6467
try:
6568
from evdev import uinput, UInput, ecodes as e
@@ -69,19 +72,50 @@ except ImportError:
6972
import digitalio
7073
import board
7174
75+
def detect_rotation():
76+
rotation_pattern = "^dtoverlay=drm-minipitft13,rotation=([0-9]+)"
77+
hdmi_pattern = "^display_hdmi_rotate=([0-9])"
78+
param_rotation = None
79+
param_hdmi = None
80+
for line in fileinput.FileInput("/boot/config.txt"):
81+
rotation_match = re.search(rotation_pattern, line)
82+
hdmi_match = re.search(hdmi_pattern, line)
83+
if rotation_match:
84+
param_rotation = int(rotation_match.group(1))
85+
if hdmi_match:
86+
param_hdmi = int(hdmi_match.group(1))
87+
if param_rotation is not None and param_hdmi is not None:
88+
break
89+
if param_hdmi == 3:
90+
return 180
91+
if param_hdmi == 2:
92+
return 270
93+
if param_hdmi == 1:
94+
return 0
95+
return param_rotation
96+
97+
arrow_pins = deque((
98+
board.D23, # up
99+
board.D24, # right
100+
board.D27, # down
101+
board.D22, # left
102+
))
103+
104+
arrow_pins.rotate((detect_rotation() // 90) - 1)
105+
72106
DEBUG = False
73107
BOUNCE_TIME = 0.01 # Debounce time in seconds
74108
POWEROFF_TIMEOUT = 5
75109
76110
KEYS= [ # EDIT KEYCODES IN THIS TABLE TO YOUR PREFERENCES:
77111
# See /usr/include/linux/input.h for keycode names
78112
# Keyboard Action (tuple = press together, no repeat)
79-
(board.D17, (e.KEY_K,)), # button - play/pause
80-
(board.D16, (e.KEY_LEFTCTRL, e.KEY_R)), # push stick - reload
81-
(board.D22, (e.KEY_LEFTSHIFT, e.KEY_P)), # left - previous in playlist
82-
(board.D24, (e.KEY_LEFTSHIFT, e.KEY_N)), # right - next in playlist
83-
(board.D23, e.KEY_EQUAL), # up - volume up
84-
(board.D27, e.KEY_MINUS), # down - volume down
113+
(board.D17, (e.KEY_K,)), # button - play/pause
114+
(board.D16, (e.KEY_LEFTCTRL, e.KEY_R)), # push stick - reload
115+
(arrow_pins[3], (e.KEY_LEFTSHIFT, e.KEY_P)), # left - previous in playlist
116+
(arrow_pins[1], (e.KEY_LEFTSHIFT, e.KEY_N)), # right - next in playlist
117+
(arrow_pins[0], e.KEY_EQUAL), # up - volume up
118+
(arrow_pins[2], e.KEY_MINUS), # down - volume down
85119
]
86120
87121
key_values = set()

0 commit comments

Comments
 (0)