blob: 5f35dcf04c19c3f3bdb70264a9237510b6c43e7f [file] [log] [blame]
Jiwen 'Steve' Caibdcee792017-03-22 16:59:53 -07001#include "include/dvr/dvr_api.h"
2
3#include <errno.h>
Corey Tabaka2251d822017-04-20 16:04:07 -07004#include <utils/Log.h>
Jiwen 'Steve' Caibdcee792017-03-22 16:59:53 -07005
6// Headers from libdvr
Jiwen 'Steve' Caibdcee792017-03-22 16:59:53 -07007#include <dvr/dvr_buffer.h>
Jiwen 'Steve' Cai2d82ceb2017-03-22 17:26:00 -07008#include <dvr/dvr_buffer_queue.h>
Hendrik Wagenaarbcb03d02017-05-23 14:59:08 -07009#include <dvr/dvr_configuration_data.h>
Corey Tabaka2251d822017-04-20 16:04:07 -070010#include <dvr/dvr_display_manager.h>
Jiwen 'Steve' Caibdcee792017-03-22 16:59:53 -070011#include <dvr/dvr_surface.h>
Corey Tabaka2251d822017-04-20 16:04:07 -070012#include <dvr/dvr_vsync.h>
Jiwen 'Steve' Caibdcee792017-03-22 16:59:53 -070013
14// Headers not yet moved into libdvr.
15// TODO(jwcai) Move these once their callers are moved into Google3.
Daniel Nicoara37cdc8d2017-03-27 16:56:05 -040016#include <dvr/dvr_hardware_composer_client.h>
Jiwen 'Steve' Caibdcee792017-03-22 16:59:53 -070017#include <dvr/pose_client.h>
18#include <dvr/virtual_touchpad_client.h>
19
20extern "C" {
21
Steven Thomas3be0aa62017-05-08 15:45:30 -070022int dvrGetApi(void* api, size_t struct_size, int version) {
Corey Tabaka2251d822017-04-20 16:04:07 -070023 ALOGI("dvrGetApi: api=%p struct_size=%zu version=%d", api, struct_size,
24 version);
Jiwen 'Steve' Caibdcee792017-03-22 16:59:53 -070025 if (version == 1) {
26 if (struct_size != sizeof(DvrApi_v1)) {
Corey Tabaka2251d822017-04-20 16:04:07 -070027 ALOGE("dvrGetApi: Size mismatch: expected %zu; actual %zu",
28 sizeof(DvrApi_v1), struct_size);
Jiwen 'Steve' Caibdcee792017-03-22 16:59:53 -070029 return -EINVAL;
30 }
31 DvrApi_v1* dvr_api = static_cast<DvrApi_v1*>(api);
32
Corey Tabaka2251d822017-04-20 16:04:07 -070033// Defines an API entry for V1 (no version suffix).
34#define DVR_V1_API_ENTRY(name) dvr_api->name = dvr##name
Jiwen 'Steve' Caibdcee792017-03-22 16:59:53 -070035
Corey Tabaka2251d822017-04-20 16:04:07 -070036#include "include/dvr/dvr_api_entries.h"
Jiwen 'Steve' Caibdcee792017-03-22 16:59:53 -070037
Corey Tabaka2251d822017-04-20 16:04:07 -070038// Undefine macro definitions to play nice with Google3 style rules.
39#undef DVR_V1_API_ENTRY
Daniel Nicoara37cdc8d2017-03-27 16:56:05 -040040
Jiwen 'Steve' Caibdcee792017-03-22 16:59:53 -070041 return 0;
42 }
Corey Tabaka2251d822017-04-20 16:04:07 -070043
44 ALOGE("dvrGetApi: Unknown API version=%d", version);
Jiwen 'Steve' Caibdcee792017-03-22 16:59:53 -070045 return -EINVAL;
46}
47
48} // extern "C"