Remove unnecessary clients and rename files.

- Remove clients for obsolete services.
- Rename display protocol defs file to match purpose.
- Rename display manager client file. "impl" does not match naming
  conventions used by DVR libraries.
- Remove video mesh surface interface. This will be replaced by more
  general surface support in the unified O compositor.

Bug: 36401174
Test: Build; run cube sea.
Change-Id: Idb782623319329f6fa1b0aa45005d9fee3b9957d
diff --git a/libs/vr/libdisplay/Android.bp b/libs/vr/libdisplay/Android.bp
index de2a56e..b79c8ba 100644
--- a/libs/vr/libdisplay/Android.bp
+++ b/libs/vr/libdisplay/Android.bp
@@ -15,15 +15,13 @@
 sourceFiles = [
     "native_buffer_queue.cpp",
     "display_client.cpp",
-    "display_manager_client_impl.cpp",
-    "display_rpc.cpp",
+    "display_manager_client.cpp",
+    "display_protocol.cpp",
     "dummy_native_window.cpp",
     "gl_fenced_flush.cpp",
     "graphics.cpp",
     "late_latch.cpp",
-    "video_mesh_surface_client.cpp",
     "vsync_client.cpp",
-    "screenshot_client.cpp",
     "frame_history.cpp",
 ]
 
diff --git a/libs/vr/libdisplay/display_client.cpp b/libs/vr/libdisplay/display_client.cpp
index ef50a0f..494514d 100644
--- a/libs/vr/libdisplay/display_client.cpp
+++ b/libs/vr/libdisplay/display_client.cpp
@@ -8,7 +8,7 @@
 
 #include <mutex>
 
-#include <private/dvr/display_rpc.h>
+#include <private/dvr/display_protocol.h>
 #include <private/dvr/late_latch.h>
 #include <private/dvr/native_buffer.h>
 
diff --git a/libs/vr/libdisplay/display_manager_client_impl.cpp b/libs/vr/libdisplay/display_manager_client.cpp
similarity index 93%
rename from libs/vr/libdisplay/display_manager_client_impl.cpp
rename to libs/vr/libdisplay/display_manager_client.cpp
index 941da23..ca51ab6 100644
--- a/libs/vr/libdisplay/display_manager_client_impl.cpp
+++ b/libs/vr/libdisplay/display_manager_client.cpp
@@ -1,8 +1,8 @@
-#include "include/private/dvr/display_manager_client_impl.h"
+#include "include/private/dvr/display_manager_client.h"
 
 #include <pdx/default_transport/client_channel_factory.h>
 #include <private/dvr/buffer_hub_client.h>
-#include <private/dvr/display_rpc.h>
+#include <private/dvr/display_protocol.h>
 #include <utils/Log.h>
 
 using android::pdx::LocalChannelHandle;
