Exemplo n.º 1
0
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;
}
Exemplo n.º 2
0
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;
}
Exemplo n.º 3
0
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;
}