• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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