Jiwen 'Steve' Cai | bdcee79 | 2017-03-22 16:59:53 -0700 | [diff] [blame] | 1 | #ifndef ANDROID_DVR_API_H_ |
| 2 | #define ANDROID_DVR_API_H_ |
| 3 | |
| 4 | #include <stdbool.h> |
| 5 | #include <stddef.h> |
| 6 | #include <stdint.h> |
| 7 | |
Daniel Nicoara | 37cdc8d | 2017-03-27 16:56:05 -0400 | [diff] [blame] | 8 | #include <dvr/dvr_hardware_composer_defs.h> |
Jiwen 'Steve' Cai | 2d82ceb | 2017-03-22 17:26:00 -0700 | [diff] [blame] | 9 | |
Jiwen 'Steve' Cai | bdcee79 | 2017-03-22 16:59:53 -0700 | [diff] [blame] | 10 | #ifdef __cplusplus |
| 11 | extern "C" { |
| 12 | #endif |
| 13 | |
Jiwen 'Steve' Cai | 960bcff | 2017-04-04 15:02:04 -0700 | [diff] [blame^] | 14 | typedef struct ANativeWindow ANativeWindow; |
| 15 | |
Jiwen 'Steve' Cai | bdcee79 | 2017-03-22 16:59:53 -0700 | [diff] [blame] | 16 | typedef struct DvrPoseAsync DvrPoseAsync; |
| 17 | |
| 18 | typedef struct DvrDisplayManagerClient DvrDisplayManagerClient; |
| 19 | typedef struct DvrDisplayManagerClientSurfaceList |
| 20 | DvrDisplayManagerClientSurfaceList; |
| 21 | typedef struct DvrDisplayManagerClientSurfaceBuffers |
| 22 | DvrDisplayManagerClientSurfaceBuffers; |
| 23 | typedef struct DvrPose DvrPose; |
| 24 | typedef struct dvr_vsync_client dvr_vsync_client; |
| 25 | typedef struct DvrVirtualTouchpad DvrVirtualTouchpad; |
| 26 | |
Hendrik Wagenaar | 84d90f3 | 2017-03-29 10:50:25 -0700 | [diff] [blame] | 27 | typedef DvrDisplayManagerClient* (*DvrDisplayManagerClientCreatePtr)(void); |
| 28 | typedef void (*DvrDisplayManagerClientDestroyPtr)( |
| 29 | DvrDisplayManagerClient* client); |
Jiwen 'Steve' Cai | bdcee79 | 2017-03-22 16:59:53 -0700 | [diff] [blame] | 30 | |
| 31 | typedef struct DvrWriteBuffer DvrWriteBuffer; |
| 32 | typedef struct DvrReadBuffer DvrReadBuffer; |
| 33 | typedef struct AHardwareBuffer AHardwareBuffer; |
| 34 | |
Jiwen 'Steve' Cai | 2d82ceb | 2017-03-22 17:26:00 -0700 | [diff] [blame] | 35 | typedef struct DvrWriteBufferQueue DvrWriteBufferQueue; |
| 36 | typedef struct DvrReadBufferQueue DvrReadBufferQueue; |
| 37 | |
Jiwen 'Steve' Cai | 74cf084 | 2017-03-23 18:53:16 -0700 | [diff] [blame] | 38 | typedef struct DvrSurface DvrSurface; |
| 39 | |
Jiwen 'Steve' Cai | bdcee79 | 2017-03-22 16:59:53 -0700 | [diff] [blame] | 40 | // display_manager_client.h |
Hendrik Wagenaar | 84d90f3 | 2017-03-29 10:50:25 -0700 | [diff] [blame] | 41 | typedef int (*DvrDisplayManagerClientGetSurfaceListPtr)( |
Jiwen 'Steve' Cai | bdcee79 | 2017-03-22 16:59:53 -0700 | [diff] [blame] | 42 | DvrDisplayManagerClient* client, |
| 43 | DvrDisplayManagerClientSurfaceList** surface_list); |
Hendrik Wagenaar | 84d90f3 | 2017-03-29 10:50:25 -0700 | [diff] [blame] | 44 | typedef void (*DvrDisplayManagerClientSurfaceListDestroyPtr)( |
Jiwen 'Steve' Cai | bdcee79 | 2017-03-22 16:59:53 -0700 | [diff] [blame] | 45 | DvrDisplayManagerClientSurfaceList* surface_list); |
Hendrik Wagenaar | 84d90f3 | 2017-03-29 10:50:25 -0700 | [diff] [blame] | 46 | typedef DvrWriteBuffer* (*DvrDisplayManagerSetupPoseBufferPtr)( |
Jiwen 'Steve' Cai | bdcee79 | 2017-03-22 16:59:53 -0700 | [diff] [blame] | 47 | DvrDisplayManagerClient* client, size_t extended_region_size, |
| 48 | uint64_t usage0, uint64_t usage1); |
Hendrik Wagenaar | 84d90f3 | 2017-03-29 10:50:25 -0700 | [diff] [blame] | 49 | typedef size_t (*DvrDisplayManagerClientSurfaceListGetSizePtr)( |
Jiwen 'Steve' Cai | bdcee79 | 2017-03-22 16:59:53 -0700 | [diff] [blame] | 50 | DvrDisplayManagerClientSurfaceList* surface_list); |
Hendrik Wagenaar | 84d90f3 | 2017-03-29 10:50:25 -0700 | [diff] [blame] | 51 | typedef int (*DvrDisplayManagerClientSurfaceListGetSurfaceIdPtr)( |
Jiwen 'Steve' Cai | bdcee79 | 2017-03-22 16:59:53 -0700 | [diff] [blame] | 52 | DvrDisplayManagerClientSurfaceList* surface_list, size_t index); |
Hendrik Wagenaar | 84d90f3 | 2017-03-29 10:50:25 -0700 | [diff] [blame] | 53 | typedef int (*DvrDisplayManagerClientGetSurfaceBufferListPtr)( |
Jiwen 'Steve' Cai | bdcee79 | 2017-03-22 16:59:53 -0700 | [diff] [blame] | 54 | DvrDisplayManagerClient* client, int surface_id, |
| 55 | DvrDisplayManagerClientSurfaceBuffers** surface_buffers); |
Hendrik Wagenaar | 84d90f3 | 2017-03-29 10:50:25 -0700 | [diff] [blame] | 56 | typedef void (*DvrDisplayManagerClientSurfaceBufferListDestroyPtr)( |
Jiwen 'Steve' Cai | bdcee79 | 2017-03-22 16:59:53 -0700 | [diff] [blame] | 57 | DvrDisplayManagerClientSurfaceBuffers* surface_buffers); |
Hendrik Wagenaar | 84d90f3 | 2017-03-29 10:50:25 -0700 | [diff] [blame] | 58 | typedef size_t (*DvrDisplayManagerClientSurfaceBufferListGetSizePtr)( |
Jiwen 'Steve' Cai | bdcee79 | 2017-03-22 16:59:53 -0700 | [diff] [blame] | 59 | DvrDisplayManagerClientSurfaceBuffers* surface_buffers); |
Hendrik Wagenaar | 84d90f3 | 2017-03-29 10:50:25 -0700 | [diff] [blame] | 60 | typedef int (*DvrDisplayManagerClientSurfaceBufferListGetFdPtr)( |
Jiwen 'Steve' Cai | bdcee79 | 2017-03-22 16:59:53 -0700 | [diff] [blame] | 61 | DvrDisplayManagerClientSurfaceBuffers* surface_buffers, size_t index); |
| 62 | |
| 63 | // dvr_buffer.h |
| 64 | typedef void (*DvrWriteBufferDestroyPtr)(DvrWriteBuffer* client); |
| 65 | typedef void (*DvrWriteBufferGetBlobFdsPtr)(DvrWriteBuffer* client, int* fds, |
| 66 | size_t* fds_count, |
| 67 | size_t max_fds_count); |
| 68 | typedef int (*DvrWriteBufferGetAHardwareBufferPtr)( |
| 69 | DvrWriteBuffer* client, AHardwareBuffer** hardware_buffer); |
| 70 | typedef int (*DvrWriteBufferPostPtr)(DvrWriteBuffer* client, int ready_fence_fd, |
| 71 | const void* meta, size_t meta_size_bytes); |
| 72 | typedef int (*DvrWriteBufferGainPtr)(DvrWriteBuffer* client, |
| 73 | int* release_fence_fd); |
| 74 | typedef int (*DvrWriteBufferGainAsyncPtr)(DvrWriteBuffer* client); |
| 75 | |
Jiwen 'Steve' Cai | 2d82ceb | 2017-03-22 17:26:00 -0700 | [diff] [blame] | 76 | typedef void (*DvrReadBufferDestroyPtr)(DvrReadBuffer* client); |
Jiwen 'Steve' Cai | bdcee79 | 2017-03-22 16:59:53 -0700 | [diff] [blame] | 77 | typedef void (*DvrReadBufferGetBlobFdsPtr)(DvrReadBuffer* client, int* fds, |
| 78 | size_t* fds_count, |
| 79 | size_t max_fds_count); |
| 80 | typedef int (*DvrReadBufferGetAHardwareBufferPtr)( |
| 81 | DvrReadBuffer* client, AHardwareBuffer** hardware_buffer); |
| 82 | typedef int (*DvrReadBufferAcquirePtr)(DvrReadBuffer* client, |
| 83 | int* ready_fence_fd, void* meta, |
| 84 | size_t meta_size_bytes); |
| 85 | typedef int (*DvrReadBufferReleasePtr)(DvrReadBuffer* client, |
| 86 | int release_fence_fd); |
| 87 | typedef int (*DvrReadBufferReleaseAsyncPtr)(DvrReadBuffer* client); |
| 88 | |
Jiwen 'Steve' Cai | 2d82ceb | 2017-03-22 17:26:00 -0700 | [diff] [blame] | 89 | // dvr_buffer_queue.h |
| 90 | typedef void (*DvrWriteBufferQueueDestroyPtr)(DvrWriteBufferQueue* write_queue); |
| 91 | typedef size_t (*DvrWriteBufferQueueGetCapacityPtr)( |
| 92 | DvrWriteBufferQueue* write_queue); |
Jiwen 'Steve' Cai | 960bcff | 2017-04-04 15:02:04 -0700 | [diff] [blame^] | 93 | typedef int (*DvrWriteBufferQueueGetExternalSurfacePtr)( |
| 94 | DvrWriteBufferQueue* write_queue, ANativeWindow** out_window); |
Jiwen 'Steve' Cai | 2d82ceb | 2017-03-22 17:26:00 -0700 | [diff] [blame] | 95 | typedef int (*DvrWriteBufferQueueCreateReadQueuePtr)( |
| 96 | DvrWriteBufferQueue* write_queue, DvrReadBufferQueue** out_read_queue); |
| 97 | typedef int (*DvrWriteBufferQueueDequeuePtr)(DvrWriteBufferQueue* write_queue, |
| 98 | int timeout, |
| 99 | DvrWriteBuffer** out_buffer, |
| 100 | int* out_fence_fd); |
| 101 | typedef void (*DvrReadBufferQueueDestroyPtr)(DvrReadBufferQueue* read_queue); |
| 102 | typedef size_t (*DvrReadBufferQueueGetCapacityPtr)( |
| 103 | DvrReadBufferQueue* read_queue); |
| 104 | typedef int (*DvrReadBufferQueueCreateReadQueuePtr)( |
| 105 | DvrReadBufferQueue* read_queue, DvrReadBufferQueue** out_read_queue); |
| 106 | typedef int (*DvrReadBufferQueueDequeuePtr)(DvrReadBufferQueue* read_queue, |
| 107 | int timeout, |
| 108 | DvrReadBuffer** out_buffer, |
| 109 | int* out_fence_fd, void* out_meta, |
| 110 | size_t meta_size_bytes); |
| 111 | |
Jiwen 'Steve' Cai | bdcee79 | 2017-03-22 16:59:53 -0700 | [diff] [blame] | 112 | // dvr_surface.h |
| 113 | typedef int (*DvrGetPoseBufferPtr)(DvrReadBuffer** pose_buffer); |
Jiwen 'Steve' Cai | 74cf084 | 2017-03-23 18:53:16 -0700 | [diff] [blame] | 114 | typedef int (*DvrSurfaceCreatePtr)(int width, int height, int format, |
| 115 | uint64_t usage0, uint64_t usage1, int flags, |
| 116 | DvrSurface** out_surface); |
| 117 | typedef int (*DvrSurfaceGetWriteBufferQueuePtr)( |
| 118 | DvrSurface* surface, DvrWriteBufferQueue** out_writer); |
Jiwen 'Steve' Cai | bdcee79 | 2017-03-22 16:59:53 -0700 | [diff] [blame] | 119 | |
| 120 | // vsync_client_api.h |
Hendrik Wagenaar | 84d90f3 | 2017-03-29 10:50:25 -0700 | [diff] [blame] | 121 | typedef dvr_vsync_client* (*DvrVSyncClientCreatePtr)(); |
| 122 | typedef void (*DvrVSyncClientDestroyPtr)(dvr_vsync_client* client); |
| 123 | typedef int (*DvrVSyncClientGetSchedInfoPtr)(dvr_vsync_client* client, |
| 124 | int64_t* vsync_period_ns, |
| 125 | int64_t* next_timestamp_ns, |
| 126 | uint32_t* next_vsync_count); |
Jiwen 'Steve' Cai | bdcee79 | 2017-03-22 16:59:53 -0700 | [diff] [blame] | 127 | |
| 128 | // pose_client.h |
Hendrik Wagenaar | 84d90f3 | 2017-03-29 10:50:25 -0700 | [diff] [blame] | 129 | typedef DvrPose* (*DvrPoseClientCreatePtr)(void); |
| 130 | typedef void (*DvrPoseClientDestroyPtr)(DvrPose* client); |
| 131 | typedef int (*DvrPoseGetPtr)(DvrPose* client, uint32_t vsync_count, |
| 132 | DvrPoseAsync* out_pose); |
| 133 | typedef uint32_t (*DvrPoseGetVsyncCountPtr)(DvrPose* client); |
| 134 | typedef int (*DvrPoseGetControllerPtr)(DvrPose* client, int32_t controller_id, |
| 135 | uint32_t vsync_count, |
| 136 | DvrPoseAsync* out_pose); |
Jiwen 'Steve' Cai | bdcee79 | 2017-03-22 16:59:53 -0700 | [diff] [blame] | 137 | |
| 138 | // virtual_touchpad_client.h |
Hendrik Wagenaar | 84d90f3 | 2017-03-29 10:50:25 -0700 | [diff] [blame] | 139 | typedef DvrVirtualTouchpad* (*DvrVirtualTouchpadCreatePtr)(void); |
| 140 | typedef void (*DvrVirtualTouchpadDestroyPtr)(DvrVirtualTouchpad* client); |
| 141 | typedef int (*DvrVirtualTouchpadAttachPtr)(DvrVirtualTouchpad* client); |
| 142 | typedef int (*DvrVirtualTouchpadDetachPtr)(DvrVirtualTouchpad* client); |
| 143 | typedef int (*DvrVirtualTouchpadTouchPtr)(DvrVirtualTouchpad* client, |
| 144 | int touchpad, float x, float y, |
| 145 | float pressure); |
| 146 | typedef int (*DvrVirtualTouchpadButtonStatePtr)(DvrVirtualTouchpad* client, |
| 147 | int touchpad, int buttons); |
Jiwen 'Steve' Cai | bdcee79 | 2017-03-22 16:59:53 -0700 | [diff] [blame] | 148 | |
Daniel Nicoara | 37cdc8d | 2017-03-27 16:56:05 -0400 | [diff] [blame] | 149 | // dvr_hardware_composer_client.h |
| 150 | typedef struct DvrHwcClient DvrHwcClient; |
| 151 | typedef struct DvrHwcFrame DvrHwcFrame; |
| 152 | typedef int(*DvrHwcOnFrameCallback)(void* client_state, DvrHwcFrame* frame); |
| 153 | typedef DvrHwcClient* (*DvrHwcClientCreatePtr)(DvrHwcOnFrameCallback callback, |
| 154 | void* client_state); |
| 155 | typedef void (*DvrHwcClientDestroyPtr)(DvrHwcClient* client); |
| 156 | typedef void (*DvrHwcFrameDestroyPtr)(DvrHwcFrame* frame); |
| 157 | typedef Display (*DvrHwcFrameGetDisplayIdPtr)(DvrHwcFrame* frame); |
| 158 | typedef int32_t (*DvrHwcFrameGetDisplayWidthPtr)(DvrHwcFrame* frame); |
| 159 | typedef int32_t (*DvrHwcFrameGetDisplayHeightPtr)(DvrHwcFrame* frame); |
| 160 | typedef bool (*DvrHwcFrameGetDisplayRemovedPtr)(DvrHwcFrame* frame); |
| 161 | typedef size_t (*DvrHwcFrameGetLayerCountPtr)(DvrHwcFrame* frame); |
| 162 | typedef Layer (*DvrHwcFrameGetLayerIdPtr)(DvrHwcFrame* frame, size_t layer_index); |
| 163 | typedef AHardwareBuffer* (*DvrHwcFrameGetLayerBufferPtr)(DvrHwcFrame* frame, |
| 164 | size_t layer_index); |
| 165 | typedef int (*DvrHwcFrameGetLayerFencePtr)(DvrHwcFrame* frame, |
| 166 | size_t layer_index); |
| 167 | typedef Recti (*DvrHwcFrameGetLayerDisplayFramePtr)(DvrHwcFrame* frame, |
| 168 | size_t layer_index); |
| 169 | typedef Rectf (*DvrHwcFrameGetLayerCropPtr)(DvrHwcFrame* frame, |
| 170 | size_t layer_index); |
| 171 | typedef BlendMode (*DvrHwcFrameGetLayerBlendModePtr)(DvrHwcFrame* frame, |
| 172 | size_t layer_index); |
| 173 | typedef float (*DvrHwcFrameGetLayerAlphaPtr)(DvrHwcFrame* frame, |
| 174 | size_t layer_index); |
| 175 | typedef uint32_t (*DvrHwcFrameGetLayerTypePtr)(DvrHwcFrame* frame, |
| 176 | size_t layer_index); |
| 177 | typedef uint32_t (*DvrHwcFrameGetLayerApplicationIdPtr)(DvrHwcFrame* frame, |
| 178 | size_t layer_index); |
| 179 | |
Jiwen 'Steve' Cai | bdcee79 | 2017-03-22 16:59:53 -0700 | [diff] [blame] | 180 | struct DvrApi_v1 { |
| 181 | // Display manager client |
Hendrik Wagenaar | 9255e3e | 2017-03-30 11:53:32 -0700 | [diff] [blame] | 182 | DvrDisplayManagerClientCreatePtr display_manager_client_create; |
| 183 | DvrDisplayManagerClientDestroyPtr display_manager_client_destroy; |
Hendrik Wagenaar | 84d90f3 | 2017-03-29 10:50:25 -0700 | [diff] [blame] | 184 | DvrDisplayManagerClientGetSurfaceListPtr |
Hendrik Wagenaar | 9255e3e | 2017-03-30 11:53:32 -0700 | [diff] [blame] | 185 | display_manager_client_get_surface_list; |
Hendrik Wagenaar | 84d90f3 | 2017-03-29 10:50:25 -0700 | [diff] [blame] | 186 | DvrDisplayManagerClientSurfaceListDestroyPtr |
Hendrik Wagenaar | 9255e3e | 2017-03-30 11:53:32 -0700 | [diff] [blame] | 187 | display_manager_client_surface_list_destroy; |
| 188 | DvrDisplayManagerSetupPoseBufferPtr display_manager_setup_pose_buffer; |
Hendrik Wagenaar | 84d90f3 | 2017-03-29 10:50:25 -0700 | [diff] [blame] | 189 | DvrDisplayManagerClientSurfaceListGetSizePtr |
Hendrik Wagenaar | 9255e3e | 2017-03-30 11:53:32 -0700 | [diff] [blame] | 190 | display_manager_client_surface_list_get_size; |
Hendrik Wagenaar | 84d90f3 | 2017-03-29 10:50:25 -0700 | [diff] [blame] | 191 | DvrDisplayManagerClientSurfaceListGetSurfaceIdPtr |
Hendrik Wagenaar | 9255e3e | 2017-03-30 11:53:32 -0700 | [diff] [blame] | 192 | display_manager_client_surface_list_get_surface_id; |
Hendrik Wagenaar | 84d90f3 | 2017-03-29 10:50:25 -0700 | [diff] [blame] | 193 | DvrDisplayManagerClientGetSurfaceBufferListPtr |
Hendrik Wagenaar | 9255e3e | 2017-03-30 11:53:32 -0700 | [diff] [blame] | 194 | display_manager_client_get_surface_buffer_list; |
Hendrik Wagenaar | 84d90f3 | 2017-03-29 10:50:25 -0700 | [diff] [blame] | 195 | DvrDisplayManagerClientSurfaceBufferListDestroyPtr |
Hendrik Wagenaar | 9255e3e | 2017-03-30 11:53:32 -0700 | [diff] [blame] | 196 | display_manager_client_surface_buffer_list_destroy; |
Hendrik Wagenaar | 84d90f3 | 2017-03-29 10:50:25 -0700 | [diff] [blame] | 197 | DvrDisplayManagerClientSurfaceBufferListGetSizePtr |
Hendrik Wagenaar | 9255e3e | 2017-03-30 11:53:32 -0700 | [diff] [blame] | 198 | display_manager_client_surface_buffer_list_get_size; |
Hendrik Wagenaar | 84d90f3 | 2017-03-29 10:50:25 -0700 | [diff] [blame] | 199 | DvrDisplayManagerClientSurfaceBufferListGetFdPtr |
Hendrik Wagenaar | 9255e3e | 2017-03-30 11:53:32 -0700 | [diff] [blame] | 200 | display_manager_client_surface_buffer_list_get_fd; |
Jiwen 'Steve' Cai | bdcee79 | 2017-03-22 16:59:53 -0700 | [diff] [blame] | 201 | |
| 202 | // Write buffer |
Hendrik Wagenaar | 9255e3e | 2017-03-30 11:53:32 -0700 | [diff] [blame] | 203 | DvrWriteBufferDestroyPtr write_buffer_destroy; |
| 204 | DvrWriteBufferGetBlobFdsPtr write_buffer_get_blob_fds; |
| 205 | DvrWriteBufferGetAHardwareBufferPtr write_buffer_get_ahardwarebuffer; |
| 206 | DvrWriteBufferPostPtr write_buffer_post; |
| 207 | DvrWriteBufferGainPtr write_buffer_gain; |
| 208 | DvrWriteBufferGainAsyncPtr write_buffer_gain_async; |
Jiwen 'Steve' Cai | bdcee79 | 2017-03-22 16:59:53 -0700 | [diff] [blame] | 209 | |
| 210 | // Read buffer |
Hendrik Wagenaar | 9255e3e | 2017-03-30 11:53:32 -0700 | [diff] [blame] | 211 | DvrReadBufferDestroyPtr read_buffer_destroy; |
| 212 | DvrReadBufferGetBlobFdsPtr read_buffer_get_blob_fds; |
| 213 | DvrReadBufferGetAHardwareBufferPtr read_buffer_get_ahardwarebuffer; |
| 214 | DvrReadBufferAcquirePtr read_buffer_acquire; |
| 215 | DvrReadBufferReleasePtr read_buffer_release; |
| 216 | DvrReadBufferReleaseAsyncPtr read_buffer_release_async; |
Jiwen 'Steve' Cai | bdcee79 | 2017-03-22 16:59:53 -0700 | [diff] [blame] | 217 | |
Jiwen 'Steve' Cai | 2d82ceb | 2017-03-22 17:26:00 -0700 | [diff] [blame] | 218 | // Write buffer queue |
Hendrik Wagenaar | 9255e3e | 2017-03-30 11:53:32 -0700 | [diff] [blame] | 219 | DvrWriteBufferQueueDestroyPtr write_buffer_queue_destroy; |
| 220 | DvrWriteBufferQueueGetCapacityPtr write_buffer_queue_get_capacity; |
Jiwen 'Steve' Cai | 2d82ceb | 2017-03-22 17:26:00 -0700 | [diff] [blame] | 221 | DvrWriteBufferQueueGetExternalSurfacePtr |
Hendrik Wagenaar | 9255e3e | 2017-03-30 11:53:32 -0700 | [diff] [blame] | 222 | write_buffer_queue_get_external_surface; |
| 223 | DvrWriteBufferQueueCreateReadQueuePtr write_buffer_queue_create_read_queue; |
| 224 | DvrWriteBufferQueueDequeuePtr write_buffer_queue_dequeue; |
Jiwen 'Steve' Cai | 2d82ceb | 2017-03-22 17:26:00 -0700 | [diff] [blame] | 225 | |
| 226 | // Read buffer queue |
Hendrik Wagenaar | 9255e3e | 2017-03-30 11:53:32 -0700 | [diff] [blame] | 227 | DvrReadBufferQueueDestroyPtr read_buffer_queue_destroy; |
| 228 | DvrReadBufferQueueGetCapacityPtr read_buffer_queue_get_capacity; |
| 229 | DvrReadBufferQueueCreateReadQueuePtr read_buffer_queue_create_read_queue; |
Jiwen 'Steve' Cai | 2d82ceb | 2017-03-22 17:26:00 -0700 | [diff] [blame] | 230 | DvrReadBufferQueueDequeuePtr read_buffer_queue_dequeue; |
| 231 | |
Jiwen 'Steve' Cai | bdcee79 | 2017-03-22 16:59:53 -0700 | [diff] [blame] | 232 | // V-Sync client |
Hendrik Wagenaar | 9255e3e | 2017-03-30 11:53:32 -0700 | [diff] [blame] | 233 | DvrVSyncClientCreatePtr vsync_client_create; |
| 234 | DvrVSyncClientDestroyPtr vsync_client_destroy; |
| 235 | DvrVSyncClientGetSchedInfoPtr vsync_client_get_sched_info; |
Jiwen 'Steve' Cai | bdcee79 | 2017-03-22 16:59:53 -0700 | [diff] [blame] | 236 | |
| 237 | // Display surface |
Hendrik Wagenaar | 9255e3e | 2017-03-30 11:53:32 -0700 | [diff] [blame] | 238 | DvrGetPoseBufferPtr get_pose_buffer; |
| 239 | DvrSurfaceCreatePtr surface_create; |
| 240 | DvrSurfaceGetWriteBufferQueuePtr surface_get_write_buffer_queue; |
Jiwen 'Steve' Cai | bdcee79 | 2017-03-22 16:59:53 -0700 | [diff] [blame] | 241 | |
| 242 | // Pose client |
Hendrik Wagenaar | 9255e3e | 2017-03-30 11:53:32 -0700 | [diff] [blame] | 243 | DvrPoseClientCreatePtr pose_client_create; |
| 244 | DvrPoseClientDestroyPtr pose_client_destroy; |
| 245 | DvrPoseGetPtr pose_get; |
| 246 | DvrPoseGetVsyncCountPtr pose_get_vsync_count; |
| 247 | DvrPoseGetControllerPtr pose_get_controller; |
Jiwen 'Steve' Cai | bdcee79 | 2017-03-22 16:59:53 -0700 | [diff] [blame] | 248 | |
| 249 | // Virtual touchpad client |
Hendrik Wagenaar | 9255e3e | 2017-03-30 11:53:32 -0700 | [diff] [blame] | 250 | DvrVirtualTouchpadCreatePtr virtual_touchpad_create; |
| 251 | DvrVirtualTouchpadDestroyPtr virtual_touchpad_destroy; |
| 252 | DvrVirtualTouchpadAttachPtr virtual_touchpad_attach; |
| 253 | DvrVirtualTouchpadDetachPtr virtual_touchpad_detach; |
| 254 | DvrVirtualTouchpadTouchPtr virtual_touchpad_touch; |
| 255 | DvrVirtualTouchpadButtonStatePtr virtual_touchpad_button_state; |
Daniel Nicoara | 37cdc8d | 2017-03-27 16:56:05 -0400 | [diff] [blame] | 256 | |
| 257 | // VR HWComposer client |
| 258 | DvrHwcClientCreatePtr hwc_client_create; |
| 259 | DvrHwcClientDestroyPtr hwc_client_destroy; |
| 260 | DvrHwcFrameDestroyPtr hwc_frame_destroy; |
| 261 | DvrHwcFrameGetDisplayIdPtr hwc_frame_get_display_id; |
| 262 | DvrHwcFrameGetDisplayWidthPtr hwc_frame_get_display_width; |
| 263 | DvrHwcFrameGetDisplayHeightPtr hwc_frame_get_display_height; |
| 264 | DvrHwcFrameGetDisplayRemovedPtr hwc_frame_get_display_removed; |
| 265 | DvrHwcFrameGetLayerCountPtr hwc_frame_get_layer_count; |
| 266 | DvrHwcFrameGetLayerIdPtr hwc_frame_get_layer_id; |
| 267 | DvrHwcFrameGetLayerBufferPtr hwc_frame_get_layer_buffer; |
| 268 | DvrHwcFrameGetLayerFencePtr hwc_frame_get_layer_fence; |
| 269 | DvrHwcFrameGetLayerDisplayFramePtr hwc_frame_get_layer_display_frame; |
| 270 | DvrHwcFrameGetLayerCropPtr hwc_frame_get_layer_crop; |
| 271 | DvrHwcFrameGetLayerBlendModePtr hwc_frame_get_layer_blend_mode; |
| 272 | DvrHwcFrameGetLayerAlphaPtr hwc_frame_get_layer_alpha; |
| 273 | DvrHwcFrameGetLayerTypePtr hwc_frame_get_layer_type; |
| 274 | DvrHwcFrameGetLayerApplicationIdPtr hwc_frame_get_layer_application_id; |
Jiwen 'Steve' Cai | bdcee79 | 2017-03-22 16:59:53 -0700 | [diff] [blame] | 275 | }; |
| 276 | |
| 277 | int dvrGetApi(void* api, size_t struct_size, int version); |
| 278 | |
| 279 | #ifdef __cplusplus |
| 280 | } // extern "C" |
| 281 | #endif |
| 282 | |
| 283 | #endif // ANDROID_DVR_API_H_ |