Home | History | Annotate | Download | only in anniedale
      1 /*
      2 // Copyright(c)2014 IntelCorporation
      3 //
      4 // LicensedundertheApacheLicense,Version2.0(the"License");
      5 // youmaynotusethisfileexceptincompliancewiththeLicense.
      6 // YoumayobtainacopyoftheLicenseat
      7 //
      8 // http://www.apache.org/licenses/LICENSE-2.0
      9 //
     10 // Unlessrequiredbyapplicablelaworagreedtoinwriting,software
     11 // distributedundertheLicenseisdistributedonan"ASIS"BASIS,
     12 // WITHOUTWARRANTIESORCONDITIONSOFANYKIND,eitherexpressorimplied.
     13 // SeetheLicenseforthespecificlanguagegoverningpermissionsand
     14 // limitationsundertheLicense.
     15 */
     16 #ifndef ANN_RGB_PLANE_H
     17 #define ANN_RGB_PLANE_H
     18 
     19 #include <utils/KeyedVector.h>
     20 #include <hal_public.h>
     21 #include <Hwcomposer.h>
     22 #include <BufferCache.h>
     23 #include <DisplayPlane.h>
     24 
     25 #include <linux/psb_drm.h>
     26 
     27 namespace android {
     28 namespace intel {
     29 
     30 class AnnRGBPlane : public DisplayPlane {
     31 public:
     32     AnnRGBPlane(int index, int type, int disp);
     33     virtual ~AnnRGBPlane();
     34 public:
     35     // hardware operations
     36     bool enable();
     37     bool disable();
     38     bool isDisabled();
     39     void postFlip();
     40 
     41     void* getContext() const;
     42     void setZOrderConfig(ZOrderConfig& config, void *nativeConfig);
     43 
     44     bool setDataBuffer(buffer_handle_t handle);
     45 protected:
     46     bool setDataBuffer(BufferMapper& mapper);
     47     bool enablePlane(bool enabled);
     48 private:
     49     void setFramebufferTarget(buffer_handle_t handle);
     50 protected:
     51     struct intel_dc_plane_ctx mContext;
     52 };
     53 
     54 } // namespace intel
     55 } // namespace android
     56 
     57 #endif /* ANN_RGB_PLANE_H */
     58