gralloc: Implement getters in QTIMapper 1.1

Add getters for members of private handle structure.

CRs-Fixed: 2411578
Change-Id: Ic683eaa233149f302a5cb913c5fb701f117f2058
diff --git a/gralloc/QtiMapper.cpp b/gralloc/QtiMapper.cpp
index a885a7b..dc1b40c 100644
--- a/gralloc/QtiMapper.cpp
+++ b/gralloc/QtiMapper.cpp
@@ -40,7 +40,6 @@
 namespace hardware {
 namespace display {
 namespace mapper {
-namespace V1_0 {
 namespace implementation {
 
 using gralloc::BufferInfo;
@@ -393,6 +392,152 @@
   return err;
 }
 
+#ifdef QTI_MAPPER_1_1
+Return<void> QtiMapper::getFd(void *buffer, getFd_cb hidl_cb) {
+  auto err = Error::BAD_BUFFER;
+  int fd = 0;
+  auto hnd = static_cast<private_handle_t *>(buffer);
+  if (buffer != nullptr && private_handle_t::validate(hnd) == 0) {
+    err = Error::NONE;
+    fd = hnd->fd;
+  }
+  hidl_cb(err, fd);
+  return Void();
+}
+
+Return<void> QtiMapper::getWidth(void *buffer, getWidth_cb hidl_cb) {
+  auto err = Error::BAD_BUFFER;
+  int width = 0;
+  auto hnd = static_cast<private_handle_t *>(buffer);
+  if (buffer != nullptr && private_handle_t::validate(hnd) == 0) {
+    err = Error::NONE;
+    width = hnd->width;
+  }
+  hidl_cb(err, width);
+  return Void();
+}
+
+Return<void> QtiMapper::getHeight(void *buffer, getHeight_cb hidl_cb) {
+  auto err = Error::BAD_BUFFER;
+  int height = 0;
+  auto hnd = static_cast<private_handle_t *>(buffer);
+  if (buffer != nullptr && private_handle_t::validate(hnd) == 0) {
+    err = Error::NONE;
+    height = hnd->height;
+  }
+  hidl_cb(err, height);
+  return Void();
+}
+
+Return<void> QtiMapper::getFormat(void *buffer, getFormat_cb hidl_cb) {
+  auto err = Error::BAD_BUFFER;
+  int format = 0;
+  auto hnd = static_cast<private_handle_t *>(buffer);
+  if (buffer != nullptr && private_handle_t::validate(hnd) == 0) {
+    err = Error::NONE;
+    format = hnd->format;
+  }
+  hidl_cb(err, format);
+  return Void();
+}
+
+Return<void> QtiMapper::getPrivateFlags(void *buffer, getPrivateFlags_cb hidl_cb) {
+  auto err = Error::BAD_BUFFER;
+  int flags = 0;
+  auto hnd = static_cast<private_handle_t *>(buffer);
+  if (buffer != nullptr && private_handle_t::validate(hnd) == 0) {
+    err = Error::NONE;
+    flags = hnd->flags;
+  }
+  hidl_cb(err, flags);
+  return Void();
+}
+
+Return<void> QtiMapper::getUnalignedWidth(void *buffer, getUnalignedWidth_cb hidl_cb) {
+  auto err = Error::BAD_BUFFER;
+  int unaligned_width = 0;
+  auto hnd = static_cast<private_handle_t *>(buffer);
+  if (buffer != nullptr && private_handle_t::validate(hnd) == 0) {
+    err = Error::NONE;
+    unaligned_width = hnd->unaligned_width;
+  }
+  hidl_cb(err, unaligned_width);
+  return Void();
+}
+
+Return<void> QtiMapper::getUnalignedHeight(void *buffer, getUnalignedHeight_cb hidl_cb) {
+  auto err = Error::BAD_BUFFER;
+  int unaligned_height = 0;
+  auto hnd = static_cast<private_handle_t *>(buffer);
+  if (buffer != nullptr && private_handle_t::validate(hnd) == 0) {
+    err = Error::NONE;
+    unaligned_height = hnd->unaligned_height;
+  }
+  hidl_cb(err, unaligned_height);
+  return Void();
+}
+
+Return<void> QtiMapper::getLayerCount(void *buffer, getLayerCount_cb hidl_cb) {
+  auto err = Error::BAD_BUFFER;
+  unsigned int layer_count = 0;
+  auto hnd = static_cast<private_handle_t *>(buffer);
+  if (buffer != nullptr && private_handle_t::validate(hnd) == 0) {
+    err = Error::NONE;
+    layer_count = hnd->layer_count;
+  }
+  hidl_cb(err, layer_count);
+  return Void();
+}
+
+Return<void> QtiMapper::getId(void *buffer, getId_cb hidl_cb) {
+  auto err = Error::BAD_BUFFER;
+  uint64_t id = 0;
+  auto hnd = static_cast<private_handle_t *>(buffer);
+  if (buffer != nullptr && private_handle_t::validate(hnd) == 0) {
+    err = Error::NONE;
+    id = hnd->id;
+  }
+  hidl_cb(err, id);
+  return Void();
+}
+
+Return<void> QtiMapper::getUsageFlags(void *buffer, getUsageFlags_cb hidl_cb) {
+  auto err = Error::BAD_BUFFER;
+  uint64_t usage = 0;
+  auto hnd = static_cast<private_handle_t *>(buffer);
+  if (buffer != nullptr && private_handle_t::validate(hnd) == 0) {
+    err = Error::NONE;
+    usage = hnd->usage;
+  }
+  hidl_cb(err, usage);
+  return Void();
+}
+
+Return<void> QtiMapper::getSize(void *buffer, getSize_cb hidl_cb) {
+  auto err = Error::BAD_BUFFER;
+  unsigned int size = 0;
+  auto hnd = static_cast<private_handle_t *>(buffer);
+  if (buffer != nullptr && private_handle_t::validate(hnd) == 0) {
+    err = Error::NONE;
+    size = hnd->size;
+  }
+  hidl_cb(err, size);
+  return Void();
+}
+
+Return<void> QtiMapper::getOffset(void *buffer, getOffset_cb hidl_cb) {
+  auto err = Error::BAD_BUFFER;
+  unsigned int offset = 0;
+  auto hnd = static_cast<private_handle_t *>(buffer);
+  if (buffer != nullptr && private_handle_t::validate(hnd) == 0) {
+    err = Error::NONE;
+    offset = hnd->offset;
+  }
+  hidl_cb(err, offset);
+  return Void();
+}
+#endif
+
 // Methods from ::android::hidl::base::V1_0::IBase follow.
 
 // When we are in passthrough mode, this method is used
@@ -409,7 +554,6 @@
 }
 
 }  // namespace implementation
-}  // namespace V1_0
 }  // namespace mapper
 }  // namespace display
 }  // namespace hardware