Merge Tizen 2.0 dev to RSA
authorsh.pi <sh.pi@samsung.com>
Wed, 22 Aug 2012 05:07:33 +0000 (14:07 +0900)
committersh.pi <sh.pi@samsung.com>
Wed, 22 Aug 2012 05:07:33 +0000 (14:07 +0900)
debian/changelog
pm.c
pmapi.h

index d443e08..f1d9431 100755 (executable)
@@ -1,3 +1,11 @@
+libslp-pm (1.2.4-21) unstable; urgency=low
+
+  * Add parameters for pm_lock_state() : HOLD_KEY_BLOCK
+  * Git: slp/pkgs/l/libslp-pm
+  * Tag: libslp-pm_1.2.4-21
+
+ -- Seunghun Pi <sh.pi@samsung.com>  Sun, 29 Jul 2012 16:17:27 +0900
+
 libslp-pm (1.2.4-20) unstable; urgency=low
 
   * source clean up (remove unnecessary comments, and so on)
diff --git a/pm.c b/pm.c
index 32cfe59..90b7430 100644 (file)
--- a/pm.c
+++ b/pm.c
@@ -35,6 +35,7 @@
 #define SHIFT_UNLOCK                   4
 #define SHIFT_UNLOCK_PARAMETER         12
 #define SHIFT_CHANGE_STATE             8
+#define SHIFT_HOLD_KEY_BLOCK           16
 #define TIMEOUT_RESET_BIT              0x80
 
 struct pwr_msg {
@@ -113,6 +114,9 @@ API int pm_lock_state(unsigned int s_bits, unsigned int flag,
        if (flag & GOTO_STATE_NOW)
                /* if the flag is true, go to the locking state directly */
                s_bits = s_bits | (s_bits << SHIFT_CHANGE_STATE);
+       if (flag & HOLD_KEY_BLOCK)
+               s_bits = s_bits | (1 << SHIFT_HOLD_KEY_BLOCK);
+
        return send_msg(s_bits, timeout);
 }
 
diff --git a/pmapi.h b/pmapi.h
index fbd9c6c..8efb250 100644 (file)
--- a/pmapi.h
+++ b/pmapi.h
@@ -100,8 +100,9 @@ extern "C" {
 #define SETALL (LCD_DIM | LCD_OFF | LCD_NORMAL)        /*< select all state - not supported yet */
 
 /* parameters for pm_lock_state() */
-#define GOTO_STATE_NOW 0x1
 #define STAY_CUR_STATE 0x0
+#define GOTO_STATE_NOW 0x1
+#define HOLD_KEY_BLOCK 0x2
 
 /* paramters for pm_unlcok_state() - details are described at 162 line */
 #define PM_SLEEP_MARGIN        0x0     /**< keep guard time for unlock */
@@ -115,13 +116,20 @@ extern "C" {
  * @brief This API is used to lock a particular power-state as the current power-state.\n
  *             The parameter state specifies the power state which you want to lock LCD_NORMAL, LCD_DIM, LCD_OFF. \n
  *             The second parameter Flag is set if you want to go the requested lock state directly.\n
- *             The third parameter timeout specifies lock-timeout in milliseconds. 
+ *             The third parameter timeout specifies lock-timeout in milliseconds.
  *             If the value 0 is selected, the power state remains locked until pm_unlock_state is called.
  * @param[in] state target power state which you want to lock - LCD_NORMAL, LCD_DIM, LCD_OFF
- * @param[in] flag set if you want to go the lock state directly - GOTO_STATE_NOW, STAY_CUR_STATE
- * @param[in] timeout lock-timeout in miliseconds. 
+ * @param[in] flag set if you want to go the lock state directly
+ *             GOTO_STATE_NOW - State is changed directly you want to lock.
+ *             STAY_CUR_STATE - State is not changed directly and phone stay current state until timeout expired.
+ *                              (Default if there is no value in flag.)
+ *             HOLD_KEY_BLOCK - Hold key is blocked during locking LCD_NORMAL or LCD_DIM.
+ *                              Then LCD state transition to LCD_OFF is blocked.
+ *                              If this flag is not set, phone state is lcd off after pressing hold key.
+ *             GOTO_STATE_NOW and STAY_CUR_STATE can't be applied at the same time.
+ * @param[in] timeout lock-timeout in miliseconds.
  *                                       0 is always lock until calling pm_unlock_state
- *                                       If you call this function with same state in duplicate, 
+ *                                       If you call this function with same state in duplicate,
  *                                       only last one will be processed and others are ignored.
  * @return 0 on success, -1 if failed
  * @see pm_unlock_state(), pm_change_state()