return true;
}
-void peripheral_bus_emit_gpio_changed(PeripheralIoGdbusGpio *gpio,
- gint pin,
- gint state)
+void peripheral_bus_emit_gpio_changed(
+ PeripheralIoGdbusGpio *gpio,
+ gint pin,
+ gint value,
+ guint64 timestamp)
{
g_assert(gpio != NULL);
- peripheral_io_gdbus_gpio_emit_gpio_changed(gpio, pin, state);
+ peripheral_io_gdbus_gpio_emit_gpio_changed(gpio, pin, value, timestamp);
}
static gboolean __gpio_init(peripheral_bus_s *pb_data)
static gboolean peripheral_bus_gpio_cb(GIOChannel *io, GIOCondition condition, gpointer data)
{
peripheral_bus_gpio_s *gpio_data = (peripheral_bus_gpio_s *)data;
+ struct timeval time;
+ unsigned long long timestamp;
GIOStatus status;
gchar* strval;
int value;
|| gpio_data->edge == PERIPHERAL_GPIO_EDGE_NONE)
return TRUE;
+ gettimeofday(&time, NULL);
+
g_io_channel_seek_position(io, 0, G_SEEK_SET, NULL);
status = g_io_channel_read_line(io, &strval, NULL, NULL, NULL);
if (status != G_IO_STATUS_NORMAL) {
else if (gpio_data->edge == PERIPHERAL_GPIO_EDGE_FALLING && value == 1)
return TRUE;
- peripheral_bus_emit_gpio_changed(gpio_data->gpio_skeleton, gpio_data->pin, value);
+ timestamp = (unsigned long long)(time.tv_sec * 1000000 + time.tv_usec);
+ peripheral_bus_emit_gpio_changed(gpio_data->gpio_skeleton, gpio_data->pin, value, timestamp);
return TRUE;
}
</method>
<signal name='GpioChanged'>
<arg type='i' name='pin'/>
- <arg type='i' name='state'/>
+ <arg type='i' name='value'/>
+ <arg type='t' name='timestamp'/>
</signal>
</interface>
<interface name="org.tizen.peripheral_io.i2c">