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

Commit 17353cfb authored by Jin Qian's avatar Jin Qian Committed by Android (Google) Code Review
Browse files

Merge "Revert "Tie vr flinger to persistent vr mode""

parents 43063690 7480c060
Loading
Loading
Loading
Loading
+0 −28
Original line number Original line Diff line number Diff line
@@ -41,28 +41,6 @@ public:
};
};




// Must be kept in sync with interface defined in
// IPersistentVrStateCallbacks.aidl.

class IPersistentVrStateCallbacks : public IInterface {
public:
    DECLARE_META_INTERFACE(PersistentVrStateCallbacks)

    virtual void onPersistentVrStateChanged(bool enabled) = 0;
};

enum PersistentVrStateCallbacksTransaction {
    ON_PERSISTENT_VR_STATE_CHANGED = IBinder::FIRST_CALL_TRANSACTION,
};

class BnPersistentVrStateCallbacks
        : public BnInterface<IPersistentVrStateCallbacks> {
public:
    status_t onTransact(uint32_t code, const Parcel& data,
                        Parcel* reply, uint32_t flags = 0) override;
};


// Must be kept in sync with interface defined in IVrManager.aidl.
// Must be kept in sync with interface defined in IVrManager.aidl.


class IVrManager : public IInterface {
class IVrManager : public IInterface {
@@ -71,18 +49,12 @@ public:


    virtual void registerListener(const sp<IVrStateCallbacks>& cb) = 0;
    virtual void registerListener(const sp<IVrStateCallbacks>& cb) = 0;
    virtual void unregisterListener(const sp<IVrStateCallbacks>& cb) = 0;
    virtual void unregisterListener(const sp<IVrStateCallbacks>& cb) = 0;
    virtual void registerPersistentVrStateListener(
        const sp<IPersistentVrStateCallbacks>& cb) = 0;
    virtual void unregisterPersistentVrStateListener(
        const sp<IPersistentVrStateCallbacks>& cb) = 0;
    virtual bool getVrModeState() = 0;
    virtual bool getVrModeState() = 0;
};
};


enum VrManagerTransaction {
enum VrManagerTransaction {
    REGISTER_LISTENER = IBinder::FIRST_CALL_TRANSACTION,
    REGISTER_LISTENER = IBinder::FIRST_CALL_TRANSACTION,
    UNREGISTER_LISTENER,
    UNREGISTER_LISTENER,
    REGISTER_PERSISTENT_VR_STATE_LISTENER,
    UNREGISTER_PERSISTENT_VR_STATE_LISTENER,
    GET_VR_MODE_STATE,
    GET_VR_MODE_STATE,
};
};


+23 −0
Original line number Original line Diff line number Diff line
@@ -248,6 +248,29 @@ int DisplayClient::GetLastFrameEdsTransform(LateLatchOutput* ll_out) {
  return 0;
  return 0;
}
}


int DisplayClient::EnterVrMode() {
  auto status = InvokeRemoteMethod<DisplayRPC::EnterVrMode>();
  if (!status) {
    ALOGE(
        "DisplayClient::EnterVrMode: Failed to set display service to Vr mode");
    return -status.error();
  }

  return 0;
}

int DisplayClient::ExitVrMode() {
  auto status = InvokeRemoteMethod<DisplayRPC::ExitVrMode>();
  if (!status) {
    ALOGE(
        "DisplayClient::ExitVrMode: Failed to revert display service from Vr "
        "mode");
    return -status.error();
  }

  return 0;
}

