1component_class: HAL_CONVENTIONAL_SUBMODULE 2component_type: CAMERA 3component_type_version: 2.1 4 5original_data_structure_name: "struct camera_device_ops" 6 7header: "<hardware/hardware.h>" 8header: "<hardware/camera_common.h>" 9header: "<hardware/camera.h>" 10 11interface: { 12 api: { 13 name: "set_preview_window" 14 return_type: { 15 type: TYPE_SCALAR 16 scalar_type: "int32_t" 17 } 18 arg: { 19 type: TYPE_PREDEFINED 20 scalar_type: "pointer" 21 predefined_type: "struct camera_device*" 22 } 23 arg: { 24 type: TYPE_PREDEFINED 25 scalar_type: "pointer" 26 predefined_type: "struct preview_stream_ops*" 27 } 28 } 29 30 api: { 31 name: "set_callbacks" 32 return_type: { 33 type: TYPE_VOID 34 } 35 arg: { 36 type: TYPE_PREDEFINED 37 scalar_type: "pointer" 38 predefined_type: "struct camera_device*" 39 } 40 arg: { 41 type: TYPE_PREDEFINED 42 scalar_type: "pointer" 43 predefined_type: "camera_notify_callback" 44 is_callback: true 45 } 46 arg: { 47 type: TYPE_PREDEFINED 48 scalar_type: "pointer" 49 predefined_type: "camera_data_callback" 50 is_callback: true 51 } 52 arg: { 53 type: TYPE_PREDEFINED 54 scalar_type: "pointer" 55 predefined_type: "camera_data_timestamp_callback" 56 is_callback: true 57 } 58 arg: { 59 type: TYPE_PREDEFINED 60 scalar_type: "pointer" 61 predefined_type: "camera_request_memory" 62 is_callback: true 63 } 64 arg: { 65 type: TYPE_SCALAR 66 scalar_type: "void_pointer" 67 } 68 } 69 70 api: { 71 name: "enable_msg_type" 72 return_type: { 73 type: TYPE_VOID 74 } 75 arg: { 76 type: TYPE_PREDEFINED 77 scalar_type: "pointer" 78 predefined_type: "struct camera_device*" 79 } 80 arg: { 81 type: TYPE_SCALAR 82 scalar_type: "int32_t" 83 } 84 } 85 86 api: { 87 name: "disable_msg_type" 88 return_type: { 89 type: TYPE_VOID 90 } 91 arg: { 92 type: TYPE_PREDEFINED 93 scalar_type: "pointer" 94 predefined_type: "struct camera_device*" 95 } 96 arg: { 97 type: TYPE_SCALAR 98 scalar_type: "int32_t" 99 } 100 } 101 102 api: { 103 name: "msg_type_enabled" 104 return_type: { 105 type: TYPE_SCALAR 106 scalar_type: "int32_t" 107 } 108 arg: { 109 type: TYPE_PREDEFINED 110 scalar_type: "pointer" 111 predefined_type: "struct camera_device*" 112 } 113 arg: { 114 type: TYPE_SCALAR 115 scalar_type: "int32_t" 116 } 117 } 118 119 api: { 120 name: "start_preview" 121 return_type: { 122 type: TYPE_SCALAR 123 scalar_type: "int32_t" 124 } 125 arg: { 126 type: TYPE_PREDEFINED 127 scalar_type: "pointer" 128 predefined_type: "struct camera_device*" 129 } 130 } 131 132 api: { 133 name: "stop_preview" 134 return_type: { 135 type: TYPE_VOID 136 } 137 arg: { 138 type: TYPE_PREDEFINED 139 scalar_type: "pointer" 140 predefined_type: "struct camera_device*" 141 } 142 } 143 144 api: { 145 name: "preview_enabled" 146 return_type: { 147 type: TYPE_SCALAR 148 scalar_type: "int32_t" 149 } 150 arg: { 151 type: TYPE_PREDEFINED 152 scalar_type: "pointer" 153 predefined_type: "struct camera_device*" 154 } 155 } 156 157 api: { 158 name: "store_meta_data_in_buffers" 159 return_type: { 160 type: TYPE_SCALAR 161 scalar_type: "int32_t" 162 } 163 arg: { 164 type: TYPE_PREDEFINED 165 scalar_type: "pointer" 166 predefined_type: "struct camera_device*" 167 } 168 arg: { 169 type: TYPE_SCALAR 170 scalar_type: "int32_t" 171 } 172 } 173 174 api: { 175 name: "start_recording" 176 return_type: { 177 type: TYPE_SCALAR 178 scalar_type: "int32_t" 179 } 180 arg: { 181 type: TYPE_PREDEFINED 182 scalar_type: "pointer" 183 predefined_type: "struct camera_device*" 184 } 185 } 186 187 api: { 188 name: "stop_recording" 189 return_type: { 190 type: TYPE_VOID 191 } 192 arg: { 193 type: TYPE_PREDEFINED 194 scalar_type: "pointer" 195 predefined_type: "struct camera_device*" 196 } 197 } 198 199 api: { 200 name: "recording_enabled" 201 return_type: { 202 type: TYPE_SCALAR 203 scalar_type: "int32_t" 204 } 205 arg: { 206 type: TYPE_PREDEFINED 207 scalar_type: "pointer" 208 predefined_type: "struct camera_device*" 209 } 210 } 211 212 api: { 213 name: "release_recording_frame" 214 return_type: { 215 type: TYPE_VOID 216 } 217 arg: { 218 type: TYPE_PREDEFINED 219 scalar_type: "pointer" 220 predefined_type: "struct camera_device*" 221 } 222 arg: { 223 type: TYPE_SCALAR 224 scalar_type: "void_pointer" 225 } 226 } 227 228 api: { 229 name: "auto_focus" 230 return_type: { 231 type: TYPE_SCALAR 232 scalar_type: "int32_t" 233 } 234 arg: { 235 type: TYPE_PREDEFINED 236 scalar_type: "pointer" 237 predefined_type: "struct camera_device*" 238 } 239 } 240 241 api: { 242 name: "cancel_auto_focus" 243 return_type: { 244 type: TYPE_SCALAR 245 scalar_type: "int32_t" 246 } 247 arg: { 248 type: TYPE_PREDEFINED 249 scalar_type: "pointer" 250 predefined_type: "struct camera_device*" 251 } 252 } 253 254 api: { 255 name: "take_picture" 256 return_type: { 257 type: TYPE_SCALAR 258 scalar_type: "int32_t" 259 } 260 arg: { 261 type: TYPE_PREDEFINED 262 scalar_type: "pointer" 263 predefined_type: "struct camera_device*" 264 } 265 } 266 267 api: { 268 name: "cancel_picture" 269 return_type: { 270 type: TYPE_SCALAR 271 scalar_type: "int32_t" 272 } 273 arg: { 274 type: TYPE_PREDEFINED 275 scalar_type: "pointer" 276 predefined_type: "struct camera_device*" 277 } 278 } 279 280 api: { 281 name: "set_parameters" 282 return_type: { 283 type: TYPE_SCALAR 284 scalar_type: "int32_t" 285 } 286 arg: { 287 type: TYPE_PREDEFINED 288 scalar_type: "pointer" 289 predefined_type: "struct camera_device*" 290 } 291 arg: { 292 type: TYPE_SCALAR 293 scalar_type: "char_pointer" 294 } 295 } 296 297 api: { 298 name: "get_parameters" 299 return_type: { 300 type: TYPE_SCALAR 301 scalar_type: "char_pointer" 302 } 303 arg: { 304 type: TYPE_PREDEFINED 305 scalar_type: "pointer" 306 predefined_type: "struct camera_device*" 307 } 308 } 309 310 api: { 311 name: "put_parameters" 312 return_type: { 313 type: TYPE_VOID 314 } 315 arg: { 316 type: TYPE_PREDEFINED 317 scalar_type: "pointer" 318 predefined_type: "struct camera_device*" 319 } 320 arg: { 321 type: TYPE_SCALAR 322 scalar_type: "char_pointer" 323 } 324 } 325 326 api: { 327 name: "send_command" 328 return_type: { 329 type: TYPE_SCALAR 330 scalar_type: "int32_t" 331 } 332 arg: { 333 type: TYPE_PREDEFINED 334 scalar_type: "pointer" 335 predefined_type: "struct camera_device*" 336 } 337 arg: { 338 type: TYPE_SCALAR 339 scalar_type: "int32_t" 340 } 341 arg: { 342 type: TYPE_SCALAR 343 scalar_type: "int32_t" 344 } 345 arg: { 346 type: TYPE_SCALAR 347 scalar_type: "int32_t" 348 } 349 } 350 351 api: { 352 name: "release" 353 return_type: { 354 type: TYPE_VOID 355 } 356 arg: { 357 type: TYPE_PREDEFINED 358 scalar_type: "pointer" 359 predefined_type: "struct camera_device*" 360 } 361 } 362 363 api: { 364 name: "dump" 365 return_type: { 366 type: TYPE_SCALAR 367 scalar_type: "int32_t" 368 } 369 arg: { 370 type: TYPE_PREDEFINED 371 scalar_type: "pointer" 372 predefined_type: "struct camera_device*" 373 } 374 arg: { 375 type: TYPE_SCALAR 376 scalar_type: "int32_t" 377 } 378 } 379 380 attribute: { 381 name: "camera_notify_callback" 382 383 type: TYPE_FUNCTION_POINTER 384 385 function_pointer: { 386 function_name: "camera_notify_callback" 387 arg: { 388 type: TYPE_SCALAR 389 scalar_type: "int32_t" 390 } 391 arg: { 392 type: TYPE_SCALAR 393 scalar_type: "int32_t" 394 } 395 arg: { 396 type: TYPE_SCALAR 397 scalar_type: "int32_t" 398 } 399 arg: { 400 type: TYPE_SCALAR 401 scalar_type: "void_pointer" 402 } 403 } 404 405 is_callback: true 406 } 407 408 attribute: { 409 name: "camera_data_callback" 410 411 type: TYPE_FUNCTION_POINTER 412 413 function_pointer: { 414 function_name: "camera_data_callback" 415 arg: { 416 type: TYPE_SCALAR 417 scalar_type: "int32_t" 418 } 419 arg: { 420 type: TYPE_PREDEFINED 421 scalar_type: "pointer" 422 predefined_type: "camera_memory_t*" 423 is_const: true 424 } 425 arg: { 426 type: TYPE_SCALAR 427 scalar_type: "uint32_t" 428 } 429 arg: { 430 type: TYPE_PREDEFINED 431 scalar_type: "pointer" 432 predefined_type: "camera_frame_metadata_t*" 433 } 434 arg: { 435 type: TYPE_SCALAR 436 scalar_type: "void_pointer" 437 } 438 } 439 440 is_callback: true 441 } 442 443 attribute: { 444 name: "camera_data_timestamp_callback" 445 446 type: TYPE_FUNCTION_POINTER 447 448 function_pointer: { 449 function_name: "camera_data_timestamp_callback" 450 arg: { 451 type: TYPE_SCALAR 452 scalar_type: "int64_t" 453 } 454 arg: { 455 type: TYPE_SCALAR 456 scalar_type: "int32_t" 457 } 458 arg: { 459 type: TYPE_PREDEFINED 460 scalar_type: "pointer" 461 predefined_type: "camera_memory_t*" 462 is_const: true 463 } 464 arg: { 465 type: TYPE_SCALAR 466 scalar_type: "uint32_t" 467 } 468 arg: { 469 type: TYPE_SCALAR 470 scalar_type: "void_pointer" 471 } 472 } 473 474 is_callback: true 475 } 476 477 attribute: { 478 name: "camera_request_memory" 479 480 type: TYPE_FUNCTION_POINTER 481 482 function_pointer: { 483 function_name: "camera_request_memory" 484 return_type: { 485 type: TYPE_PREDEFINED 486 scalar_type: "pointer" 487 predefined_type: "camera_memory_t*" 488 } 489 arg: { 490 type: TYPE_SCALAR 491 scalar_type: "int32_t" 492 } 493 arg: { 494 type: TYPE_SCALAR 495 scalar_type: "size_t" 496 } 497 arg: { 498 type: TYPE_SCALAR 499 scalar_type: "uint32_t" 500 } 501 arg: { 502 type: TYPE_SCALAR 503 scalar_type: "void_pointer" 504 } 505 } 506 507 is_callback: true 508 } 509} 510