Move vibrator together with aux
[gregoa/zavai.git] / src / audio.vala
index 7639bcb3080584e835054f3b25f4cea33a2b9f28..0a3967c8095e6c21639e1c86a46b3e2104c6f56a 100644 (file)
@@ -23,108 +23,6 @@ using GLib;
 namespace zavai {
 namespace audio {
 
-public class VibratorState
-{
-    public string name;
-    public int brightness;
-    public string trigger;
-    public int delay_on;
-    public int delay_off;
-
-    public VibratorState(string name)
-    {
-        this.name = name;
-        set_constant(0);
-    }
-
-    public void set_constant(int power)
-    {
-        brightness = power;
-        trigger = "none";
-        delay_on = 0;
-        delay_off = 0;
-    }
-
-    public void set_blink(int power, int delay_on=200, int delay_off=300)
-    {
-        brightness = power;
-        trigger = "timer";
-        this.delay_on = delay_on;
-        this.delay_off = delay_off;
-    }
-
-    public void to_omhacks(ref Omhacks.Led led)
-    {
-        led.brightness = brightness;
-        Memory.copy(led.trigger, trigger, trigger.size());
-        led.delay_on = 200;
-        led.delay_off = 300;
-    }
-}
-
-public class Vibrator : zavai.Resource, Object
-{
-    protected Omhacks.Led vibrator;
-
-    protected List<VibratorState> states;
-
-    public Vibrator() throws FileError
-    {
-        if (vibrator.init("neo1973:vibrator") != 0)
-            throw new FileError.NOENT("vibrator not found");
-
-        states = new List<VibratorState>();
-    }
-
-    public void turn_off()
-    {
-        vibrator.brightness = 0;
-        Memory.copy(vibrator.trigger, "none", 5);
-        vibrator.set();
-    }
-
-    public void push_state(VibratorState state)
-    {
-        states.prepend(state);
-        state.to_omhacks(ref vibrator);
-        vibrator.set();
-    }
-
-    public void pop_state(string name)
-    {
-        // Handle empty list
-        if (states == null) return;
-
-        // Track if the list head changed
-        weak List<VibratorState> old_top = states;
-
-        // Remove state "name" from the stack
-        for (weak List<VibratorState> i = states; i != null; i = i.next)
-            if (i.data.name == name)
-            {
-                states.delete_link(i);
-                break;
-            }
-
-        // If the list head changed, put into action the new top state
-        if (states != old_top)
-            if (states == null)
-                turn_off();
-            else {
-                // Activate the new top
-                states.data.to_omhacks(ref vibrator);
-                vibrator.set();
-            }
-    }
-
-    public void shutdown()
-    {
-        while (states != null)
-            states.delete_link(states);
-        turn_off();
-    }
-}
-
 public class Audio: zavai.Service
 {
     /*
@@ -154,11 +52,11 @@ public class Audio: zavai.Service
     public void on_alarm_trigger(clock.AlarmTriggerInfo info)
     {
         zavai.log.debug("Make noise for alarm");
-        if (vibrator != null)
+        if (zavai.led.vibrator != null)
         {
-            var state = new VibratorState("alarm");
+            var state = new zavai.led.LedState("alarm");
             state.set_blink(255);
-            vibrator.push_state(state);
+            zavai.led.vibrator.push_state(state);
         }
         soundplayer.play(config.ringtone_alarm, true);
     }
@@ -166,8 +64,8 @@ public class Audio: zavai.Service
     public void on_alarm_done(clock.AlarmTriggerInfo info)
     {
         zavai.log.debug("Stop noise for alarm");
-        if (vibrator != null)
-            vibrator.pop_state("alarm");
+        if (zavai.led.vibrator != null)
+            zavai.led.vibrator.pop_state("alarm");
         soundplayer.stop();
     }
 }
@@ -271,20 +169,12 @@ stderr.printf("Playing %s\n", uri);
     }
 }
 
-public Vibrator vibrator = null;
 public Audio audio = null;
 public Player musicplayer = null;
 public Player soundplayer = null;
 
 public void init()
 {
-    try {
-        vibrator = new Vibrator();
-        zavai.registry.register(vibrator);
-    } catch (Error e) {
-        zavai.log.info("No vibrator found");
-        vibrator = null;
-    }
     audio = new Audio();
     musicplayer = new Player();
     soundplayer = new Player();