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

Commit 38cefbe1 authored by Bill Yi's avatar Bill Yi
Browse files

Merge remote-tracking branch 'goog/stage-aosp-master' into HEAD

parents c98c6fa1 87ecf3ae
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -21,7 +21,6 @@ cc_library_shared {
        export_aidl_headers: true,
        local_include_dirs: ["aidl"],
        include_dirs: [
            "frameworks/base/core/java",
            "frameworks/native/aidl/gui",
        ],
    },
@@ -32,9 +31,11 @@ cc_library_shared {
        // include libcamera_client, at the path "aidl/package/path/BnFoo.h"
        "aidl/android/hardware/ICameraService.aidl",
        "aidl/android/hardware/ICameraServiceListener.aidl",
        "aidl/android/hardware/ICameraServiceProxy.aidl",
        "aidl/android/hardware/camera2/ICameraDeviceCallbacks.aidl",
        "aidl/android/hardware/camera2/ICameraDeviceUser.aidl",


        // Source for camera interface parcelables, and manually-written interfaces
        "Camera.cpp",
        "CameraMetadata.cpp",
@@ -43,7 +44,6 @@ cc_library_shared {
        "CameraParameters2.cpp",
        "ICamera.cpp",
        "ICameraClient.cpp",
        "ICameraServiceProxy.cpp",
        "ICameraRecordingProxy.cpp",
        "ICameraRecordingProxyListener.cpp",
        "camera2/CaptureRequest.cpp",
@@ -61,13 +61,17 @@ cc_library_shared {
        "libbinder",
        "libgui",
        "libcamera_metadata",
        "libnativewindow",
    ],

    include_dirs: [
        "system/media/private/camera/include",
        "frameworks/native/include/media/openmax",
    ],
    export_include_dirs: ["include/camera"],
    export_include_dirs: [
         "include",
         "include/camera"
    ],
    export_shared_lib_headers: ["libcamera_metadata"],

    cflags: [
@@ -75,4 +79,5 @@ cc_library_shared {
        "-Wall",
        "-Wextra",
    ],

}

camera/ICameraServiceProxy.cpp

deleted100644 → 0
+0 −73
Original line number Diff line number Diff line
/*
 * Copyright (C) 2015 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.
 */

#define LOG_TAG "BpCameraServiceProxy"

#include <stdint.h>

#include <binder/Parcel.h>

#include <camera/ICameraServiceProxy.h>

namespace android {

class BpCameraServiceProxy: public BpInterface<ICameraServiceProxy> {
public:
    explicit BpCameraServiceProxy(const sp<IBinder>& impl)
        : BpInterface<ICameraServiceProxy>(impl) {}

    virtual void pingForUserUpdate() {
        Parcel data;
        data.writeInterfaceToken(ICameraServiceProxy::getInterfaceDescriptor());
        remote()->transact(BnCameraServiceProxy::PING_FOR_USER_UPDATE, data, nullptr,
                IBinder::FLAG_ONEWAY);
    }

    virtual void notifyCameraState(String16 cameraId, CameraState newCameraState) {
        Parcel data;
        data.writeInterfaceToken(ICameraServiceProxy::getInterfaceDescriptor());
        data.writeString16(cameraId);
        data.writeInt32(newCameraState);
        remote()->transact(BnCameraServiceProxy::NOTIFY_CAMERA_STATE, data, nullptr,
                IBinder::FLAG_ONEWAY);
    }

};


IMPLEMENT_META_INTERFACE(CameraServiceProxy, "android.hardware.ICameraServiceProxy");

status_t BnCameraServiceProxy::onTransact(uint32_t code, const Parcel& data, Parcel* reply,
        uint32_t flags) {
    switch(code) {
        case PING_FOR_USER_UPDATE: {
            CHECK_INTERFACE(ICameraServiceProxy, data, reply);
            pingForUserUpdate();
            return NO_ERROR;
        } break;
        case NOTIFY_CAMERA_STATE: {
            CHECK_INTERFACE(ICameraServiceProxy, data, reply);
            String16 cameraId = data.readString16();
            CameraState newCameraState =
                static_cast<CameraState>(data.readInt32());
            notifyCameraState(cameraId, newCameraState);
            return NO_ERROR;
        } break;
        default:
            return BBinder::onTransact(code, data, reply, flags);
    }
}
}; // namespace android
+18 −2
Original line number Diff line number Diff line
@@ -31,7 +31,23 @@ interface ICameraServiceProxy
    oneway void pingForUserUpdate();

    /**
     * Update the status of a camera device
     * Values for notifyCameraState newCameraState
     */
     oneway void notifyCameraState(String cameraId, int newCameraState);
    const int CAMERA_STATE_OPEN = 0;
    const int CAMERA_STATE_ACTIVE = 1;
    const int CAMERA_STATE_IDLE = 2;
    const int CAMERA_STATE_CLOSED = 3;

    /**
     * Values for notifyCameraState facing
     */
    const int CAMERA_FACING_BACK = 0;
    const int CAMERA_FACING_FRONT = 1;
    const int CAMERA_FACING_EXTERNAL = 2;

    /**
     * Update the status of a camera device.
     */
    oneway void notifyCameraState(String cameraId, int facing, int newCameraState,
            String clientName);
}
+701 −386

File changed.

Preview size limit exceeded, changes collapsed.

+28 −11
Original line number Diff line number Diff line
@@ -245,6 +245,11 @@ sp<IDrmPlugin> DrmHal::makeDrmPlugin(const sp<IDrmFactory>& factory,
                plugin = hPlugin;
            }
        );

    if (!hResult.isOk()) {
        ALOGE("createPlugin remote call failed");
    }

    return plugin;
}

