mirror of
https://github.com/overte-org/overte.git
synced 2025-04-14 02:48:31 +02:00
Make haptic pulse duration configurable in VirtualPadDevice
This commit is contained in:
parent
65a9b98b97
commit
8741c5e6a4
9 changed files with 18 additions and 21 deletions
|
@ -158,9 +158,9 @@ JNIEXPORT void Java_io_highfidelity_hifiinterface_InterfaceActivity_nativeOnCrea
|
||||||
__interfaceActivity.callMethod<void>("openAndroidActivity", "(Ljava/lang/String;Z)V", string.object<jstring>(), jBackToScene);
|
__interfaceActivity.callMethod<void>("openAndroidActivity", "(Ljava/lang/String;Z)V", string.object<jstring>(), jBackToScene);
|
||||||
});
|
});
|
||||||
|
|
||||||
QObject::connect(&AndroidHelper::instance(), &AndroidHelper::hapticFeedbackRequested, [](const QString &c) {
|
QObject::connect(&AndroidHelper::instance(), &AndroidHelper::hapticFeedbackRequested, [](int duration) {
|
||||||
QAndroidJniObject string = QAndroidJniObject::fromString(c);
|
jint iDuration = (jint) duration;
|
||||||
__interfaceActivity.callMethod<void>("performHapticFeedback", "(Ljava/lang/String;)V", string.object<jstring>());
|
__interfaceActivity.callMethod<void>("performHapticFeedback", "(I)V", iDuration);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -214,12 +214,9 @@ public class InterfaceActivity extends QtActivity {
|
||||||
super.isLoading = false;
|
super.isLoading = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void performHapticFeedback(String feedbackConstant) {
|
public void performHapticFeedback(int duration) {
|
||||||
switch (feedbackConstant) {
|
if (duration > 0) {
|
||||||
case "CONTEXT_CLICK":
|
mVibrator.vibrate(duration);
|
||||||
default:
|
|
||||||
mVibrator.vibrate(50);
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -45,8 +45,8 @@ void AndroidHelper::notifyLoadComplete() {
|
||||||
emit qtAppLoadComplete();
|
emit qtAppLoadComplete();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AndroidHelper::performHapticFeedback(const QString& feedbackConstant) {
|
void AndroidHelper::notifyEnterForeground() {
|
||||||
emit hapticFeedbackRequested(feedbackConstant);
|
emit enterForeground();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AndroidHelper::showLoginDialog() {
|
void AndroidHelper::showLoginDialog() {
|
||||||
|
|
|
@ -27,7 +27,7 @@ public:
|
||||||
void requestActivity(const QString &activityName, const bool backToScene);
|
void requestActivity(const QString &activityName, const bool backToScene);
|
||||||
void notifyLoadComplete();
|
void notifyLoadComplete();
|
||||||
|
|
||||||
void performHapticFeedback(const QString& feedbackConstant);
|
void performHapticFeedback(int duration);
|
||||||
|
|
||||||
QSharedPointer<AccountManager> getAccountManager() { return _accountManager; }
|
QSharedPointer<AccountManager> getAccountManager() { return _accountManager; }
|
||||||
AndroidHelper(AndroidHelper const&) = delete;
|
AndroidHelper(AndroidHelper const&) = delete;
|
||||||
|
@ -40,7 +40,7 @@ signals:
|
||||||
void androidActivityRequested(const QString &activityName, const bool backToScene);
|
void androidActivityRequested(const QString &activityName, const bool backToScene);
|
||||||
void qtAppLoadComplete();
|
void qtAppLoadComplete();
|
||||||
|
|
||||||
void hapticFeedbackRequested(const QString &feedbackConstant);
|
void hapticFeedbackRequested(int duration);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
AndroidHelper();
|
AndroidHelper();
|
||||||
|
|
|
@ -2867,8 +2867,8 @@ void Application::initializeUi() {
|
||||||
#if defined(Q_OS_ANDROID)
|
#if defined(Q_OS_ANDROID)
|
||||||
auto& virtualPadManager = VirtualPad::Manager::instance();
|
auto& virtualPadManager = VirtualPad::Manager::instance();
|
||||||
connect(&virtualPadManager, &VirtualPad::Manager::hapticFeedbackRequested,
|
connect(&virtualPadManager, &VirtualPad::Manager::hapticFeedbackRequested,
|
||||||
this, []() {
|
this, [](int duration) {
|
||||||
AndroidHelper::instance().performHapticFeedback("CONTEXT_CLICK");
|
AndroidHelper::instance().performHapticFeedback(duration);
|
||||||
});
|
});
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
|
@ -189,7 +189,7 @@ void TouchscreenVirtualPadDevice::InputDevice::update(float deltaTime, const con
|
||||||
|
|
||||||
bool TouchscreenVirtualPadDevice::InputDevice::triggerHapticPulse(float strength, float duration, controller::Hand hand) {
|
bool TouchscreenVirtualPadDevice::InputDevice::triggerHapticPulse(float strength, float duration, controller::Hand hand) {
|
||||||
auto& virtualPadManager = VirtualPad::Manager::instance();
|
auto& virtualPadManager = VirtualPad::Manager::instance();
|
||||||
virtualPadManager.requestHapticFeedback();
|
virtualPadManager.requestHapticFeedback((int) duration);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -84,8 +84,8 @@ namespace VirtualPad {
|
||||||
_jumpButtonPosition = point;
|
_jumpButtonPosition = point;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Manager::requestHapticFeedback() {
|
void Manager::requestHapticFeedback(int duration) {
|
||||||
emit hapticFeedbackRequested();
|
emit hapticFeedbackRequested(duration);
|
||||||
}
|
}
|
||||||
|
|
||||||
Instance* Manager::getLeftVirtualPad() {
|
Instance* Manager::getLeftVirtualPad() {
|
||||||
|
|
|
@ -46,7 +46,7 @@ namespace VirtualPad {
|
||||||
void setExtraBottomMargin(int margin);
|
void setExtraBottomMargin(int margin);
|
||||||
glm::vec2 getJumpButtonPosition();
|
glm::vec2 getJumpButtonPosition();
|
||||||
void setJumpButtonPosition(glm::vec2 point);
|
void setJumpButtonPosition(glm::vec2 point);
|
||||||
void requestHapticFeedback();
|
void requestHapticFeedback(int duration);
|
||||||
|
|
||||||
static const float DPI;
|
static const float DPI;
|
||||||
static const float BASE_DIAMETER_PIXELS;
|
static const float BASE_DIAMETER_PIXELS;
|
||||||
|
@ -58,7 +58,7 @@ namespace VirtualPad {
|
||||||
static const float JUMP_BTN_RIGHT_MARGIN_PIXELS;
|
static const float JUMP_BTN_RIGHT_MARGIN_PIXELS;
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void hapticFeedbackRequested();
|
void hapticFeedbackRequested(int duration);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Instance _leftVPadInstance;
|
Instance _leftVPadInstance;
|
||||||
|
|
|
@ -69,7 +69,7 @@ function shutdown() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function modeButtonPressed() {
|
function modeButtonPressed() {
|
||||||
Controller.triggerHapticPulse(Controller.findDevice("TouchscreenVirtualPad"), 0.1, 1.0, 0);
|
Controller.triggerHapticPulseOnDevice(Controller.findDevice("TouchscreenVirtualPad"), 0.1, 40.0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
function modeButtonClicked() {
|
function modeButtonClicked() {
|
||||||
|
|
Loading…
Reference in a new issue