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

Commit 6012f913 authored by jiabin's avatar jiabin
Browse files

Querying capability of haptic playback.

Bug: 111454766
Test: Manually test
Change-Id: Ib200d6b8f02354a01cf599a96fb1a9062dcd3050
parent 6b6a0f05
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -1315,6 +1315,13 @@ status_t AudioSystem::setA11yServicesUids(const std::vector<uid_t>& uids)
    return aps->setA11yServicesUids(uids);
}

bool AudioSystem::isHapticPlaybackSupported()
{
    const sp<IAudioPolicyService>& aps = AudioSystem::get_audio_policy_service();
    if (aps == 0) return false;
    return aps->isHapticPlaybackSupported();
}


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

+19 −0
Original line number Diff line number Diff line
@@ -88,6 +88,7 @@ enum {
    REMOVE_SOURCE_DEFAULT_EFFECT,
    SET_ASSISTANT_UID,
    SET_A11Y_SERVICES_UIDS,
    IS_HAPTIC_PLAYBACK_SUPPORTED,
};

#define MAX_ITEMS_PER_LIST 1024
@@ -970,6 +971,17 @@ public:
        return static_cast <status_t> (reply.readInt32());
    }

    virtual bool isHapticPlaybackSupported()
    {
        Parcel data, reply;
        data.writeInterfaceToken(IAudioPolicyService::getInterfaceDescriptor());
        status_t status = remote()->transact(IS_HAPTIC_PLAYBACK_SUPPORTED, data, &reply);
        if (status != NO_ERROR) {
            return false;
        }
        return reply.readBool();
    }

};

IMPLEMENT_META_INTERFACE(AudioPolicyService, "android.media.IAudioPolicyService");
@@ -1777,6 +1789,13 @@ status_t BnAudioPolicyService::onTransact(
            return NO_ERROR;
        }

        case IS_HAPTIC_PLAYBACK_SUPPORTED: {
            CHECK_INTERFACE(IAudioPolicyService, data, reply);
            bool isSupported = isHapticPlaybackSupported();
            reply->writeBool(isSupported);
            return NO_ERROR;
        }

        default:
            return BBinder::onTransact(code, data, reply, flags);
    }
+2 −0
Original line number Diff line number Diff line
@@ -346,6 +346,8 @@ public:
    static status_t setAssistantUid(uid_t uid);
    static status_t setA11yServicesUids(const std::vector<uid_t>& uids);

    static bool     isHapticPlaybackSupported();

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

    class AudioPortCallback : public RefBase
+2 −0
Original line number Diff line number Diff line
@@ -182,6 +182,8 @@ public:

    virtual status_t setAssistantUid(uid_t uid) = 0;
    virtual status_t setA11yServicesUids(const std::vector<uid_t>& uids) = 0;

    virtual bool     isHapticPlaybackSupported() = 0;
};


+2 −0
Original line number Diff line number Diff line
@@ -242,6 +242,8 @@ public:
                                        bool reported) = 0;
    virtual status_t setSurroundFormatEnabled(audio_format_t audioFormat, bool enabled) = 0;

    virtual bool     isHapticPlaybackSupported() = 0;

    virtual void     setAppState(uid_t uid, app_state_t state);
};

Loading