All pastes #730556 Raw Edit

Stuff

public text v1 · immutable
#730556 ·published 2007-10-09 10:17 UTC
rendered paste body
Index: apps/lang/english.lang
===================================================================
--- apps/lang/english.lang	(revision 15044)
+++ apps/lang/english.lang	(working copy)
@@ -11389,3 +11389,33 @@
     lcd_color: "Line Selector Colours"
   </voice>
 </phrase>
+<phrase>
+  id: LANG_CHARGER_REMOVED
+  desc: Tell  the user when the charger is disconnected.
+Only for voice
+  user:
+  <source>
+    *: "Charger removed"
+  </source>
+  <dest>
+    *: "Charger removed"
+      </dest>
+  <voice>
+    *: "Charger removed"
+  </voice>
+</phrase>
+<phrase>
+  id: LANG_CHARGER_INSERTED
+  desc: Tell  the user when the charger is connected.
+Only for voice
+  user:
+  <source>
+    *: "Charger inserted"
+  </source>
+  <dest>
+    *: "Charger inserted"
+      </dest>
+  <voice>
+    *: "Charger inserted"
+  </voice>
+</phrase>
Index: apps/misc.c
===================================================================
--- apps/misc.c	(revision 15044)
+++ apps/misc.c	(working copy)
@@ -857,6 +857,13 @@
 {
     switch(event)
     {
+        case SYS_BATTERY_UPDATE:
+            if(talk_menus_enabled ())
+            {
+                talk_id(LANG_BATTERY_TIME, true);
+                talk_value(battery_level(), UNIT_PERCENT, true);
+            }
+            break;
         case SYS_USB_CONNECTED:
             if (callback != NULL)
                 callback(parameter);
@@ -888,10 +895,14 @@
 #if CONFIG_CHARGING
         case SYS_CHARGER_CONNECTED:
             car_adapter_mode_processing(true);
+            if(talk_menus_enabled ())
+                talk_id(LANG_CHARGER_INSERTED, true);
             return SYS_CHARGER_CONNECTED;
             
         case SYS_CHARGER_DISCONNECTED:
             car_adapter_mode_processing(false);
+            if(talk_menus_enabled ())
+                talk_id(LANG_CHARGER_REMOVED, true);
             return SYS_CHARGER_DISCONNECTED;
 
         case SYS_CAR_ADAPTER_RESUME:
Index: firmware/export/kernel.h
===================================================================
--- firmware/export/kernel.h	(revision 15044)
+++ firmware/export/kernel.h	(working copy)
@@ -62,6 +62,7 @@
 #define SYS_POWEROFF              MAKE_SYS_EVENT(SYS_EVENT_CLS_POWER, 0)
 #define SYS_CHARGER_CONNECTED     MAKE_SYS_EVENT(SYS_EVENT_CLS_POWER, 1)
 #define SYS_CHARGER_DISCONNECTED  MAKE_SYS_EVENT(SYS_EVENT_CLS_POWER, 2)
+#define SYS_BATTERY_UPDATE        MAKE_SYS_EVENT(SYS_EVENT_CLS_POWER, 3)
 #define SYS_FS_CHANGED            MAKE_SYS_EVENT(SYS_EVENT_CLS_FILESYS, 0)
 #define SYS_HOTSWAP_INSERTED      MAKE_SYS_EVENT(SYS_EVENT_CLS_PLUG, 0)
 #define SYS_HOTSWAP_EXTRACTED     MAKE_SYS_EVENT(SYS_EVENT_CLS_PLUG, 1)
Index: firmware/export/powermgmt.h
===================================================================
--- firmware/export/powermgmt.h	(revision 15044)
+++ firmware/export/powermgmt.h	(working copy)
@@ -174,5 +174,4 @@
 void cancel_shutdown(void);
 void shutdown_hw(void);
 void sys_poweroff(void);
-
 #endif
Index: firmware/powermgmt.c
===================================================================
--- firmware/powermgmt.c	(revision 15044)
+++ firmware/powermgmt.c	(working copy)
@@ -74,11 +74,11 @@
 #else
 #define DEBUG_STACK 0
 #endif
-
 static int shutdown_timeout = 0;
 #if CONFIG_CHARGING >= CHARGING_MONITOR
 charge_state_type charge_state;     /* charging mode */
 #endif
+static int last_sent_level = 100;
 
 #if CONFIG_CHARGING
 charger_input_state_type charger_input_state IDATA_ATTR;
@@ -95,6 +95,8 @@
 static int batt_time = BATT_MAXRUNTIME; /* estimated remaining time in minutes */
 static time_t last_change = 0;
 
+void send_level(void);
+
 static void battery_status_update(void)
 {
     time_t          now;
@@ -111,6 +113,7 @@
         batt_level = 100 * (batt_millivolts - BATT_MINMVOLT) / (BATT_MAXMVOLT - BATT_MINMVOLT);
         batt_time = batt_level * BATT_MAXRUNTIME / 100;
     }
+    send_level();
 }
 
 void battery_read_info(int *voltage, int *level)
@@ -459,6 +462,7 @@
     }
 
     battery_percent = level;
+    send_level();
 }
 
 /*
@@ -638,6 +642,7 @@
                     return;
                 case CHARGER_PLUGGED:
                     queue_broadcast(SYS_CHARGER_CONNECTED, 0);
+                    last_sent_level = 0;
                     charger_input_state = CHARGER;
                     break;
                 case CHARGER:
@@ -649,6 +654,7 @@
                     break;
                 case CHARGER_UNPLUGGED:
                     queue_broadcast(SYS_CHARGER_DISCONNECTED, 0);
+                    last_sent_level = 100;
                     charger_input_state = NO_CHARGER;
                     break;
                 case CHARGER_PLUGGED:
@@ -1192,3 +1198,23 @@
     power_off();
 #endif /* #ifndef SIMULATOR */
 }
+
+/*Returns the battery level on certain levels.*/
+void send_level(void)
+{
+    if (batt_level <= 5 && last_sent_level > 5)
+    {
+        last_sent_level = 5;
+        queue_broadcast(SYS_BATTERY_UPDATE, batt_level);
+    }
+    if (batt_level <= 20 && last_sent_level > 20)
+    {
+        last_sent_level = 20;
+        queue_broadcast(SYS_BATTERY_UPDATE, batt_level);
+    }
+    if (batt_level <= 50 && last_sent_level > 50)
+    {
+        last_sent_level = 50;
+        queue_broadcast(SYS_BATTERY_UPDATE, batt_level);
+    }
+}