-assert bcm2835_init else print "Failed to init"
-
-# drop privileges!
-var user_group = opt_ug.value
-if user_group != null then user_group.drop_privileges
-
-# Debug LED
-var out = new RPiPin.p1_11
-out.fsel = new FunctionSelect.outp
-out.write(false)
-
-# Play button
-var inp = new RPiPin.p1_13
-inp.fsel = new FunctionSelect.inpt
-inp.pud = new PUDControl.down
-
-# Vol +
-var vol3 = new RPiPin.p1_03
-vol3.fsel = new FunctionSelect.inpt
-vol3.pud = new PUDControl.up
-
-# Vol -
-var vol5 = new RPiPin.p1_05
-vol5.fsel = new FunctionSelect.inpt
-vol5.pud = new PUDControl.up
-
-var vol = new RotaryEncoder(vol3,vol5)
-var vol_step = 2
-
-# LCD
-var lcd_rs = new RPiPin.p1_23
-var lcd_en = new RPiPin.p1_21
-var lcd_d4 = new RPiPin.p1_19
-var lcd_d5 = new RPiPin.p1_26
-var lcd_d6 = new RPiPin.p1_24
-var lcd_d7 = new RPiPin.p1_22
-var lcd = new HD44780(lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7)
-lcd.setup
-lcd.clear
-
-var last_in = false
-var led_on = false
-var tick = 0
-loop
- var force_lcd_update = false
-
- # play button
- var lev = inp.lev
- if lev != last_in then
- last_in = lev
- if lev then hit_play_stop
- force_lcd_update = true
+ # Playlist a button
+ but_playlist_a = new Switch(new RPiPin.p1_15, new PUDControl.down)
+
+ # Vol +
+ var vol3 = new RPiPin.p1_03
+ vol3.fsel = new FunctionSelect.inpt
+ vol3.pud = new PUDControl.up
+
+ # Vol -
+ var vol5 = new RPiPin.p1_05
+ vol5.fsel = new FunctionSelect.inpt
+ vol5.pud = new PUDControl.up
+
+ vol = new RotaryEncoder(vol3,vol5)
+
+ # LCD
+ var lcd_rs = new RPiPin.p1_23
+ var lcd_en = new RPiPin.p1_21
+ var lcd_d4 = new RPiPin.p1_19
+ var lcd_d5 = new RPiPin.p1_26
+ var lcd_d6 = new RPiPin.p1_24
+ var lcd_d7 = new RPiPin.p1_22
+ lcd = new HD44780(lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7)
+ lcd.setup
+ lcd.clear
+
+ lcd_backlight = new RPiPin.p1_18
+ lcd_backlight.fsel = new FunctionSelect.outp
+
+ # Buzzer
+ var buzzer_pin = new RPiPin.p1_11
+ buzzer_pin.fsel = new FunctionSelect.outp
+ buzzer = new Buzzer(buzzer_pin)