[-]
[+]
|
Changed |
_service:tar_git:qt5-feedback-haptics-droid-vibrator.changes
|
|
[-]
[+]
|
Changed |
_service:tar_git:qt5-feedback-haptics-droid-vibrator.spec
^
|
|
[-]
[+]
|
Changed |
_service:tar_git:qt5-feedback-haptics-droid-vibrator-0.0.7.tar.bz2/droid-vibrator-device.ini.example
^
|
(renamed from droid-vibrator.ini)
|
[-]
[+]
|
Changed |
_service:tar_git:qt5-feedback-haptics-droid-vibrator-0.0.7.tar.bz2/droid-vibrator.pro
^
|
@@ -12,11 +12,7 @@
CONFIG += link_pkgconfig
PKGCONFIG += android-headers libhardware libvibrator
-DEFINES += 'DROID_VIBRATOR_SETTINGS=\'\"$$[QT_INSTALL_PLUGINS]/feedback/droid-vibrator.ini\"\''
-
-settings.files = droid-vibrator.ini
-settings.path = $$[QT_INSTALL_PLUGINS]/feedback
-INSTALLS += settings
+DEFINES += 'DROID_VIBRATOR_SETTINGS=\'\"$$[QT_INSTALL_PLUGINS]/feedback/droid-vibrator-device.ini\"\''
target.path = $$[QT_INSTALL_PLUGINS]/feedback
INSTALLS += target
|
[-]
[+]
|
Changed |
_service:tar_git:qt5-feedback-haptics-droid-vibrator-0.0.7.tar.bz2/qfeedback.cpp
^
|
@@ -49,9 +49,7 @@
#include <QtCore/QSettings>
#include <QtCore/QLoggingCategory>
-#include <hardware_legacy/vibrator.h>
-
-Q_LOGGING_CATEGORY(qtFeedbackDroidVibrator, "Qt.Feedback.DroidVibrator")
+Q_LOGGING_CATEGORY(qtFeedbackDroidVibrator, "qt.Feedback.DroidVibrator")
QFeedbackDroidVibrator::QFeedbackDroidVibrator(QObject *parent)
: QObject(parent)
@@ -64,9 +62,23 @@
, m_actuator(createFeedbackActuator(this, 2))
, m_activeEffect(Q_NULLPTR)
, m_actuatorEnabled(true)
+#if ANDROID_VERSION_MAJOR >= 7
+ , m_dev(NULL)
+#endif
{
qCDebug(qtFeedbackDroidVibrator) << "Initializing plugin";
+#if (ANDROID_VERSION_MAJOR >= 7)
+ struct hw_module_t *hwmod;
+
+ hw_get_module(VIBRATOR_HARDWARE_MODULE_ID, (const hw_module_t **)(&hwmod));
+ Q_ASSERT(hwmod != NULL);
+
+ if (vibrator_open(hwmod, &m_dev) < 0) {
+ qCCritical(qtFeedbackDroidVibrator) << "Unable to open vibrator device";
+ }
+#endif
+
// Defaults
m_durations[QFeedbackEffect::Press] = 20;
m_durations[QFeedbackEffect::Release] = 18;
@@ -170,7 +182,12 @@
case QFeedbackEffect::Disappear:
case QFeedbackEffect::Move:
qCDebug(qtFeedbackDroidVibrator) << "Playing effect #" << effect << "(" << m_durations[effect] << "ms)";
+#if ANDROID_VERSION_MAJOR >= 7
+ if (m_dev)
+ m_dev->vibrator_on(m_dev, m_durations[effect]);
+#else
vibrator_on(m_durations[effect]);
+#endif
return true;
default:
qCDebug(qtFeedbackDroidVibrator) << "Unknown or undefined effect #" << effect;
@@ -270,7 +287,13 @@
m_activeEffect = const_cast<QFeedbackHapticsEffect*>(effect);
m_stateChangeTimerId = QObject::startTimer(m_activeEffect->duration());
qCDebug(qtFeedbackDroidVibrator) << "Playing custom effect due to state change (" << m_activeEffect->duration() << "ms)";
+#if ANDROID_VERSION_MAJOR >= 7
+ if (m_dev)
+ m_dev->vibrator_on(m_dev, m_activeEffect->duration());
+#else
vibrator_on(m_activeEffect->duration());
+#endif
+
}
}
@@ -278,7 +301,12 @@
{
if (m_activeEffect == effect) {
qCDebug(qtFeedbackDroidVibrator) << "Stopping custom effect due to state change";
+#if ANDROID_VERSION_MAJOR >= 7
+ if (m_dev)
+ m_dev->vibrator_off(m_dev);
+#else
vibrator_off();
+#endif
killTimer(m_stateChangeTimerId);
m_activeEffect = 0;
m_stateChangeTimerId = 0;
|
[-]
[+]
|
Changed |
_service:tar_git:qt5-feedback-haptics-droid-vibrator-0.0.7.tar.bz2/qfeedback.h
^
|
@@ -49,6 +49,13 @@
#include <profile.h>
+#include <android-version.h>
+#if ANDROID_VERSION_MAJOR >= 7
+#include <hardware/vibrator.h>
+#else
+#include <hardware_legacy/vibrator.h>
+#endif
+
Q_DECLARE_LOGGING_CATEGORY(qtFeedbackDroidVibrator)
QT_BEGIN_HEADER
@@ -95,6 +102,9 @@
QFeedbackHapticsEffect *m_activeEffect;
bool m_actuatorEnabled;
int m_stateChangeTimerId;
+#if ANDROID_VERSION_MAJOR >= 7
+ vibrator_device_t *m_dev;
+#endif
};
QT_END_HEADER
|