BuildRequires: pkgconfig(capi-system-peripheral-io)
BuildRequires: pkgconfig(libgdbus)
BuildRequires: pkgconfig(libsystemd)
+BuildRequires: pkgconfig(capi-system-device)
Requires(post): /usr/bin/vconftool
#include <stdlib.h>
#include <stdbool.h>
+#include <device/power.h>
#include "core/log.h"
#include "core/list.h"
struct vibration_config {
char *pattern;
+ int pattern_duration;
dd_list *data;
};
return -ENOMEM;
}
+ conf->pattern_duration = 0;
conf->pattern = strdup(result->name);
if (!conf->pattern) {
_E("fail to copy %s pattern data", result->name);
data->duration = strtol(value, NULL, 10);
len = len - strlen(value) - 1;
value = check + 1;
+ conf->pattern_duration += data->duration;
}
check = strchr(value, 'W');
data->wait = strtol(value, NULL, 10);
len = len - strlen(value) - 1;
value = check + 1;
+ conf->pattern_duration += data->wait;
}
DD_LIST_APPEND(conf->data, data);
dd_list *elem;
struct vibration_config *conf;
size_t len;
+ int ret;
if (device_handle < 0)
return -EINVAL;
cur_h_data.priority = priority;
cur_h_data.stop = false;
_D("Play %s", conf->pattern);
+
+ if (conf->pattern_duration <= 0)
+ break;
+
+ ret = device_power_request_lock(POWER_LOCK_CPU, conf->pattern_duration);
+ if (ret != DEVICE_ERROR_NONE)
+ _E("Failed to request power lock");
haptic_duration_play((void *)&cur_h_data);
break;
}