Home | History | Annotate | Download | only in dvr
      1 #ifndef ANDROID_DVR_DISPLAY_MANAGER_CLIENT_H_
      2 #define ANDROID_DVR_DISPLAY_MANAGER_CLIENT_H_
      3 
      4 #include <string>
      5 #include <vector>
      6 
      7 #include <pdx/client.h>
      8 #include <pdx/status.h>
      9 #include <private/dvr/display_protocol.h>
     10 
     11 namespace android {
     12 namespace dvr {
     13 
     14 class IonBuffer;
     15 class ConsumerQueue;
     16 
     17 namespace display {
     18 
     19 class DisplayManagerClient : public pdx::ClientBase<DisplayManagerClient> {
     20  public:
     21   ~DisplayManagerClient() override;
     22 
     23   pdx::Status<std::vector<SurfaceState>> GetSurfaceState();
     24   pdx::Status<std::unique_ptr<ConsumerQueue>> GetSurfaceQueue(int surface_id,
     25                                                               int queue_id);
     26 
     27   using Client::event_fd;
     28 
     29   pdx::Status<int> GetEventMask(int events) {
     30     if (auto* client_channel = GetChannel())
     31       return client_channel->GetEventMask(events);
     32     else
     33       return pdx::ErrorStatus(EINVAL);
     34   }
     35 
     36  private:
     37   friend BASE;
     38 
     39   DisplayManagerClient();
     40 
     41   DisplayManagerClient(const DisplayManagerClient&) = delete;
     42   void operator=(const DisplayManagerClient&) = delete;
     43 };
     44 
     45 }  // namespace display
     46 }  // namespace dvr
     47 }  // namespace android
     48 
     49 #endif  // ANDROID_DVR_DISPLAY_MANAGER_CLIENT_H_
     50