Jiwen 'Steve' Cai | bdcee79 | 2017-03-22 16:59:53 -0700 | [diff] [blame] | 1 | #include "include/dvr/dvr_api.h" |
| 2 | |
| 3 | #include <errno.h> |
Corey Tabaka | 2251d82 | 2017-04-20 16:04:07 -0700 | [diff] [blame] | 4 | #include <utils/Log.h> |
Jiwen 'Steve' Cai | bdcee79 | 2017-03-22 16:59:53 -0700 | [diff] [blame] | 5 | |
| 6 | // Headers from libdvr |
Jiwen 'Steve' Cai | bdcee79 | 2017-03-22 16:59:53 -0700 | [diff] [blame] | 7 | #include <dvr/dvr_buffer.h> |
Jiwen 'Steve' Cai | 2d82ceb | 2017-03-22 17:26:00 -0700 | [diff] [blame] | 8 | #include <dvr/dvr_buffer_queue.h> |
Corey Tabaka | 2251d82 | 2017-04-20 16:04:07 -0700 | [diff] [blame] | 9 | #include <dvr/dvr_display_manager.h> |
Jiwen 'Steve' Cai | bdcee79 | 2017-03-22 16:59:53 -0700 | [diff] [blame] | 10 | #include <dvr/dvr_surface.h> |
Corey Tabaka | 2251d82 | 2017-04-20 16:04:07 -0700 | [diff] [blame] | 11 | #include <dvr/dvr_vsync.h> |
Jiwen 'Steve' Cai | bdcee79 | 2017-03-22 16:59:53 -0700 | [diff] [blame] | 12 | |
| 13 | // Headers not yet moved into libdvr. |
| 14 | // TODO(jwcai) Move these once their callers are moved into Google3. |
Daniel Nicoara | 37cdc8d | 2017-03-27 16:56:05 -0400 | [diff] [blame] | 15 | #include <dvr/dvr_hardware_composer_client.h> |
Jiwen 'Steve' Cai | bdcee79 | 2017-03-22 16:59:53 -0700 | [diff] [blame] | 16 | #include <dvr/pose_client.h> |
| 17 | #include <dvr/virtual_touchpad_client.h> |
| 18 | |
| 19 | extern "C" { |
| 20 | |
Steven Thomas | 3be0aa6 | 2017-05-08 15:45:30 -0700 | [diff] [blame^] | 21 | int dvrGetApi(void* api, size_t struct_size, int version) { |
Corey Tabaka | 2251d82 | 2017-04-20 16:04:07 -0700 | [diff] [blame] | 22 | ALOGI("dvrGetApi: api=%p struct_size=%zu version=%d", api, struct_size, |
| 23 | version); |
Jiwen 'Steve' Cai | bdcee79 | 2017-03-22 16:59:53 -0700 | [diff] [blame] | 24 | if (version == 1) { |
| 25 | if (struct_size != sizeof(DvrApi_v1)) { |
Corey Tabaka | 2251d82 | 2017-04-20 16:04:07 -0700 | [diff] [blame] | 26 | ALOGE("dvrGetApi: Size mismatch: expected %zu; actual %zu", |
| 27 | sizeof(DvrApi_v1), struct_size); |
Jiwen 'Steve' Cai | bdcee79 | 2017-03-22 16:59:53 -0700 | [diff] [blame] | 28 | return -EINVAL; |
| 29 | } |
| 30 | DvrApi_v1* dvr_api = static_cast<DvrApi_v1*>(api); |
| 31 | |
Corey Tabaka | 2251d82 | 2017-04-20 16:04:07 -0700 | [diff] [blame] | 32 | // Defines an API entry for V1 (no version suffix). |
| 33 | #define DVR_V1_API_ENTRY(name) dvr_api->name = dvr##name |
Jiwen 'Steve' Cai | bdcee79 | 2017-03-22 16:59:53 -0700 | [diff] [blame] | 34 | |
Corey Tabaka | 2251d82 | 2017-04-20 16:04:07 -0700 | [diff] [blame] | 35 | #include "include/dvr/dvr_api_entries.h" |
Jiwen 'Steve' Cai | bdcee79 | 2017-03-22 16:59:53 -0700 | [diff] [blame] | 36 | |
Corey Tabaka | 2251d82 | 2017-04-20 16:04:07 -0700 | [diff] [blame] | 37 | // Undefine macro definitions to play nice with Google3 style rules. |
| 38 | #undef DVR_V1_API_ENTRY |
Daniel Nicoara | 37cdc8d | 2017-03-27 16:56:05 -0400 | [diff] [blame] | 39 | |
Jiwen 'Steve' Cai | bdcee79 | 2017-03-22 16:59:53 -0700 | [diff] [blame] | 40 | return 0; |
| 41 | } |
Corey Tabaka | 2251d82 | 2017-04-20 16:04:07 -0700 | [diff] [blame] | 42 | |
| 43 | ALOGE("dvrGetApi: Unknown API version=%d", version); |
Jiwen 'Steve' Cai | bdcee79 | 2017-03-22 16:59:53 -0700 | [diff] [blame] | 44 | return -EINVAL; |
| 45 | } |
| 46 | |
| 47 | } // extern "C" |