Add pwm get_enable functions 92/129892/1
authorjino.cho <jino.cho@samsung.com>
Thu, 18 May 2017 07:59:09 +0000 (16:59 +0900)
committerjino.cho <jino.cho@samsung.com>
Thu, 18 May 2017 08:09:05 +0000 (17:09 +0900)
This patch adds get_enable functions to read current enable status.
The type of enable was changed to boolean.

Change-Id: Ida7f8437ad452f96bf29bc4a1a1d46b85b4eb50b
Signed-off-by: jino.cho <jino.cho@samsung.com>
src/daemon/peripheral_bus.c
src/daemon/peripheral_bus_pwm.c
src/daemon/peripheral_bus_pwm.h
src/daemon/peripheral_io.xml
src/interface/include/pwm.h
src/interface/pwm.c

index 04f2bee..fde68a2 100644 (file)
@@ -355,6 +355,23 @@ gboolean handle_pwm_set_enable(
        return true;
 }
 
+gboolean handle_pwm_get_enable(
+               PeripheralIoGdbusPwm *pwm,
+               GDBusMethodInvocation *invocation,
+               gint handle,
+               gpointer user_data)
+{
+       peripheral_error_e ret = PERIPHERAL_ERROR_NONE;
+       pb_pwm_data_h pwm_handle = GUINT_TO_POINTER(handle);
+       bool enable;
+
+       ret = peripheral_bus_pwm_get_enable(pwm_handle, &enable);
+
+       peripheral_io_gdbus_pwm_complete_get_enable(pwm, invocation, enable, ret);
+
+       return true;
+}
+
 gboolean handle_uart_open(
                PeripheralIoGdbusUart *uart,
                GDBusMethodInvocation *invocation,
@@ -767,6 +784,10 @@ static gboolean __pwm_init(peripheral_bus_s *pb_data)
                        "handle-set-enable",
                        G_CALLBACK(handle_pwm_set_enable),
                        pb_data);
+       g_signal_connect(pb_data->pwm_skeleton,
+                       "handle-get-enable",
+                       G_CALLBACK(handle_pwm_get_enable),
+                       pb_data);
 
        manager = g_dbus_object_manager_server_new(PERIPHERAL_GDBUS_PWM_PATH);
 
index 8c39a4f..993cf1a 100644 (file)
@@ -149,8 +149,12 @@ int peripheral_bus_pwm_get_duty_cycle(pb_pwm_data_h pwm, int *duty_cycle)
        return pwm_get_duty_cycle(pwm->device, pwm->channel, duty_cycle);
 }
 
-int peripheral_bus_pwm_set_enable(pb_pwm_data_h pwm, int enable)
+int peripheral_bus_pwm_set_enable(pb_pwm_data_h pwm, bool enable)
 {
        return pwm_set_enable(pwm->device, pwm->channel, enable);
 }
 
+int peripheral_bus_pwm_get_enable(pb_pwm_data_h pwm, bool *enable)
+{
+       return pwm_get_enable(pwm->device, pwm->channel, enable);
+}
index 14a92f2..3e528a8 100644 (file)
@@ -23,6 +23,7 @@ int peripheral_bus_pwm_set_period(pb_pwm_data_h pwm, int period);
 int peripheral_bus_pwm_get_period(pb_pwm_data_h pwm, int *period);
 int peripheral_bus_pwm_set_duty_cycle(pb_pwm_data_h pwm, int duty_cycle);
 int peripheral_bus_pwm_get_duty_cycle(pb_pwm_data_h pwm, int *duty_cycle);
-int peripheral_bus_pwm_set_enable(pb_pwm_data_h pwm, int enable);
+int peripheral_bus_pwm_set_enable(pb_pwm_data_h pwm, bool enable);
+int peripheral_bus_pwm_get_enable(pb_pwm_data_h pwm, bool *enable);
 
 #endif /* __PERIPHERAL_BUS_PWM_H__ */
index 8783128..57ad78d 100644 (file)
                </method>
                <method name="SetEnable">
                        <arg type="u" name="handle" direction="in"/>
-                       <arg type="i" name="enable" direction="in"/>
+                       <arg type="b" name="enable" direction="in"/>
+                       <arg type="i" name="result" direction="out"/>
+               </method>
+               <method name="GetEnable">
+                       <arg type="u" name="handle" direction="in"/>
+                       <arg type="b" name="enable" direction="out"/>
                        <arg type="i" name="result" direction="out"/>
                </method>
        </interface>
index d53496f..524bfa1 100644 (file)
@@ -110,7 +110,7 @@ int pwm_get_polarity(int device, int channel, pwm_polarity_e *polarity);
 * @param[in] enable pwm enable/disabled state value
 * @return On success, 0 is returned. On failure, a negative value is returned.
 */
-int pwm_set_enable(int device, int channel, int enable);
+int pwm_set_enable(int device, int channel, bool enable);
 
 /**
 * @brief pwm_get_enable() checks if pwm state is enabled.
@@ -120,6 +120,6 @@ int pwm_set_enable(int device, int channel, int enable);
 * @param[out] enable pwm enable/disabled state value
 * @return On success, 0 is returned. On failure, a negative value is returned.
 */
-int pwm_get_enable(int device, int channel, int *enable);
+int pwm_get_enable(int device, int channel, bool *enable);
 
 #endif /* __PWM_H__ */
index f3929cb..e4765f0 100644 (file)
@@ -20,6 +20,7 @@
 #include <errno.h>
 #include <fcntl.h>
 #include <unistd.h>
+#include <stdbool.h>
 
 #include "pwm.h"
 #include "peripheral_common.h"
@@ -267,7 +268,7 @@ int pwm_get_polarity(int device, int channel, pwm_polarity_e *polarity)
        return 0;
 }
 
-int pwm_set_enable(int device, int channel, int enable)
+int pwm_set_enable(int device, int channel, bool enable)
 {
        int fd, len, status;
        char pwm_buf[PWM_BUF_MAX] = {0};
@@ -295,7 +296,7 @@ int pwm_set_enable(int device, int channel, int enable)
        return 0;
 }
 
-int pwm_get_enable(int device, int channel, int *enable)
+int pwm_get_enable(int device, int channel, bool *enable)
 {
        int fd, result, status;
        char pwm_buf[PWM_BUF_MAX] = {0};
@@ -317,7 +318,7 @@ int pwm_get_enable(int device, int channel, int *enable)
                return -EIO;
        }
        result = atoi(pwm_buf);
-       enable = &result;
+       *enable = !!result;
        close(fd);
 
        return 0;