void completeExample() { //! [Play the system theme button click effect] QFeedbackEffect::playThemeEffect(QFeedbackEffect::Press); //! [Play the system theme button click effect] //! [Play the system theme bounce effect] QFeedbackEffect::playThemeEffect(QFeedbackEffect::DragStart); //! [Play the system theme bounce effect] //! [Define a custom haptic effect] QFeedbackHapticsEffect rumble; rumble.setAttackIntensity(0.0); rumble.setAttackTime(250); rumble.setIntensity(1.0); rumble.setDuration(1000); rumble.setFadeTime(250); rumble.setFadeIntensity(0.0); //! [Define a custom haptic effect] //! [Start playing a custom haptic effect] rumble.start(); //! [Start playing a custom haptic effect] //! [Pause a custom haptic effect] rumble.pause(); //! [Pause a custom haptic effect] //! [Stop playing a custom haptic effect] rumble.stop(); //! [Stop playing a custom haptic effect] //! [Query the state of a custom haptic effect] if (rumble.state() == QFeedbackEffect::Stopped) qDebug() << "The device has stopped rumbling!"; //! [Query the state of a custom haptic effect] //! [Set the actuator which should play the custom effect] QFeedbackActuator *actuator = 0; // default system actuator QList<QFeedbackActuator*> actuators = QFeedbackActuator::actuators(); foreach (QFeedbackActuator* temp, actuators) { if (temp->name() == "ExampleActuatorName") { actuator = temp; } } rumble.setActuator(actuator); //! [Set the actuator which should play the custom effect] //! [Play a haptic effect from a file] QFeedbackFileEffect hapticTune; hapticTune.setSource(QUrl::fromLocalFile("mySavedRumble.ivt")); hapticTune.load(); hapticTune.start(); //! [Play a haptic effect from a file] }
void tst_QFeedbackPlugin::testPlugin() { QFeedbackHapticsEffect testEffect; // first get the actuators. we want to use the test plugin actuator. QFeedbackActuator* testActuator; QList<QFeedbackActuator*> actuators = QFeedbackActuator::actuators(); QCOMPARE(actuators.count(), 2); QCOMPARE(actuators.at(0)->name(), QString("test plugin")); QCOMPARE(actuators.at(0)->id(), 0); QCOMPARE(actuators.at(1)->name(), QString("5555")); QCOMPARE(actuators.at(1)->id(), 1); // make sure we found the test actuator... testActuator = actuators.at(0); QCOMPARE(testActuator->name(), QString("test plugin")); QCOMPARE(testActuator->id(), 0); // test QVERIFY(testActuator->isCapabilitySupported(QFeedbackActuator::Period)); testActuator->setEnabled(true); QVERIFY(!testActuator->isEnabled()); // the test plugin always returns enabled = false. testActuator->setEnabled(false); QVERIFY(!testActuator->isEnabled()); // the test plugin always returns enabled = false. testActuator->setEnabled(true); QVERIFY(!testActuator->isEnabled()); // the test plugin always returns enabled = false. QCOMPARE(testActuator->state(), QFeedbackActuator::Unknown); // and it always returns state = unknown. // XXX TODO: ensure that a "working" plugin returns real values.. // then, ensure that the test effect uses this actuator. testEffect.setActuator(testActuator); // it will do nothing, so stick some values in and play it. testEffect.setAttackIntensity(0.0); testEffect.setAttackTime(250); testEffect.setIntensity(1.0); testEffect.setDuration(100); testEffect.setFadeTime(250); testEffect.setFadeIntensity(0.0); testEffect.start(); QVERIFY(testEffect.state() == QFeedbackHapticsEffect::Running); testEffect.pause(); QVERIFY(testEffect.state() == QFeedbackHapticsEffect::Paused); testEffect.start(); QVERIFY(testEffect.state() == QFeedbackHapticsEffect::Running); testEffect.stop(); QVERIFY(testEffect.state() == QFeedbackHapticsEffect::Stopped); }