Skip to content

Commit 6631588

Browse files
committed
Add automatic rotation fix
1 parent 2d408ec commit 6631588

File tree

1 file changed

+38
-6
lines changed

1 file changed

+38
-6
lines changed

Raspberry_Pi_Braincraft_Radio/setup-kiosk.sh

Lines changed: 38 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,48 @@ 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 == 1:
92+
return 0
93+
return param_rotation
94+
95+
arrow_pins = deque((
96+
board.D23, # up
97+
board.D24, # right
98+
board.D27, # down
99+
board.D22, # left
100+
))
101+
102+
arrow_pins.rotate((detect_rotation() // 90) - 1)
103+
72104
DEBUG = False
73105
BOUNCE_TIME = 0.01 # Debounce time in seconds
74106
POWEROFF_TIMEOUT = 5
75107
76108
KEYS= [ # EDIT KEYCODES IN THIS TABLE TO YOUR PREFERENCES:
77109
# See /usr/include/linux/input.h for keycode names
78110
# 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
111+
(board.D17, (e.KEY_K,)), # button - play/pause
112+
(board.D16, (e.KEY_LEFTCTRL, e.KEY_R)), # push stick - reload
113+
(arrow_pins[3], (e.KEY_LEFTSHIFT, e.KEY_P)), # left - previous in playlist
114+
(arrow_pins[1], (e.KEY_LEFTSHIFT, e.KEY_N)), # right - next in playlist
115+
(arrow_pins[0], e.KEY_EQUAL), # up - volume up
116+
(arrow_pins[2], e.KEY_MINUS), # down - volume down
85117
]
86118
87119
key_values = set()

0 commit comments

Comments
 (0)