import privileges
class PhysicalInterface
- var mpd = new MPDConnection("localhost", 6600, "password")
-
- var debug_led: RPiPin
+ var mpd = new MPDConnection(server, port, password)
+ protected fun password: String do return "password"
+ fun server: String do return "localhost"
+ fun port: Int do return 6600
var but_play: Switch
var but_playlist_a: Switch
var lcd_backlight: RPiPin
var lcd_backlight_delay = 1000
+ var buzzer: Buzzer
+
init
do
# commandline options for privileges drop
var opts = new OptionContext
- var opt_ug = new OptionDropPrivileges
+ var opt_ug = new OptionUserAndGroup.for_dropping_privileges
#opt_ug.mandatory = true
opts.add_option(opt_ug)
var user_group = opt_ug.value
if user_group != null then user_group.drop_privileges
- # Debug LED
- debug_led = new RPiPin.p1_11
- debug_led.fsel = new FunctionSelect.outp
- debug_led.write(false)
-
# Play button
but_play = new Switch(new RPiPin.p1_13, new PUDControl.down)
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)
end
fun run
do
- var led_on = false
var tick = 0
var last_event = 0
loop
print "stopped -> play"
mpd.play
end
+
+ bell
end
fun play_playlist_a
do
mpd.load_playlist("alexis")
end
+
+ fun bell do buzzer.buzz(1.5, 20)
end
var phy = new PhysicalInterface