embody 'pm' in libdeviced. 66/14366/3
authorjy910.yun <jy910.yun@samsung.com>
Mon, 24 Jun 2013 05:28:27 +0000 (14:28 +0900)
committerKrzysztof Sasiak <k.sasiak@samsung.com>
Tue, 7 Jan 2014 12:45:42 +0000 (13:45 +0100)
Change-Id: I6c27fc93a205084053814cfc3a59d481e5c3d6c5
Signed-off-by: Krzysztof Sasiak <k.sasiak@samsung.com>
CMakeLists.txt
libslp-pm/CMakeLists.txt
libslp-pm/pm.c
src/deviced/dd-display.h
src/shared/display.c

index 61d34d3..2e428d8 100755 (executable)
@@ -52,7 +52,8 @@ SET(DEVICED_HEADERS
        src/deviced/dd-display.h
        src/deviced/dd-led.h)
 
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR} 
+INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}
+               ${CMAKE_CURRENT_SOURCE_DIR}/display 
                ${CMAKE_CURRENT_SOURCE_DIR}/src 
                ${CMAKE_CURRENT_SOURCE_DIR}/src/deviced 
                ${CMAKE_CURRENT_SOURCE_DIR}/sysman
index 6667365..d2689b1 100644 (file)
@@ -22,7 +22,8 @@ ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"")
 
 SET(CMAKE_LDFLAGS "-Wl,zdefs")
 ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS})
-TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkg_LDFLAGS})
+ADD_DEPENDENCIES(${PROJECT_NAME} ${DEVICED_NAME})
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkg_LDFLAGS} -L${CMAKE_BINARY_DIR} -ldeviced)
 SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION ${VERSION})
 SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES VERSION ${VERSION})
 
index 90b7430..0ffa9a2 100644 (file)
  *
 */ 
 
-
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/un.h>
-#include <unistd.h>
-#include <stdio.h>
-#include <errno.h>
-#include <linux/limits.h>
-
+#include <dd-display.h>
 #include "pmapi.h"
 #include "pm.h"
 
-#define SOCK_PATH                      "/tmp/pm_sock"
-#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 {
-       pid_t pid;
-       unsigned int cond;
-       unsigned int timeout;
-};
-
-static int send_msg(unsigned int s_bits, unsigned int timeout)
-{
-       int rc = 0;
-       int sock;
-       struct pwr_msg p;
-       struct sockaddr_un remote;
-
-       p.pid = getpid();
-       p.cond = s_bits;
-       p.timeout = timeout;
-
-       sock = socket(AF_UNIX, SOCK_DGRAM, 0);
-       if (sock == -1) {
-               ERR("pm socket() failed");
-               return -1;
-       }
-
-       remote.sun_family = AF_UNIX;
-       if(strlen(SOCK_PATH) >= sizeof(remote.sun_path)) {
-               ERR("socket path is vey long");
-               return -1;
-       }
-       strncpy(remote.sun_path, SOCK_PATH, sizeof(remote.sun_path));
-
-       rc = sendto(sock, (void *)&p, sizeof(p), 0, (struct sockaddr *)&remote,
-                   sizeof(struct sockaddr_un));
-       if (rc == -1) {
-               ERR("pm socket sendto() failed");
-       } else
-               rc = 0;
-
-       close(sock);
-       return rc;
-}
-
 API int pm_change_state(unsigned int s_bits)
 {
-       /* s_bits is LCD_NORMAL 0x1, LCD_DIM 0x2, LCD_OFF 0x4, SUSPEND 0x8
-        * Stage change to NORMAL       0x100
-        * Stage change to LCDDIM       0x200
-        * Stage change to LCDOFF       0x400
-        * Stage change to SLEEP        0x800
-        * */
-       switch (s_bits) {
-       case LCD_NORMAL:
-       case LCD_DIM:
-       case LCD_OFF:
-       case SUSPEND:
-       case POWER_OFF:
-               break;
-       default:
-               return -1;
-       }
-       return send_msg(s_bits << SHIFT_CHANGE_STATE, 0);
+       return display_change_state(s_bits);
 }
 
 API int pm_lock_state(unsigned int s_bits, unsigned int flag,
-                     unsigned int timeout)
+                   unsigned int timeout)
 {
-       switch (s_bits) {
-       case LCD_NORMAL:
-       case LCD_DIM:
-       case LCD_OFF:
-               break;
-       default:
-               return -1;
-       }
-       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);
+       return display_lock_state(s_bits, flag, timeout);
 }
 
 API int pm_unlock_state(unsigned int s_bits, unsigned int flag)
 {
-       switch (s_bits) {
-       case LCD_NORMAL:
-       case LCD_DIM:
-       case LCD_OFF:
-               break;
-       default:
-               return -1;
-       }
-
-       s_bits = (s_bits << SHIFT_UNLOCK);
-       s_bits = (s_bits | (flag << SHIFT_UNLOCK_PARAMETER));
-       return send_msg(s_bits, 0);
+       return display_unlock_state(s_bits, flag);
 }
 
