abstract_compiler: remove -lunwind if target is Darwin (macosx)
[nit.git] / contrib / physical_interface_for_mpd_on_rpi / physical_interface_for_mpd_on_rpi.nit
index c154835..d8b1785 100644 (file)
@@ -29,9 +29,10 @@ import mpd
 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
@@ -44,11 +45,13 @@ class PhysicalInterface
        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)
 
@@ -67,11 +70,6 @@ class PhysicalInterface
                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)
 
@@ -103,11 +101,15 @@ class PhysicalInterface
 
                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
@@ -197,12 +199,16 @@ class PhysicalInterface
                        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