hwc: vd: Dynamic dumping of frames for virtual displays

Provides a way to enable/disable dumping of virtual display
frames at runtime via binder. The dumping needs to be enabled
from a priviliged shell.

For example,
$ adb shell service call display.qservice 15 i32 3 i32 1

Here 15 is the integer code for DYNAMIC_DEBUG in IQService.h
The first parameter 3 is for DEBUG_VD
The second parameter 1 is to enable.

Change-Id: Idd62c5d9ffa6e4eb7dec585984d145bc6a421336
diff --git a/libhwcomposer/hwc_virtual.h b/libhwcomposer/hwc_virtual.h
index 26d89c9..5f7b20f 100644
--- a/libhwcomposer/hwc_virtual.h
+++ b/libhwcomposer/hwc_virtual.h
@@ -42,11 +42,17 @@
                        hwc_display_contents_1_t** displays) = 0;
     virtual void pause(hwc_context_t* ctx, int dpy) = 0;
     virtual void resume(hwc_context_t* ctx, int dpy) = 0;
+    // We can dump the frame buffer and WB
+    // output buffer by dynamically enabling
+    // dumping via a binder call:
+    // adb shell service call display.qservice 15 i32 3 i32 1
+    static bool sVDDumpEnabled;
+    static void dynamicDebug(bool enable) {sVDDumpEnabled = enable;};
 };
 
 class HWCVirtualVDS : public HWCVirtualBase {
 public:
-    explicit HWCVirtualVDS();
+    explicit HWCVirtualVDS(){};
     virtual ~HWCVirtualVDS(){};
     // Chooses composition type and configures pipe for each layer in virtual
     // display list
@@ -64,12 +70,6 @@
                        hwc_display_contents_1_t** displays);
     virtual void pause(hwc_context_t* ctx, int dpy);
     virtual void resume(hwc_context_t* ctx, int dpy);
-private:
-    // If WFD is enabled through VDS solution
-    // we can dump the frame buffer and WB
-    // output buffer by setting the property
-    // debug.hwc.enable_vds_dump
-    bool mVDSDumpEnabled;
 };
 
 class HWCVirtualV4L2 : public HWCVirtualBase {