Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c2a5c624 authored by Eric Laurent's avatar Eric Laurent Committed by android-build-merger
Browse files

Merge "audioservice: add RTT mode observer" into qt-dev am: e81a326d am: cdc2f7cb

am: a24e4d45

Change-Id: I63fe67eb0affdf9e9cccce5b7bc05864511a6396
parents 75f28c3b a24e4d45
Loading
Loading
Loading
Loading
+7 −0
Original line number Original line Diff line number Diff line
@@ -1512,6 +1512,13 @@ status_t AudioSystem::getVolumeGroupFromAudioAttributes(const AudioAttributes &a
    return aps->getVolumeGroupFromAudioAttributes(aa, volumeGroup);
    return aps->getVolumeGroupFromAudioAttributes(aa, volumeGroup);
}
}


status_t AudioSystem::setRttEnabled(bool enabled)
{
    const sp<IAudioPolicyService>& aps = AudioSystem::get_audio_policy_service();
    if (aps == 0) return PERMISSION_DENIED;
    return aps->setRttEnabled(enabled);
}

// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------


int AudioSystem::AudioPolicyServiceClient::addAudioPortCallback(
int AudioSystem::AudioPolicyServiceClient::addAudioPortCallback(
+23 −1
Original line number Original line Diff line number Diff line
@@ -104,6 +104,7 @@ enum {
    GET_VOLUME_GROUP_FOR_ATTRIBUTES,
    GET_VOLUME_GROUP_FOR_ATTRIBUTES,
    SET_ALLOWED_CAPTURE_POLICY,
    SET_ALLOWED_CAPTURE_POLICY,
    MOVE_EFFECTS_TO_IO,
    MOVE_EFFECTS_TO_IO,
    SET_RTT_ENABLED
};
};


#define MAX_ITEMS_PER_LIST 1024
#define MAX_ITEMS_PER_LIST 1024
@@ -1271,6 +1272,18 @@ public:
        volumeGroup = static_cast<volume_group_t>(reply.readInt32());
        volumeGroup = static_cast<volume_group_t>(reply.readInt32());
        return NO_ERROR;
        return NO_ERROR;
    }
    }

    virtual status_t setRttEnabled(bool enabled)
    {
        Parcel data, reply;
        data.writeInterfaceToken(IAudioPolicyService::getInterfaceDescriptor());
        data.writeInt32(static_cast<int32_t>(enabled));
        status_t status = remote()->transact(SET_RTT_ENABLED, data, &reply);
        if (status != NO_ERROR) {
           return status;
        }
        return static_cast<status_t>(reply.readInt32());
    }
};
};


IMPLEMENT_META_INTERFACE(AudioPolicyService, "android.media.IAudioPolicyService");
IMPLEMENT_META_INTERFACE(AudioPolicyService, "android.media.IAudioPolicyService");
@@ -1332,7 +1345,8 @@ status_t BnAudioPolicyService::onTransact(
        case REMOVE_UID_DEVICE_AFFINITY:
        case REMOVE_UID_DEVICE_AFFINITY:
        case GET_OFFLOAD_FORMATS_A2DP:
        case GET_OFFLOAD_FORMATS_A2DP:
        case LIST_AUDIO_VOLUME_GROUPS:
        case LIST_AUDIO_VOLUME_GROUPS:
        case GET_VOLUME_GROUP_FOR_ATTRIBUTES: {
        case GET_VOLUME_GROUP_FOR_ATTRIBUTES:
        case SET_RTT_ENABLED: {
            if (!isServiceUid(IPCThreadState::self()->getCallingUid())) {
            if (!isServiceUid(IPCThreadState::self()->getCallingUid())) {
                ALOGW("%s: transaction %d received from PID %d unauthorized UID %d",
                ALOGW("%s: transaction %d received from PID %d unauthorized UID %d",
                      __func__, code, IPCThreadState::self()->getCallingPid(),
                      __func__, code, IPCThreadState::self()->getCallingPid(),
@@ -2347,6 +2361,14 @@ status_t BnAudioPolicyService::onTransact(
            return NO_ERROR;
            return NO_ERROR;
        }
        }


        case SET_RTT_ENABLED: {
            CHECK_INTERFACE(IAudioPolicyService, data, reply);
            bool enabled = static_cast<bool>(data.readInt32());
            status_t status = setRttEnabled(enabled);
            reply->writeInt32(status);
            return NO_ERROR;
        }

        default:
        default:
            return BBinder::onTransact(code, data, reply, flags);
            return BBinder::onTransact(code, data, reply, flags);
    }
    }
+2 −0
Original line number Original line Diff line number Diff line
@@ -394,6 +394,8 @@ public:
    static status_t getVolumeGroupFromAudioAttributes(const AudioAttributes &aa,
    static status_t getVolumeGroupFromAudioAttributes(const AudioAttributes &aa,
                                                      volume_group_t &volumeGroup);
                                                      volume_group_t &volumeGroup);


    static status_t setRttEnabled(bool enabled);

    // ----------------------------------------------------------------------------
    // ----------------------------------------------------------------------------


    class AudioVolumeGroupCallback : public RefBase
    class AudioVolumeGroupCallback : public RefBase
+2 −0
Original line number Original line Diff line number Diff line
@@ -220,6 +220,8 @@ public:
    virtual status_t listAudioVolumeGroups(AudioVolumeGroupVector &groups) = 0;
    virtual status_t listAudioVolumeGroups(AudioVolumeGroupVector &groups) = 0;
    virtual status_t getVolumeGroupFromAudioAttributes(const AudioAttributes &aa,
    virtual status_t getVolumeGroupFromAudioAttributes(const AudioAttributes &aa,
                                                       volume_group_t &volumeGroup) = 0;
                                                       volume_group_t &volumeGroup) = 0;

    virtual status_t setRttEnabled(bool enabled) = 0;
};
};




+2 −2
Original line number Original line Diff line number Diff line
@@ -128,7 +128,7 @@ bool captureAudioOutputAllowed(pid_t pid, uid_t uid) {
    if (isAudioServerOrRootUid(uid)) return true;
    if (isAudioServerOrRootUid(uid)) return true;
    static const String16 sCaptureAudioOutput("android.permission.CAPTURE_AUDIO_OUTPUT");
    static const String16 sCaptureAudioOutput("android.permission.CAPTURE_AUDIO_OUTPUT");
    bool ok = PermissionCache::checkPermission(sCaptureAudioOutput, pid, uid);
    bool ok = PermissionCache::checkPermission(sCaptureAudioOutput, pid, uid);
    if (!ok) ALOGE("Request requires android.permission.CAPTURE_AUDIO_OUTPUT");
    if (!ok) ALOGV("Request requires android.permission.CAPTURE_AUDIO_OUTPUT");
    return ok;
    return ok;
}
}


@@ -149,7 +149,7 @@ bool captureHotwordAllowed(const String16& opPackageName, pid_t pid, uid_t uid)
        // IMPORTANT: Use PermissionCache - not a runtime permission and may not change.
        // IMPORTANT: Use PermissionCache - not a runtime permission and may not change.
        ok = PermissionCache::checkPermission(sCaptureHotwordAllowed, pid, uid);
        ok = PermissionCache::checkPermission(sCaptureHotwordAllowed, pid, uid);
    }
    }
    if (!ok) ALOGE("android.permission.CAPTURE_AUDIO_HOTWORD");
    if (!ok) ALOGV("android.permission.CAPTURE_AUDIO_HOTWORD");
    return ok;
    return ok;
}
}


Loading