All pastes #730535 Raw Edit

Untitled

public text v1 · immutable
·published 2007-10-09 09:41 UTC
rendered paste body
Index: apps/lang/english.lang
===================================================================
--- apps/lang/english.lang	(revision 15033)
+++ 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 15033)
+++ apps/misc.c	(working copy)
@@ -856,6 +856,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);
@@ -887,10 +894,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;
 #endif
 #ifdef HAVE_HEADPHONE_DETECTION
Index: firmware/export/kernel.h
===================================================================
--- firmware/export/kernel.h	(revision 15033)
+++ 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 15033)
+++ firmware/export/powermgmt.h	(working copy)
@@ -174,5 +174,5 @@
 void cancel_shutdown(void);
 void shutdown_hw(void);
 void sys_poweroff(void);
-
+void send_level (void);
 #endif
Index: firmware/powermgmt.c
===================================================================
--- firmware/powermgmt.c	(revision 15033)
+++ firmware/powermgmt.c	(working copy)
@@ -74,7 +74,6 @@
 #else
 #define DEBUG_STACK 0
 #endif
-
 static int shutdown_timeout = 0;
 #if CONFIG_CHARGING >= CHARGING_MONITOR
 charge_state_type charge_state;     /* charging mode */
@@ -111,6 +110,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 +459,7 @@
     }
 
     battery_percent = level;
+    send_level ();
 }
 
 /*
@@ -1192,3 +1193,30 @@
     power_off();
 #endif /* #ifndef SIMULATOR */
 }
+
+/*Returns the battery level on certain levels.*/
+void send_level (void)
+{
+    static int send_battery_level =100;
+    if(charger_input_state ==CHARGER_UNPLUGGED)
+        send_battery_level =100;
+    if (charge_state == CHARGING)
+        send_battery_level =0;
+        if(battery_level () <=50 && battery_level () >21 && send_battery_level >90)
+        {
+            send_battery_level =85;
+            queue_broadcast(SYS_BATTERY_UPDATE, send_battery_level);
+        }
+        else if(battery_level () <=5 && battery_level () >0 && send_battery_level >80)
+        {
+            send_battery_level =70;
+            queue_broadcast(SYS_BATTERY_UPDATE, send_battery_level);
+        }
+        else if(battery_level () <=20 && battery_level () >5 && send_battery_level >65)
+        {
+            send_battery_level  =60;
+            queue_broadcast(SYS_BATTERY_UPDATE,send_battery_level);
+        }
+    if(charger_input_state ==CHARGER_PLUGGED)
+        send_battery_level =0;
+}