refactor: move GPIO and pygame initialization into setup()
This commit is contained in:
@@ -59,22 +59,24 @@ def remove_pid_file():
|
||||
pass
|
||||
|
||||
|
||||
# GPIO Setup
|
||||
BUTTON_PIN = 17
|
||||
LED_PIN = 27
|
||||
|
||||
GPIO.setmode(GPIO.BCM)
|
||||
GPIO.setup(LED_PIN, GPIO.OUT)
|
||||
GPIO.setup(BUTTON_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP)
|
||||
|
||||
# Audio Setup (with optimized buffer)
|
||||
pygame.mixer.pre_init(frequency=44100, size=-16, channels=2, buffer=4096)
|
||||
pygame.mixer.init()
|
||||
def setup():
|
||||
"""Initialize GPIO and audio hardware. Call once before running."""
|
||||
GPIO.setmode(GPIO.BCM)
|
||||
GPIO.setup(LED_PIN, GPIO.OUT)
|
||||
GPIO.setup(BUTTON_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP)
|
||||
|
||||
try:
|
||||
# Audio Setup (with optimized buffer)
|
||||
pygame.mixer.pre_init(frequency=44100, size=-16, channels=2, buffer=4096)
|
||||
pygame.mixer.init()
|
||||
|
||||
try:
|
||||
pygame.mixer.music.load("Laid Back - Sunshine Reggae.mp3")
|
||||
pygame.mixer.music.set_volume(1.0)
|
||||
except Exception as e:
|
||||
except Exception as e:
|
||||
logging.error(f"Error loading audio file: {e}")
|
||||
# Don't exit in test mode
|
||||
if "pytest" not in sys.modules:
|
||||
@@ -199,6 +201,7 @@ class AlarmClock:
|
||||
|
||||
|
||||
def run_alarm(test_mode=False):
|
||||
setup()
|
||||
logging.info("Alarm clock started. Music is playing in an endless loop.")
|
||||
if "pygame" in globals() and hasattr(pygame, "mixer") and pygame.mixer.get_init():
|
||||
pygame.mixer.music.play(-1)
|
||||
|
||||
Reference in New Issue
Block a user