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
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})
*
*/
-
-#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);
}
* @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);
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
#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;
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);
+}