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

Commit d763c35b authored by Android Build Coastguard Worker's avatar Android Build Coastguard Worker
Browse files

Snap for 12370120 from 75071147 to 25Q2-release

Change-Id: I79bbf38d4207a5e62fbce046c44a235a14018e58
parents a9b563a2 75071147
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
#pragma once

#include <input/InputTransport.h>
#include <input/LooperInterface.h>
#include <input/Resampler.h>
#include <utils/Looper.h>

@@ -65,6 +66,16 @@ public:
 */
class InputConsumerNoResampling final {
public:
    /**
     * This constructor is exclusively for test code. Any real use of InputConsumerNoResampling must
     * use the constructor that takes an sp<Looper> parameter instead of
     * std::shared_ptr<LooperInterface>.
     */
    explicit InputConsumerNoResampling(const std::shared_ptr<InputChannel>& channel,
                                       std::shared_ptr<LooperInterface> looper,
                                       InputConsumerCallbacks& callbacks,
                                       std::unique_ptr<Resampler> resampler);

    /**
     * @param callbacks are used to interact with InputConsumerNoResampling. They're called whenever
     * the event is ready to consume.
@@ -108,7 +119,7 @@ public:

private:
    std::shared_ptr<InputChannel> mChannel;
    sp<Looper> mLooper;
    std::shared_ptr<LooperInterface> mLooper;
    InputConsumerCallbacks& mCallbacks;
    std::unique_ptr<Resampler> mResampler;

+1 −0
Original line number Diff line number Diff line
@@ -389,6 +389,7 @@ enum class InputDeviceConfigurationFileType : int32_t {
    CONFIGURATION = 0,     /* .idc file */
    KEY_LAYOUT = 1,        /* .kl file */
    KEY_CHARACTER_MAP = 2, /* .kcm file */
    ftl_last = KEY_CHARACTER_MAP,
};

/*
+6 −5
Original line number Diff line number Diff line
@@ -263,7 +263,7 @@ public:
     * Return DEAD_OBJECT if the channel's peer has been closed.
     * Other errors probably indicate that the channel is broken.
     */
    status_t sendMessage(const InputMessage* msg);
    virtual status_t sendMessage(const InputMessage* msg);

    /* Receive a message sent by the other endpoint.
     *
@@ -275,14 +275,14 @@ public:
     * Return DEAD_OBJECT if the channel's peer has been closed.
     * Other errors probably indicate that the channel is broken.
     */
    android::base::Result<InputMessage> receiveMessage();
    virtual android::base::Result<InputMessage> receiveMessage();

    /* Tells whether there is a message in the channel available to be received.
     *
     * This is only a performance hint and may return false negative results. Clients should not
     * rely on availability of the message based on the return value.
     */
    bool probablyHasInput() const;
    virtual bool probablyHasInput() const;

    /* Wait until there is a message in the channel.
     *
@@ -323,11 +323,12 @@ public:
     */
    sp<IBinder> getConnectionToken() const;

protected:
    InputChannel(const std::string name, android::base::unique_fd fd, sp<IBinder> token);

private:
    static std::unique_ptr<InputChannel> create(const std::string& name,
                                                android::base::unique_fd fd, sp<IBinder> token);

    InputChannel(const std::string name, android::base::unique_fd fd, sp<IBinder> token);
};

/*
+39 −0
Original line number Diff line number Diff line
/**
 * Copyright 2024 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#pragma once

#include <utils/Looper.h>
#include <utils/StrongPointer.h>

namespace android {

/**
 * LooperInterface allows the use of TestLooper in InputConsumerNoResampling without reassigning to
 * Looper. LooperInterface is needed to control how InputConsumerNoResampling consumes and batches
 * InputMessages.
 */
class LooperInterface {
public:
    virtual ~LooperInterface() = default;

    virtual int addFd(int fd, int ident, int events, const sp<LooperCallback>& callback,
                      void* data) = 0;
    virtual int removeFd(int fd) = 0;

    virtual sp<Looper> getLooper() const = 0;
};
} // namespace android
+4 −0
Original line number Diff line number Diff line
@@ -108,6 +108,10 @@ APerformanceHintSession* APerformanceHint_createSessionInternal(APerformanceHint
                                        const int32_t* threadIds, size_t size,
                                        int64_t initialTargetWorkDurationNanos, SessionTag tag);

/**
 * Forces FMQ to be enabled or disabled, for testing only.
 */
void APerformanceHint_setUseFMQForTesting(bool enabled);

__END_DECLS

Loading