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

Commit f1a53140 authored by James Dong's avatar James Dong
Browse files

Fix a media server crash (bug 1807910): part one

Add a factory method that creates a Camera object from a remote client

Next:
The changes in authordriver.cpp and android_camera_input.cpp will come.
and the constructor for Camera object will be removed.
parent 7f985774
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -78,8 +78,8 @@ class Camera : public BnCameraClient, public IBinder::DeathRecipient
{
public:
            // construct a camera client from an existing remote
            Camera(const sp<ICamera>& camera);

            Camera(const sp<ICamera>& camera);  // to be removed
    static  sp<Camera>  create(const sp<ICamera>& camera);
    static  sp<Camera>  connect();
                        ~Camera();
            void        init();
+13 −0
Original line number Diff line number Diff line
@@ -75,6 +75,19 @@ Camera::Camera(const sp<ICamera>& camera)
    }
}


sp<Camera> Camera::create(const sp<ICamera>& camera)
{
    sp<Camera> c = new Camera();
    // connect this client to existing camera remote
    if (camera->connect(c) == NO_ERROR) {
        c->mStatus = NO_ERROR;
        c->mCamera = camera;
        camera->asBinder()->linkToDeath(c);
    }
    return c;
}

void Camera::init()
{
    mStatus = UNKNOWN_ERROR;