drm_hwcomposer: Add composition type to DrmComposition

This allows us to have different types of compositions. This will
enable injection of non-frame related compositions such as dpms
and mode.

Change-Id: Ia62421c114c0c6bebccef3ce6ae936366b6aafe2
Signed-off-by: Sean Paul <seanpaul@chromium.org>
diff --git a/drmdisplaycomposition.h b/drmdisplaycomposition.h
index cf03360..bc8cf2e 100644
--- a/drmdisplaycomposition.h
+++ b/drmdisplaycomposition.h
@@ -28,6 +28,11 @@
 
 namespace android {
 
+enum DrmCompositionType {
+  DRM_COMPOSITION_TYPE_EMPTY,
+  DRM_COMPOSITION_TYPE_FRAME,
+};
+
 typedef struct DrmCompositionLayer {
   DrmCompositionLayer();
   ~DrmCompositionLayer();
@@ -46,6 +51,8 @@
 
   int Init(DrmResources *drm, Importer *importer);
 
+  DrmCompositionType type() const;
+
   int AddLayer(hwc_layer_1_t *layer, hwc_drm_bo_t *bo, DrmCrtc *crtc,
                DrmPlane *plane);
 
@@ -56,9 +63,13 @@
  private:
   DrmDisplayComposition(const DrmDisplayComposition &) = delete;
 
+  bool validate_composition_type(DrmCompositionType desired);
+
   DrmResources *drm_;
   Importer *importer_;
 
+  DrmCompositionType type_;
+
   int timeline_fd_;
   int timeline_;