blob: fdeeb70dfb2854944f449917da12e84ecbf47587 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
#include "include/private/dvr/display_manager_client.h"
#include <pdx/default_transport/client_channel_factory.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
|