Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / ppapi / c / private / ppb_camera_capabilities_private.h
1 /* Copyright 2014 The Chromium Authors. All rights reserved.
2  * Use of this source code is governed by a BSD-style license that can be
3  * found in the LICENSE file.
4  */
5
6 /* From private/ppb_camera_capabilities_private.idl,
7  *   modified Fri Aug 22 11:08:14 2014.
8  */
9
10 #ifndef PPAPI_C_PRIVATE_PPB_CAMERA_CAPABILITIES_PRIVATE_H_
11 #define PPAPI_C_PRIVATE_PPB_CAMERA_CAPABILITIES_PRIVATE_H_
12
13 #include "ppapi/c/pp_bool.h"
14 #include "ppapi/c/pp_instance.h"
15 #include "ppapi/c/pp_macros.h"
16 #include "ppapi/c/pp_resource.h"
17 #include "ppapi/c/pp_size.h"
18 #include "ppapi/c/pp_stdint.h"
19
20 #define PPB_CAMERACAPABILITIES_PRIVATE_INTERFACE_0_1 \
21     "PPB_CameraCapabilities_Private;0.1"
22 #define PPB_CAMERACAPABILITIES_PRIVATE_INTERFACE \
23     PPB_CAMERACAPABILITIES_PRIVATE_INTERFACE_0_1
24
25 /**
26  * @file
27  * This file defines the PPB_CameraCapabilities_Private interface for
28  * establishing an image capture configuration resource within the browser.
29  */
30
31
32 /**
33  * @addtogroup Interfaces
34  * @{
35  */
36 /**
37  * The <code>PPB_CameraCapabilities_Private</code> interface contains pointers
38  * to several functions for getting the image capture capabilities within the
39  * browser.
40  */
41 struct PPB_CameraCapabilities_Private_0_1 {
42   /**
43    * Creates a PPB_CameraCapabilities_Private resource.
44    *
45    * @param[in] instance A <code>PP_Instance</code> identifying one instance of
46    * a module.
47    *
48    * @return A <code>PP_Resource</code> corresponding to a
49    * PPB_CameraCapabilities_Private resource if successful, 0 if failed.
50    */
51   PP_Resource (*Create)(PP_Instance instance);
52   /**
53    * IsCameraCapabilities() determines if the given resource is a
54    * <code>PPB_CameraCapabilities_Private</code>.
55    *
56    * @param[in] resource A <code>PP_Resource</code> corresponding to an image
57    * capture capabilities resource.
58    *
59    * @return A <code>PP_Bool</code> containing <code>PP_TRUE</code> if the given
60    * resource is an <code>PP_CameraCapabilities_Private</code> resource,
61    * otherwise <code>PP_FALSE</code>.
62    */
63   PP_Bool (*IsCameraCapabilities)(PP_Resource resource);
64   /**
65    * GetSupportedPreviewSizes() returns the supported preview sizes for the
66    * given <code>PPB_CameraCapabilities_Private</code>.
67    *
68    * @param[in] capabilities A <code>PP_Resource</code> corresponding to an
69    * image capture capabilities resource.
70    * @param[out] array_size The size of preview size array.
71    * @param[out] preview_sizes An array of <code>PP_Size</code> corresponding
72    * to the supported preview sizes in pixels. The ownership of the array
73    * belongs to <code>PPB_CameraCapabilities_Private</code> and the caller
74    * should not free it. When a PPB_CameraCapabilities_Private is deleted,
75    * the array returning from this is no longer valid.
76    */
77   void (*GetSupportedPreviewSizes)(PP_Resource capabilities,
78                                    int32_t* array_size,
79                                    struct PP_Size** preview_sizes);
80   /**
81    * GetSupportedJpegSize() returns the supported JPEG sizes for the given
82    * <code>PPB_CameraCapabilities_Private</code>.
83    *
84    * @param[in] capabilities A <code>PP_Resource</code> corresponding to an
85    * image capture capabilities resource.
86    * @param[out] array_size The size of JPEG size array. If the output of this
87    * is 0, the camera has no support for generating JPEG images.
88    * @param[out] jpeg_sizes An array of <code>PP_Size</code> corresponding to
89    * the supported JPEG image sizes in pixels. The ownership of the array
90    * belongs to <code>PPB_CameraCapabilities_Private</code> and the caller
91    * should not free it. When a PPB_CameraCapabilities_Private is deleted, the
92    * array returning from this is no longer valid.
93    */
94   void (*GetSupportedJpegSizes)(PP_Resource capabilities,
95                                 int32_t* array_size,
96                                 struct PP_Size** jpeg_sizes);
97 };
98
99 typedef struct PPB_CameraCapabilities_Private_0_1
100     PPB_CameraCapabilities_Private;
101 /**
102  * @}
103  */
104
105 #endif  /* PPAPI_C_PRIVATE_PPB_CAMERA_CAPABILITIES_PRIVATE_H_ */
106