diff --git a/libs/vr/libdisplay/display_rpc.cpp b/libs/vr/libdisplay/display_protocol.cpp
similarity index 84%
rename from libs/vr/libdisplay/display_rpc.cpp
rename to libs/vr/libdisplay/display_protocol.cpp
index f5693bd..e96394c 100644
--- a/libs/vr/libdisplay/display_rpc.cpp
+++ b/libs/vr/libdisplay/display_protocol.cpp
@@ -1,4 +1,4 @@
-#include "include/private/dvr/display_rpc.h"
+#include "include/private/dvr/display_protocol.h"
 
 namespace android {
 namespace dvr {
diff --git a/libs/vr/libdisplay/graphics.cpp b/libs/vr/libdisplay/graphics.cpp
index 2abdf8e..bd3ed7e 100644
--- a/libs/vr/libdisplay/graphics.cpp
+++ b/libs/vr/libdisplay/graphics.cpp
@@ -24,7 +24,6 @@
 #include <private/dvr/late_latch.h>
 #include <private/dvr/native_buffer_queue.h>
 #include <private/dvr/sensor_constants.h>
-#include <private/dvr/video_mesh_surface_client.h>
 #include <private/dvr/vsync_client.h>
 #include <private/dvr/platform_defines.h>
 
@@ -542,10 +541,6 @@
   // LateLatch support.
   std::unique_ptr<android::dvr::LateLatch> late_latch;
 
-  // Video mesh support.
-  std::vector<std::shared_ptr<android::dvr::VideoMeshSurfaceClient>>
-      video_mesh_surfaces;
-
  private:
   // ANativeWindow function implementations
   std::mutex lock_;
@@ -1533,44 +1528,3 @@
   return graphics_context->display_surface->z_order();
 }
 
-extern "C" DvrVideoMeshSurface* dvrGraphicsVideoMeshSurfaceCreate(
-    DvrGraphicsContext* graphics_context) {
-  auto display_surface = graphics_context->display_surface;
-  // A DisplaySurface must be created prior to the creation of a
-  // VideoMeshSurface.
-  LOG_ALWAYS_FATAL_IF(display_surface == nullptr);
-
-  LocalChannelHandle surface_handle = display_surface->CreateVideoMeshSurface();
-  if (!surface_handle.valid()) {
-    return nullptr;
-  }
-
-  std::unique_ptr<DvrVideoMeshSurface> surface(new DvrVideoMeshSurface);
-  surface->client =
-      android::dvr::VideoMeshSurfaceClient::Import(std::move(surface_handle));
-
-  // TODO(jwcai) The next line is not needed...
-  auto producer_queue = surface->client->GetProducerQueue();
-  return surface.release();
-}
-
-extern "C" void dvrGraphicsVideoMeshSurfaceDestroy(
-    DvrVideoMeshSurface* surface) {
-  delete surface;
-}
-
-extern "C" void dvrGraphicsVideoMeshSurfacePresent(
-    DvrGraphicsContext* graphics_context, DvrVideoMeshSurface* surface,
-    const int eye, const float* transform) {
-  volatile android::dvr::VideoMeshSurfaceMetadata* metadata =
-      surface->client->GetMetadataBufferPtr();
-
-  const uint32_t graphics_buffer_index =
-      graphics_context->current_buffer->surface_buffer_index();
-
-  for (int i = 0; i < 4; ++i) {
-    metadata->transform[graphics_buffer_index][eye].val[i] = {
-        transform[i + 0], transform[i + 4], transform[i + 8], transform[i + 12],
-    };
-  }
-}
diff --git a/libs/vr/libdisplay/include/private/dvr/display_client.h b/libs/vr/libdisplay/include/private/dvr/display_client.h
index fec2ea5..cec62af 100644
--- a/libs/vr/libdisplay/include/private/dvr/display_client.h
+++ b/libs/vr/libdisplay/include/private/dvr/display_client.h
@@ -6,7 +6,7 @@
 #include <pdx/file_handle.h>
 #include <private/dvr/buffer_hub_client.h>
 #include <private/dvr/buffer_hub_queue_client.h>
-#include <private/dvr/display_rpc.h>
+#include <private/dvr/display_protocol.h>
 
 namespace android {
 namespace dvr {
diff --git a/libs/vr/libdisplay/include/private/dvr/display_manager_client_impl.h b/libs/vr/libdisplay/include/private/dvr/display_manager_client.h
similarity index 79%
rename from libs/vr/libdisplay/include/private/dvr/display_manager_client_impl.h
rename to libs/vr/libdisplay/include/private/dvr/display_manager_client.h
index e09a440..fb2abeb 100644
--- a/libs/vr/libdisplay/include/private/dvr/display_manager_client_impl.h
+++ b/libs/vr/libdisplay/include/private/dvr/display_manager_client.h
@@ -1,10 +1,10 @@
-#ifndef ANDROID_DVR_DISPLAY_MANAGER_CLIENT_IMPL_H_
-#define ANDROID_DVR_DISPLAY_MANAGER_CLIENT_IMPL_H_
+#ifndef ANDROID_DVR_DISPLAY_MANAGER_CLIENT_H_
+#define ANDROID_DVR_DISPLAY_MANAGER_CLIENT_H_
 
 #include <vector>
 
 #include <pdx/client.h>
-#include <private/dvr/display_rpc.h>
+#include <private/dvr/display_protocol.h>
 
 namespace android {
 namespace dvr {
@@ -36,4 +36,4 @@
 }  // namespace dvr
 }  // namespace android
 
-#endif  // ANDROID_DVR_DISPLAY_MANAGER_CLIENT_IMPL_H_
+#endif  // ANDROID_DVR_DISPLAY_MANAGER_CLIENT_H_
diff --git a/libs/vr/libdisplay/include/private/dvr/display_rpc.h b/libs/vr/libdisplay/include/private/dvr/display_protocol.h
similarity index 98%
rename from libs/vr/libdisplay/include/private/dvr/display_rpc.h
rename to libs/vr/libdisplay/include/private/dvr/display_protocol.h
index 1fcfe03..d0b57e4 100644
--- a/libs/vr/libdisplay/include/private/dvr/display_rpc.h
+++ b/libs/vr/libdisplay/include/private/dvr/display_protocol.h
@@ -1,5 +1,5 @@
-#ifndef ANDROID_DVR_DISPLAY_RPC_H_
-#define ANDROID_DVR_DISPLAY_RPC_H_
+#ifndef ANDROID_DVR_DISPLAY_PROTOCOL_H_
+#define ANDROID_DVR_DISPLAY_PROTOCOL_H_
 
 #include <sys/types.h>
 
@@ -338,4 +338,4 @@
 }  // namespace dvr
 }  // namespace android
 
-#endif  // ANDROID_DVR_DISPLAY_RPC_H_
+#endif  // ANDROID_DVR_DISPLAY_PROTOCOL_H_
diff --git a/libs/vr/libdisplay/include/private/dvr/screenshot_client.h b/libs/vr/libdisplay/include/private/dvr/screenshot_client.h
deleted file mode 100644
index b6fc859..0000000
--- a/libs/vr/libdisplay/include/private/dvr/screenshot_client.h
+++ /dev/null
@@ -1,42 +0,0 @@
-#ifndef ANDROID_DVR_SCREENSHOT_CLIENT_H_
-#define ANDROID_DVR_SCREENSHOT_CLIENT_H_
-
-#include <memory>
-#include <vector>
-
-#include <pdx/client.h>
-#include <private/dvr/display_rpc.h>
-#include <system/graphics.h>
-
-namespace android {
-namespace dvr {
-
-// Represents a connection to the screenshot service, which allows capturing an
-// upcoming frame as it is being rendered to the display.
-class ScreenshotClient : public pdx::ClientBase<ScreenshotClient> {
- public:
-  int format() const { return format_; }
-
-  // Attempts to take a screenshot. If successful, sets *data to the contents
-  // of the screenshot and returns zero. Otherwise, returns a negative error
-  // code.
-  // |index| is used to match the requested buffer with various buffer layers.
-  int Take(std::vector<uint8_t>* data, int index, int* return_width,
-           int* return_height);
-
- private:
-  friend BASE;
-
-  ScreenshotClient();
-
-  // Layout information for screenshots.
-  int format_;
-
-  ScreenshotClient(const ScreenshotClient&) = delete;
-  void operator=(const ScreenshotClient&) = delete;
-};
-
-}  // namespace dvr
-}  // namespace android
-
-#endif  // ANDROID_DVR_SCREENSHOT_CLIENT_H_
diff --git a/libs/vr/libdisplay/include/private/dvr/video_mesh_surface_client.h b/libs/vr/libdisplay/include/private/dvr/video_mesh_surface_client.h
deleted file mode 100644
index 3a7f125..0000000
--- a/libs/vr/libdisplay/include/private/dvr/video_mesh_surface_client.h
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef ANDROID_DVR_VIDEO_MESH_SURFACE_CLIENT_H_
-#define ANDROID_DVR_VIDEO_MESH_SURFACE_CLIENT_H_
-
-#include <private/dvr/buffer_hub_queue_client.h>
-#include <private/dvr/display_client.h>
-
-namespace android {
-namespace dvr {
-
-class VideoMeshSurfaceClient
-    : pdx::ClientBase<VideoMeshSurfaceClient, SurfaceClient> {
- public:
-  using LocalChannelHandle = pdx::LocalChannelHandle;
-
-  // This call assumes ownership of |handle|.
-  static std::unique_ptr<VideoMeshSurfaceClient> Import(
-      LocalChannelHandle handle);
-
-  std::shared_ptr<ProducerQueue> GetProducerQueue();
-
-  // Get the shared memory metadata buffer for this video mesh surface. If it is
-  // not yet allocated, this will allocate it.
-  volatile VideoMeshSurfaceMetadata* GetMetadataBufferPtr();
-
- private:
-  friend BASE;
-
-  std::shared_ptr<ProducerQueue> producer_queue_;
-  VideoMeshSurfaceMetadata* mapped_metadata_buffer_;
-
-  explicit VideoMeshSurfaceClient(LocalChannelHandle handle);
-};
-
-}  // namespace dvr
-}  // namespace android
-
-struct DvrVideoMeshSurface {
-  std::shared_ptr<android::dvr::VideoMeshSurfaceClient> client;
-};
-
-#endif  // ANDROID_DVR_VIDEO_MESH_SURFACE_CLIENT_H_
diff --git a/libs/vr/libdisplay/screenshot_client.cpp b/libs/vr/libdisplay/screenshot_client.cpp
deleted file mode 100644
index 3ad0c68..0000000
--- a/libs/vr/libdisplay/screenshot_client.cpp
+++ /dev/null
@@ -1,66 +0,0 @@
-#include "include/private/dvr/screenshot_client.h"
-
-#include <log/log.h>
-
-#include <mutex>
-
-#include <pdx/default_transport/client_channel_factory.h>
-#include <private/dvr/display_rpc.h>
-
-using android::pdx::Transaction;
-using android::pdx::rpc::ClientPayload;
-using android::pdx::rpc::MessageBuffer;
-using android::pdx::rpc::ReplyBuffer;
-
-namespace android {
-namespace dvr {
-
-namespace {
-// Maximum supported pixels for screenshot capture. If the actual target buffer
-// is more than this, an error will be reported.
-constexpr int kMaxScreenshotPixels = 6000 * 4000;
-}  // namespace
-
-int ScreenshotClient::Take(std::vector<uint8_t>* out_image, int index,
-                           int* return_width, int* return_height) {
-  if (format_ != HAL_PIXEL_FORMAT_RGB_888) {
-    ALOGE("ScreenshotClient::Take: Unsupported layout format: format=%d",
-          format_);
-    return -ENOSYS;
-  }
-
-  // TODO(eieio): Make a cleaner way to ensure enough capacity for send or
-  // receive buffers. This method assumes TLS buffers that will maintain
-  // capacity across calls within the same thread.
-  MessageBuffer<ReplyBuffer>::Reserve(kMaxScreenshotPixels * 3);
-  auto status = InvokeRemoteMethod<DisplayScreenshotRPC::TakeScreenshot>(index);
-  if (!status) {
-    ALOGE("ScreenshotClient::Take: Failed to take screenshot: %s",
-          status.GetErrorMessage().c_str());
-    return -status.error();
-  }
-
-  *return_width = status.get().width;
-  *return_height = status.get().height;
-  *out_image = std::move(status.take().buffer);
-  return 0;
-}
-
-ScreenshotClient::ScreenshotClient()
-    : BASE(pdx::default_transport::ClientChannelFactory::Create(
-          DisplayScreenshotRPC::kClientPath)) {
-  auto status = InvokeRemoteMethod<DisplayScreenshotRPC::GetFormat>();
-  if (!status) {
-    ALOGE(
-        "ScreenshotClient::ScreenshotClient: Failed to retrieve screenshot "
-        "layout: %s",
-        status.GetErrorMessage().c_str());
-
-    Close(status.error());
-  } else {
-    format_ = status.get();
-  }
-}
-
-}  // namespace dvr
-}  // namespace android
diff --git a/libs/vr/libdisplay/video_mesh_surface_client.cpp b/libs/vr/libdisplay/video_mesh_surface_client.cpp
deleted file mode 100644
index a2307e5..0000000
--- a/libs/vr/libdisplay/video_mesh_surface_client.cpp
+++ /dev/null
@@ -1,60 +0,0 @@
-#include "include/private/dvr/video_mesh_surface_client.h"
-
-using android::pdx::LocalChannelHandle;
-
-namespace android {
-namespace dvr {
-
-/* static */
-std::unique_ptr<VideoMeshSurfaceClient> VideoMeshSurfaceClient::Import(
-    LocalChannelHandle handle) {
-  return VideoMeshSurfaceClient::Create(std::move(handle));
-}
-
-VideoMeshSurfaceClient::VideoMeshSurfaceClient(LocalChannelHandle handle)
-    : BASE(std::move(handle), SurfaceTypeEnum::VideoMesh),
-      mapped_metadata_buffer_(nullptr) {
-  // TODO(jwcai) import more data if needed.
-}
-
-std::shared_ptr<ProducerQueue> VideoMeshSurfaceClient::GetProducerQueue() {
-  if (producer_queue_ == nullptr) {
-    // Create producer queue through DisplayRPC
-    auto status =
-        InvokeRemoteMethod<DisplayRPC::VideoMeshSurfaceCreateProducerQueue>();
-    if (!status) {
-      ALOGE(
-          "VideoMeshSurfaceClient::GetProducerQueue: failed to create producer "
-          "queue: %s",
-          status.GetErrorMessage().c_str());
-      return nullptr;
-    }
-
-    producer_queue_ = ProducerQueue::Import(status.take());
-  }
-  return producer_queue_;
-}
-
-volatile VideoMeshSurfaceMetadata*
-VideoMeshSurfaceClient::GetMetadataBufferPtr() {
-  if (!mapped_metadata_buffer_) {
-    if (auto buffer_producer = GetMetadataBuffer()) {
-      void* addr = nullptr;
-      const int ret = buffer_producer->GetBlobReadWritePointer(
-          sizeof(VideoMeshSurfaceMetadata), &addr);
-      if (ret < 0) {
-        ALOGE(
-            "VideoMeshSurfaceClient::GetMetadataBufferPtr: Failed to map "
-            "surface metadata: %s",
-            strerror(-ret));
-        return nullptr;
-      }
-      mapped_metadata_buffer_ = static_cast<VideoMeshSurfaceMetadata*>(addr);
-    }
-  }
-
-  return mapped_metadata_buffer_;
-}
-
-}  // namespace dvr
-}  // namespace android
diff --git a/libs/vr/libdisplay/vsync_client.cpp b/libs/vr/libdisplay/vsync_client.cpp
index c928a08..2f6320c 100644
--- a/libs/vr/libdisplay/vsync_client.cpp
+++ b/libs/vr/libdisplay/vsync_client.cpp
@@ -3,7 +3,7 @@
 #include <log/log.h>
 
 #include <pdx/default_transport/client_channel_factory.h>
-#include <private/dvr/display_rpc.h>
+#include <private/dvr/display_protocol.h>
 
 using android::pdx::Transaction;
 
diff --git a/libs/vr/libdvr/display_manager_client.cpp b/libs/vr/libdvr/display_manager_client.cpp
index 6830085..5bed815 100644
--- a/libs/vr/libdvr/display_manager_client.cpp
+++ b/libs/vr/libdvr/display_manager_client.cpp
@@ -4,7 +4,7 @@
 #include <grallocusage/GrallocUsageConversion.h>
 #include <private/android/AHardwareBufferHelpers.h>
 #include <private/dvr/buffer_hub_client.h>
-#include <private/dvr/display_manager_client_impl.h>
+#include <private/dvr/display_manager_client.h>
 
 using android::dvr::DisplaySurfaceAttributeEnum;
 
diff --git a/libs/vr/libvrflinger/display_manager_service.cpp b/libs/vr/libvrflinger/display_manager_service.cpp
index 42ffaec..61bb71c 100644
--- a/libs/vr/libvrflinger/display_manager_service.cpp
+++ b/libs/vr/libvrflinger/display_manager_service.cpp
@@ -3,7 +3,7 @@
 #include <pdx/channel_handle.h>
 #include <pdx/default_transport/service_endpoint.h>
 #include <private/android_filesystem_config.h>
-#include <private/dvr/display_rpc.h>
+#include <private/dvr/display_protocol.h>
 #include <private/dvr/trusted_uids.h>
 #include <sys/poll.h>
 
diff --git a/libs/vr/libvrflinger/display_manager_service.h b/libs/vr/libvrflinger/display_manager_service.h
index b2417e5..f59520c 100644
--- a/libs/vr/libvrflinger/display_manager_service.h
+++ b/libs/vr/libvrflinger/display_manager_service.h
@@ -2,7 +2,7 @@
 #define ANDROID_DVR_SERVICES_DISPLAYD_DISPLAY_MANAGER_SERVICE_H_
 
 #include <pdx/service.h>
-#include <private/dvr/display_rpc.h>
+#include <private/dvr/display_protocol.h>
 
 #include "display_service.h"
 
diff --git a/libs/vr/libvrflinger/display_service.cpp b/libs/vr/libvrflinger/display_service.cpp
index 2dc840e..f56bc02 100644
--- a/libs/vr/libvrflinger/display_service.cpp
+++ b/libs/vr/libvrflinger/display_service.cpp
@@ -7,7 +7,7 @@
 #include <pdx/rpc/remote_method.h>
 #include <private/dvr/composite_hmd.h>
 #include <private/dvr/device_metrics.h>
-#include <private/dvr/display_rpc.h>
+#include <private/dvr/display_protocol.h>
 #include <private/dvr/display_types.h>
 #include <private/dvr/numeric.h>
 #include <private/dvr/polynomial_radial_distortion.h>
diff --git a/libs/vr/libvrflinger/display_service.h b/libs/vr/libvrflinger/display_service.h
index dd5cac9..3b0d07e 100644
--- a/libs/vr/libvrflinger/display_service.h
+++ b/libs/vr/libvrflinger/display_service.h
@@ -4,7 +4,7 @@
 #include <pdx/service.h>
 #include <private/dvr/buffer_hub_client.h>
 #include <private/dvr/bufferhub_rpc.h>
-#include <private/dvr/display_rpc.h>
+#include <private/dvr/display_protocol.h>
 #include <private/dvr/late_latch.h>
 
 #include <functional>
diff --git a/libs/vr/libvrflinger/display_surface.h b/libs/vr/libvrflinger/display_surface.h
index 2e4cf75..1fec344 100644
--- a/libs/vr/libvrflinger/display_surface.h
+++ b/libs/vr/libvrflinger/display_surface.h
@@ -3,7 +3,7 @@
 
 #include <pdx/file_handle.h>
 #include <pdx/service.h>
-#include <private/dvr/display_rpc.h>
+#include <private/dvr/display_protocol.h>
 #include <private/dvr/ring_buffer.h>
 
 #include <functional>
diff --git a/libs/vr/libvrflinger/surface_channel.h b/libs/vr/libvrflinger/surface_channel.h
index bb6b1c5..9dcac3f 100644
--- a/libs/vr/libvrflinger/surface_channel.h
+++ b/libs/vr/libvrflinger/surface_channel.h
@@ -3,7 +3,7 @@
 
 #include <pdx/service.h>
 #include <private/dvr/buffer_hub_client.h>
-#include <private/dvr/display_rpc.h>
+#include <private/dvr/display_protocol.h>
 
 namespace android {
 namespace dvr {
diff --git a/libs/vr/libvrflinger/video_compositor.cpp b/libs/vr/libvrflinger/video_compositor.cpp
index c5a5b64..e42caaa 100644
--- a/libs/vr/libvrflinger/video_compositor.cpp
+++ b/libs/vr/libvrflinger/video_compositor.cpp
@@ -4,7 +4,7 @@
 #include <GLES2/gl2ext.h>
 
 #include <private/dvr/debug.h>
-#include <private/dvr/display_rpc.h>
+#include <private/dvr/display_protocol.h>
 
 namespace android {
 namespace dvr {
diff --git a/libs/vr/libvrflinger/video_mesh_surface.cpp b/libs/vr/libvrflinger/video_mesh_surface.cpp
index ce0dfca..76dd94f 100644
--- a/libs/vr/libvrflinger/video_mesh_surface.cpp
+++ b/libs/vr/libvrflinger/video_mesh_surface.cpp
@@ -1,7 +1,7 @@
 #include "video_mesh_surface.h"
 
 #include <private/dvr/buffer_hub_queue_core.h>
-#include <private/dvr/display_rpc.h>
+#include <private/dvr/display_protocol.h>
 
 using android::pdx::LocalChannelHandle;
 using android::pdx::rpc::DispatchRemoteMethod;
diff --git a/libs/vr/libvrflinger/vsync_service.cpp b/libs/vr/libvrflinger/vsync_service.cpp
index 612b9b2..cda815c 100644
--- a/libs/vr/libvrflinger/vsync_service.cpp
+++ b/libs/vr/libvrflinger/vsync_service.cpp
@@ -9,7 +9,7 @@
 
 #include <pdx/default_transport/service_endpoint.h>
 #include <private/dvr/clock_ns.h>
-#include <private/dvr/display_rpc.h>
+#include <private/dvr/display_protocol.h>
 #include <private/dvr/display_types.h>
 
 using android::pdx::Channel;