| #include "include/private/dvr/display_manager_client.h" | |
| #include <pdx/default_transport/client_channel_factory.h> | |
| #include <private/dvr/buffer_hub_client.h> | |
| #include <private/dvr/buffer_hub_queue_client.h> | |
| #include <private/dvr/display_protocol.h> | |
| #include <utils/Log.h> | |
| using android::pdx::ErrorStatus; | |
| using android::pdx::LocalChannelHandle; | |
| using android::pdx::Transaction; | |
| namespace android { | |
| namespace dvr { | |
| namespace display { | |
| DisplayManagerClient::DisplayManagerClient() | |
| : BASE(pdx::default_transport::ClientChannelFactory::Create( | |
| DisplayManagerProtocol::kClientPath)) {} | |
| DisplayManagerClient::~DisplayManagerClient() {} | |
| pdx::Status<std::vector<display::SurfaceState>> | |
| DisplayManagerClient::GetSurfaceState() { | |
| auto status = InvokeRemoteMethod<DisplayManagerProtocol::GetSurfaceState>(); | |
| if (!status) { | |
| ALOGE( | |
| "DisplayManagerClient::GetSurfaceState: Failed to get surface info: %s", | |
| status.GetErrorMessage().c_str()); | |
| } | |
| return status; | |
| } | |
| pdx::Status<std::unique_ptr<ConsumerQueue>> | |
| DisplayManagerClient::GetSurfaceQueue(int surface_id, int queue_id) { | |
| auto status = InvokeRemoteMethod<DisplayManagerProtocol::GetSurfaceQueue>( | |
| surface_id, queue_id); | |
| if (!status) { | |
| ALOGE( | |
| "DisplayManagerClient::GetSurfaceQueue: Failed to get queue for " | |
| "surface_id=%d queue_id=%d: %s", | |
| surface_id, queue_id, status.GetErrorMessage().c_str()); | |
| return status.error_status(); | |
| } | |
| return {ConsumerQueue::Import(status.take())}; | |
| } | |
| } // namespace display | |
| } // namespace dvr | |
| } // namespace android |