@@ -395,9 +400,12 @@ status_t DrmHal::createPlugin(const uint8_t uuid[16],

    if (mPlugin == NULL) {
        mInitCheck = ERROR_UNSUPPORTED;
    } else {
        if (!mPlugin->setListener(this).isOk()) {
            mInitCheck = DEAD_OBJECT;
        } else {
            mInitCheck = OK;
        mPlugin->setListener(this);
        }
    }

    return mInitCheck;
@@ -411,12 +419,14 @@ status_t DrmHal::destroyPlugin() {
    }

    setListener(NULL);
    mInitCheck = NO_INIT;

    if (mPlugin != NULL) {
        mPlugin->setListener(NULL);
        if (!mPlugin->setListener(NULL).isOk()) {
            mInitCheck = DEAD_OBJECT;
        }
    }
    mPlugin.clear();
    mInitCheck = NO_INIT;

    return OK;
}

@@ -472,12 +482,15 @@ status_t DrmHal::closeSession(Vector<uint8_t> const &sessionId) {
        return mInitCheck;
    }

    Status status = mPlugin->closeSession(toHidlVec(sessionId));
    Return<Status> status = mPlugin->closeSession(toHidlVec(sessionId));
    if (status.isOk()) {
        if (status == Status::OK) {
            DrmSessionManager::Instance()->removeSession(sessionId);
        }
        return toStatusT(status);
    }
    return DEAD_OBJECT;
}

status_t DrmHal::getKeyRequest(Vector<uint8_t> const &sessionId,
        Vector<uint8_t> const &initData, String8 const &mimeType,
@@ -962,12 +975,16 @@ status_t DrmHal::signRSA(Vector<uint8_t> const &sessionId,
void DrmHal::binderDied(const wp<IBinder> &the_late_who __unused)
{
    Mutex::Autolock autoLock(mLock);

    setListener(NULL);
    mInitCheck = NO_INIT;

    if (mPlugin != NULL) {
        mPlugin->setListener(NULL);
        if (!mPlugin->setListener(NULL).isOk()) {
            mInitCheck = DEAD_OBJECT;
        }
    }
    mPlugin.clear();
    mInitCheck = NO_INIT;
}

void DrmHal::writeByteArray(Parcel &obj, hidl_vec<uint8_t> const &vec)
Loading