index 929291e..577adab 100644 (file)
@@ -29,6 +29,23 @@ extern "C" {
  * @brief       This file provides for control of display
  */
 
+#define LCD_NORMAL     0x1   /**< NORMAL state */
+#define LCD_DIM                0x2  /**< LCD dimming state */
+#define LCD_OFF                0x4  /**< LCD off state */
+#define SUSPEND                0x8  /**< Sleep state */
+#define POWER_OFF      0x16  /**< Sleep state */
+#define SETALL (LCD_DIM | LCD_OFF | LCD_NORMAL)        /*< select all state - not supported yet */
+
+/* parameters for pm_lock_state() */
+#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 */
+#define PM_RESET_TIMER 0x1     /**< reset timer for unlock */
+#define PM_KEEP_TIMER  0x2     /**< keep timer for unlock */
+
 int display_get_count(void);
 int display_get_max_brightness(void);
 int display_get_min_brightness(void);
@@ -39,6 +56,10 @@ int display_release_brightness(void);
 int display_get_acl_status(void);
 int display_set_acl_status(int val);
 
+int display_lock_state(unsigned int, unsigned int, unsigned int);
+int display_unlock_state(unsigned int, unsigned int);
+int display_change_state(unsigned int);
+
 #ifdef __cplusplus
 }
 #endif
index d1eb642..7332ccf 100644 (file)
 #include <stdio.h>
 #include <vconf.h>
 #include <errno.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <sys/un.h>
+#include <unistd.h>
+#include <linux/limits.h>
 #include <device-node.h>
 
 #include "log.h"
 #define DISPLAY_MAX_BRIGHTNESS  100
 #define DISPLAY_MIN_BRIGHTNESS  0
 
+#define SOCK_PATH                      "/tmp/pm_sock"
+#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 {
+       pid_t pid;
+       unsigned int cond;
+       unsigned int timeout;
+};
+
 API int display_get_count(void)
 {
        int val;
@@ -205,3 +223,95 @@ API int display_set_acl_status(int val)
 
        return 0;
 }
+
+static int send_msg(unsigned int s_bits, unsigned int timeout)
+{
+       int rc = 0;
+       int sock;
+       struct pwr_msg p;
+       struct sockaddr_un remote;
+
+       p.pid = getpid();
+       p.cond = s_bits;
+       p.timeout = timeout;
+
+       sock = socket(AF_UNIX, SOCK_DGRAM, 0);
+       if (sock == -1) {
+               _E("pm socket() failed");
+               return -1;
+       }
+
+       remote.sun_family = AF_UNIX;
+       if(strlen(SOCK_PATH) >= sizeof(remote.sun_path)) {
+               _E("socket path is vey long");
+               return -1;
+       }
+       strncpy(remote.sun_path, SOCK_PATH, sizeof(remote.sun_path));
+
+       rc = sendto(sock, (void *)&p, sizeof(p), 0, (struct sockaddr *)&remote,
+                   sizeof(struct sockaddr_un));
+       if (rc == -1) {
+               _E("pm socket sendto() failed");
+       } else
+               rc = 0;
+
+       close(sock);
+       return rc;
+}
+
+API int display_change_state(unsigned int s_bits)
+{
+       /* s_bits is LCD_NORMAL 0x1, LCD_DIM 0x2, LCD_OFF 0x4, SUSPEND 0x8
+        * Stage change to NORMAL       0x100
+        * Stage change to LCDDIM       0x200
+        * Stage change to LCDOFF       0x400
+        * Stage change to SLEEP        0x800
+        * */
+       switch (s_bits) {
+       case LCD_NORMAL:
+       case LCD_DIM:
+       case LCD_OFF:
+       case SUSPEND:
+       case POWER_OFF:
+               break;
+       default:
+               return -1;
+       }
+       return send_msg(s_bits << SHIFT_CHANGE_STATE, 0);
+}
+
+API int display_lock_state(unsigned int s_bits, unsigned int flag,
+                     unsigned int timeout)
+{
+       switch (s_bits) {
+       case LCD_NORMAL:
+       case LCD_DIM:
+       case LCD_OFF:
+               break;
+       default:
+               return -1;
+       }
+       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);
+}
+
+API int display_unlock_state(unsigned int s_bits, unsigned int flag)
+{
+       switch (s_bits) {
+       case LCD_NORMAL:
+       case LCD_DIM:
+       case LCD_OFF:
+               break;
+       default:
+               return -1;
+       }
+
+       s_bits = (s_bits << SHIFT_UNLOCK);
+       s_bits = (s_bits | (flag << SHIFT_UNLOCK_PARAMETER));
+       return send_msg(s_bits, 0);
+}