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_PLANE_MANAGER_H
     17 #define ANN_PLANE_MANAGER_H
     18 
     19 #include <DisplayPlaneManager.h>
     20 #include <linux/psb_drm.h>
     21 
     22 namespace android {
     23 namespace intel {
     24 
     25 class AnnPlaneManager : public DisplayPlaneManager {
     26 public:
     27     AnnPlaneManager();
     28     virtual ~AnnPlaneManager();
     29 
     30 public:
     31     virtual bool initialize();
     32     virtual void deinitialize();
     33     virtual bool isValidZOrder(int dsp, ZOrderConfig& config);
     34     virtual bool assignPlanes(int dsp, ZOrderConfig& config);
     35     virtual int getFreePlanes(int dsp, int type);
     36     // TODO: remove this API
     37     virtual void* getZOrderConfig() const;
     38 
     39 protected:
     40     DisplayPlane* allocPlane(int index, int type);
     41     bool assignPlanes(int dsp, ZOrderConfig& config, const char *zorder);
     42 };
     43 
     44 } // namespace intel
     45 } // namespace android
     46 
     47 
     48 #endif /* ANN_PLANE_MANAGER_H */
     49