std::unique_ptr<DisplaySurfaceClient> DisplayClient::CreateDisplaySurface(
std::unique_ptr<DisplaySurfaceClient> DisplayClient::CreateDisplaySurface(
    int width, int height, int format, int usage, int flags) {
    int width, int height, int format, int usage, int flags) {
  return DisplaySurfaceClient::Create(width, height, format, usage, flags);
  return DisplaySurfaceClient::Create(width, height, format, usage, flags);
+3 −0
Original line number Original line Diff line number Diff line
@@ -105,6 +105,9 @@ class DisplayClient : public pdx::ClientBase<DisplayClient> {
  // Pull the latest eds pose data from the display service renderer
  // Pull the latest eds pose data from the display service renderer
  int GetLastFrameEdsTransform(LateLatchOutput* ll_out);
  int GetLastFrameEdsTransform(LateLatchOutput* ll_out);


  int EnterVrMode();
  int ExitVrMode();

  std::unique_ptr<DisplaySurfaceClient> CreateDisplaySurface(
  std::unique_ptr<DisplaySurfaceClient> CreateDisplaySurface(
      int width, int height, int format, int usage, int flags);
      int width, int height, int format, int usage, int flags);


+4 −0
Original line number Original line Diff line number Diff line
@@ -217,6 +217,8 @@ struct DisplayRPC {
    kOpGetMetadataBuffer,
    kOpGetMetadataBuffer,
    kOpCreateVideoMeshSurface,
    kOpCreateVideoMeshSurface,
    kOpVideoMeshSurfaceCreateProducerQueue,
    kOpVideoMeshSurfaceCreateProducerQueue,
    kOpEnterVrMode,
    kOpExitVrMode,
    kOpSetViewerParams
    kOpSetViewerParams
  };
  };


@@ -243,6 +245,8 @@ struct DisplayRPC {
  PDX_REMOTE_METHOD(VideoMeshSurfaceCreateProducerQueue,
  PDX_REMOTE_METHOD(VideoMeshSurfaceCreateProducerQueue,
                    kOpVideoMeshSurfaceCreateProducerQueue,
                    kOpVideoMeshSurfaceCreateProducerQueue,
                    LocalChannelHandle(Void));
                    LocalChannelHandle(Void));
  PDX_REMOTE_METHOD(EnterVrMode, kOpEnterVrMode, int(Void));
  PDX_REMOTE_METHOD(ExitVrMode, kOpExitVrMode, int(Void));
  PDX_REMOTE_METHOD(SetViewerParams, kOpSetViewerParams,
  PDX_REMOTE_METHOD(SetViewerParams, kOpSetViewerParams,
                    void(const ViewerParams& viewer_params));
                    void(const ViewerParams& viewer_params));
};
};
+0 −50
Original line number Original line Diff line number Diff line
@@ -53,40 +53,6 @@ status_t BnVrStateCallbacks::onTransact(uint32_t code, const Parcel& data,
  return BBinder::onTransact(code, data, reply, flags);
  return BBinder::onTransact(code, data, reply, flags);
}
}


// Must be kept in sync with interface defined in
// IPersistentVrStateCallbacks.aidl.

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

  void onPersistentVrStateChanged(bool enabled) {
    Parcel data, reply;
    data.writeInterfaceToken(
        IPersistentVrStateCallbacks::getInterfaceDescriptor());
    data.writeBool(enabled);
    remote()->transact(ON_PERSISTENT_VR_STATE_CHANGED,
                       data, &reply, IBinder::FLAG_ONEWAY);
  }
};

IMPLEMENT_META_INTERFACE(PersistentVrStateCallbacks,
                         "android.service.vr.IPersistentVrStateCallbacks");

status_t BnPersistentVrStateCallbacks::onTransact(
    uint32_t code, const Parcel& data, Parcel* reply, uint32_t flags) {
  switch(code) {
    case ON_PERSISTENT_VR_STATE_CHANGED: {
      CHECK_INTERFACE(IPersistentVrStateCallbacks, data, reply);
      onPersistentVrStateChanged(data.readBool());
      return OK;
    }
  }
  return BBinder::onTransact(code, data, reply, flags);
}

// Must be kept in sync with interface defined in IVrManager.aidl.
// Must be kept in sync with interface defined in IVrManager.aidl.


class BpVrManager : public BpInterface<IVrManager> {
class BpVrManager : public BpInterface<IVrManager> {
@@ -108,22 +74,6 @@ class BpVrManager : public BpInterface<IVrManager> {
    remote()->transact(UNREGISTER_LISTENER, data, NULL);
    remote()->transact(UNREGISTER_LISTENER, data, NULL);
  }
  }


  void registerPersistentVrStateListener(
      const sp<IPersistentVrStateCallbacks>& cb) override {
    Parcel data;
    data.writeInterfaceToken(IVrManager::getInterfaceDescriptor());
    data.writeStrongBinder(IInterface::asBinder(cb));
    remote()->transact(REGISTER_PERSISTENT_VR_STATE_LISTENER, data, NULL);
  }

  void unregisterPersistentVrStateListener(
      const sp<IPersistentVrStateCallbacks>& cb) override {
    Parcel data;
    data.writeInterfaceToken(IVrManager::getInterfaceDescriptor());
    data.writeStrongBinder(IInterface::asBinder(cb));
    remote()->transact(UNREGISTER_PERSISTENT_VR_STATE_LISTENER, data, NULL);
  }

  bool getVrModeState() override {
  bool getVrModeState() override {
    Parcel data, reply;
    Parcel data, reply;
    data.writeInterfaceToken(IVrManager::getInterfaceDescriptor());
    data.writeInterfaceToken(IVrManager::getInterfaceDescriptor());
Loading