bool ActionBlueTooth::activateDifferent(const Rule::IdType &ruleId, const RuleAction &rule) { Q_UNUSED(ruleId) qDebug("ActionBlueTooth::activate: %d", rule.getBlueToothMode()); // Quick hack to get compile on Desktop. Problem fixed in qt-mobility master bool activated = true; #ifdef __arm__ int blueToothMode = rule.getBlueToothMode(); if (useRestoreAction(ruleId, blueToothMode >= 0, _previousMode >= 0)) { qDebug("ActionBlueTooth::activate restore, blueTooth not set or is default rule"); qDebug("ActionBlueTooth::activate previous rule had restore, restoring %d", _previousMode); blueToothMode = _previousMode; _previousMode = -1; // Restore is not returned as activation activated = false; } else if (blueToothMode < 0) { qDebug("ActionBlueTooth::activate not setting"); return false; } if (rule.getRestoreBlueToothMode()) { switch (_bt.hostMode()) { case QBluetoothLocalDevice::HostPoweredOff: _previousMode = 0; break; case QBluetoothLocalDevice::HostConnectable: _previousMode = 1; break; case QBluetoothLocalDevice::HostDiscoverable: _previousMode = 2; break; default: qWarning("ActionBlueTooth::activate unrecognized getHostMode() %d", _bt.hostMode()); _previousMode = -1; } } else { _previousMode = -1; } switch (blueToothMode) { case 0: _bt.setHostMode(QBluetoothLocalDevice::HostPoweredOff); break; case 1: _bt.setHostMode(QBluetoothLocalDevice::HostConnectable); break; case 2: _bt.setHostMode(QBluetoothLocalDevice::HostDiscoverable); break; default: return false; } #endif return activated; }
bool ActionDeviceVolume::activateDifferent(const Rule::IdType &ruleId, const RuleAction &rule) { int deviceVolume = rule.getDeviceVolume(); bool activated = true; if (useRestoreAction(ruleId, deviceVolume >= 0, _previousDeviceVolume >= 0)) { IFDEBUG(qDebug() << Q_FUNC_INFO << "restore, deviceVolume not set or is default rule"); IFDEBUG(qDebug() << Q_FUNC_INFO << "previous rule had restore deviceVolume, restoring deviceVolume" << _previousDeviceVolume); deviceVolume = _previousDeviceVolume; _previousDeviceVolume = -1; // Restore is not returned as activation activated = false; } else if (deviceVolume < 0) { IFDEBUG(qDebug() << Q_FUNC_INFO << "not setting device volume"); return false; } if (rule.getRestoreDeviceVolume()) { _previousDeviceVolume = PlatformUtil::instance()->deviceVolume(); } else { _previousDeviceVolume= -1; } IFDEBUG(qDebug() << Q_FUNC_INFO << "Setting" << deviceVolume); PlatformUtil::instance()->setDeviceVolume(deviceVolume); return activated; }
bool ActionProfile::activateDifferent(const Rule::IdType &ruleId, const RuleAction &rule) { QString profile = rule.getProfile(); int profileVolume = rule.getProfileVolume(); bool profileIsEmpty = profile.trimmed().isEmpty(); bool activated = true; if (useRestoreAction(ruleId, !profileIsEmpty, !_previousProfile.isEmpty())) { IFDEBUG(qDebug("ActionProfile::activate restore, profile not set or is default rule")); IFDEBUG(qDebug("ActionProfile::activate previous rule had restore profile, restoring profile %s", qPrintable(_previousProfile))); profile = _previousProfile; profileVolume = _previousVolume; _previousProfile = ""; _previousVolume = -1; // Restore is not returned as activation activated = false; } else if (profileIsEmpty) { IFDEBUG(qDebug("ActionProfile::activate profile is empty, not setting")); return false; } if (rule.getRestoreProfile()) { _previousProfile = _profileClient->getProfile(); _previousVolume = _profileClient->getProfileVolume(_previousProfile); } else { _previousProfile = ""; _previousVolume = -1; } IFDEBUG(qDebug("ActionProfile::activateRule profile %s, volume %d (previous %s/%d)", qPrintable(profile), profileVolume, qPrintable(_previousProfile), _previousVolume)); _profileClient->setProfile(profile); // IMPROVE: hard-coded for now only profile "general" to have volume. // Should do something better. Also there's duplication, qmlprofilesmodel // also has same kind of code to determine if volume available. Maybe // move to profileclient.cpp if (profile.toLower() == "general" && profileVolume > -1 && profileVolume <= 100) { _profileClient->setProfileVolume(profile, profileVolume); } return activated; }