blob: fea841595a8d33db0bc77d1b6c34a3102c8eeab0 [file] [log] [blame]
#ifndef ANDROID_DVR_DISPLAY_MANAGER_CLIENT_H_
#define ANDROID_DVR_DISPLAY_MANAGER_CLIENT_H_
#include <string>
#include <vector>
#include <pdx/client.h>
#include <pdx/status.h>
#include <private/dvr/display_protocol.h>
namespace android {
namespace dvr {
class IonBuffer;
class ConsumerQueue;
namespace display {
class DisplayManagerClient : public pdx::ClientBase<DisplayManagerClient> {
public:
~DisplayManagerClient() override;
pdx::Status<std::vector<SurfaceState>> GetSurfaceState();
pdx::Status<std::unique_ptr<IonBuffer>> SetupNamedBuffer(
const std::string& name, size_t size, uint64_t usage);
pdx::Status<std::unique_ptr<ConsumerQueue>> GetSurfaceQueue(int surface_id,
int queue_id);
using Client::event_fd;
pdx::Status<int> GetEventMask(int events) {
if (auto* client_channel = GetChannel())
return client_channel->GetEventMask(events);
else
return pdx::ErrorStatus(EINVAL);
}
private:
friend BASE;
DisplayManagerClient();
DisplayManagerClient(const DisplayManagerClient&) = delete;
void operator=(const DisplayManagerClient&) = delete;
};
} // namespace display
} // namespace dvr
} // namespace android
#endif // ANDROID_DVR_DISPLAY_MANAGER_CLIENT_H_