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

Commit 412ff42f authored by Yixiao Luo's avatar Yixiao Luo
Browse files

TV Input 2.0 JNI

test: mmm, cts
bug: 227673740
Change-Id: I8ea16727f0dd437de9c9019bb2e8b88b911181a4
parent bc1cd9c1
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -31,6 +31,9 @@ cc_library_static {
        "BroadcastRadio/convert.cpp",
        "BroadcastRadio/regions.cpp",
        "stats/SurfaceFlingerPuller.cpp",
        "tvinput/BufferProducerThread.cpp",
        "tvinput/JTvInputHal.cpp",
        "tvinput/TvInputHal_hidl.cpp",
        "com_android_server_adb_AdbDebuggingManager.cpp",
        "com_android_server_am_BatteryStatsService.cpp",
        "com_android_server_biometrics_SurfaceToNativeHandleConverter.cpp",
@@ -149,6 +152,7 @@ cc_defaults {
        "libdataloader",
        "libincfs",
        "android.hardware.audio.common@2.0",
        "android.media.audio.common.types-V1-ndk",
        "android.hardware.broadcastradio@1.0",
        "android.hardware.broadcastradio@1.1",
        "android.hardware.contexthub@1.0",
@@ -175,6 +179,7 @@ cc_defaults {
        "android.hardware.power.stats-V1-ndk",
        "android.hardware.thermal@1.0",
        "android.hardware.tv.input@1.0",
        "android.hardware.tv.input-V1-ndk",
        "android.hardware.vibrator-V2-cpp",
        "android.hardware.vibrator@1.0",
        "android.hardware.vibrator@1.1",
@@ -195,6 +200,7 @@ cc_defaults {

    static_libs: [
        "android.hardware.broadcastradio@common-utils-1x-lib",
        "libaidlcommonsupport",
    ],

    product_variables: {
+6 −568

File changed.

Preview size limit exceeded, changes collapsed.

+147 −0

File added.

Preview size limit exceeded, changes collapsed.

+56 −0
Original line number Diff line number Diff line
/*
 * Copyright 2022 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 <gui/Surface.h>
#include <hardware/tv_input.h>
#include <utils/Thread.h>

namespace android {

class BufferProducerThread : public Thread {
public:
    BufferProducerThread(tv_input_device_t* device, int deviceId, const tv_stream_t* stream);

    virtual status_t readyToRun();

    void setSurface(const sp<Surface>& surface);
    void onCaptured(uint32_t seq, bool succeeded);
    void shutdown();

private:
    Mutex mLock;
    Condition mCondition;
    sp<Surface> mSurface;
    tv_input_device_t* mDevice;
    int mDeviceId;
    tv_stream_t mStream;
    sp<ANativeWindowBuffer_t> mBuffer;
    enum {
        CAPTURING,
        CAPTURED,
        RELEASED,
    } mBufferState;
    uint32_t mSeq;
    bool mShutdown;

    virtual bool threadLoop();

    void setSurfaceLocked(const sp<Surface>& surface);
};

} // namespace android
+378 −0

File added.

Preview size limit exceeded, changes collapsed.

Loading