| #include "include/dvr/dvr_vsync.h" |
| |
| #include <utils/Log.h> |
| |
| #include <private/dvr/vsync_client.h> |
| |
| extern "C" { |
| |
| struct DvrVSyncClient { |
| std::unique_ptr<android::dvr::VSyncClient> client; |
| }; |
| |
| int dvrVSyncClientCreate(DvrVSyncClient** client_out) { |
| auto client = android::dvr::VSyncClient::Create(); |
| if (!client) { |
| ALOGE("dvrVSyncClientCreate: Failed to create vsync client!"); |
| return -EIO; |
| } |
| |
| *client_out = new DvrVSyncClient{std::move(client)}; |
| return 0; |
| } |
| |
| void dvrVSyncClientDestroy(DvrVSyncClient* client) { delete client; } |
| |
| int dvrVSyncClientGetSchedInfo(DvrVSyncClient* client, int64_t* vsync_period_ns, |
| int64_t* next_timestamp_ns, |
| uint32_t* next_vsync_count) { |
| return client->client->GetSchedInfo(vsync_period_ns, next_timestamp_ns, |
| next_vsync_count); |
| } |
| |
| } // extern "C" |