hwc: support WFD external display

Change-Id: I3d24ff1757e79c4b41ff6c6db17d0274cd665671
(cherry picked from commit f8942672226a7af26218aa8d325c1677ae2b83dd)
diff --git a/libexternal/external.h b/libexternal/external.h
index da3ccd5..46c982d 100644
--- a/libexternal/external.h
+++ b/libexternal/external.h
@@ -28,6 +28,7 @@
 
 namespace qhwc {
 
+
 class ExternalDisplay
 {
 public:
@@ -35,37 +36,50 @@
     ~ExternalDisplay();
     int getModeCount() const;
     void getEDIDModes(int *out) const;
-    void setExternalDisplay(int connected);
+    void setExternalDisplay(bool connected, int extFbNum = 0);
+    bool isExternalConnected() { return mConnected;};
     bool post();
     void setHPD(uint32_t startEnd);
     void setEDIDMode(int resMode);
     void setActionSafeDimension(int w, int h);
+    void processUEventOnline(const char *str);
+    void processUEventOffline(const char *str);
 
 private:
     bool readResolution();
-    int parseResolution(char* edidStr, int* edidModes);
+    int  parseResolution(char* edidStr, int* edidModes);
     void setResolution(int ID);
-    bool openFramebuffer();
+    bool openFrameBuffer(int fbNum);
     bool closeFrameBuffer();
     bool writeHPDOption(int userOption) const;
     bool isValidMode(int ID);
     void handleUEvent(char* str, int len);
-    int getModeOrder(int mode);
-    int getBestMode();
+    int  getModeOrder(int mode);
+    int  getBestMode();
     void resetInfo();
-    void setDpyAttr();
+    void setDpyHdmiAttr();
+    void setDpyWfdAttr();
     void getAttrForMode(int& width, int& height, int& fps);
+    void updateExtDispDevFbIndex();
+    int  configureHDMIDisplay();
+    int  configureWFDDisplay();
+    int  teardownHDMIDisplay();
+    int  teardownWFDDisplay();
+    int  getExtFbNum(int &fbNum);
 
     mutable android::Mutex mExtDispLock;
     int mFd;
     int mCurrentMode;
-    int mExternalDisplay;
+    int mConnected;
+    int mConnectedFbNum;
     int mResolutionMode;
     char mEDIDs[128];
     int mEDIDModes[64];
     int mModeCount;
     hwc_context_t *mHwcContext;
     fb_var_screeninfo mVInfo;
+    int mHdmiFbNum;
+    int mWfdFbNum;
 };
 
 }; //qhwc