tizen 2.3.1 release
[framework/web/mobile/wrt-plugins-tizen.git] / src / Exif / JSExifInformation.h
1 //
2 // Tizen Web Device API
3 // Copyright (c) 2014 Samsung Electronics Co., Ltd.
4 //
5 // Licensed under the Apache License, Version 2.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 // http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17
18 /**
19  * @file    JSExifInformation.h
20  */
21
22 #ifndef __TIZEN_JS_EXIF_INFORMATION_H__
23 #define __TIZEN_JS_EXIF_INFORMATION_H__
24
25 #include <JavaScriptCore/JavaScript.h>
26
27 #include "ExifInformation.h"
28
29 namespace DeviceAPI {
30 namespace Exif {
31
32 class JSExifInformation {
33 public:
34     static const JSClassDefinition* getClassInfo();
35     static const JSClassRef getClassRef();
36
37     static ExifInformationPtr getPrivateObject(JSContextRef context, JSValueRef value);
38
39     static JSObjectRef makeJSObject(JSContextRef context, ExifInformationPtr native);
40
41     static JSObjectRef constructor(JSContextRef context,
42             JSObjectRef constructor,
43             size_t argumentCount,
44             const JSValueRef arguments[],
45             JSValueRef* exception);
46
47 private:
48
49     /**
50      * This member variable contains the values which has to be passed
51      * when the this class is embedded into JS Engine.
52      */
53     static JSClassDefinition m_classInfo;
54
55     /**
56      * This structure describes a statically declared property.
57      */
58     static JSStaticValue m_property[];
59
60     static JSClassRef m_jsClassRef;
61
62     /**
63      * The callback invoked when an object is first created.
64      */
65     static void initialize(JSContextRef context, JSObjectRef object);
66
67     /**
68      * The callback invoked when an object is finalized.
69      */
70     static void finalize(JSObjectRef object);
71
72     /**
73      * getUri operation.
74      */
75     static JSValueRef getUri(JSContextRef context,
76             JSObjectRef object,
77             JSStringRef propertyName,
78             JSValueRef* exception);
79
80     /**
81      * setUri operation.
82      */
83     static bool setUri(JSContextRef context,
84             JSObjectRef object,
85             JSStringRef propertyName,
86             JSValueRef value,
87             JSValueRef* exception);
88
89     /**
90      * getWidth operation.
91      */
92     static JSValueRef getWidth(JSContextRef context,
93             JSObjectRef object,
94             JSStringRef propertyName,
95             JSValueRef* exception);
96
97     /**
98      * setWidth operation.
99      */
100     static bool setWidth(JSContextRef context,
101             JSObjectRef object,
102             JSStringRef propertyName,
103             JSValueRef value,
104             JSValueRef* exception);
105
106     /**
107      * getHeight operation.
108      */
109     static JSValueRef getHeight(JSContextRef context,
110             JSObjectRef object,
111             JSStringRef propertyName,
112             JSValueRef* exception);
113
114     /**
115      * setHeight operation.
116      */
117     static bool setHeight(JSContextRef context,
118             JSObjectRef object,
119             JSStringRef propertyName,
120             JSValueRef value,
121             JSValueRef* exception);
122
123     /**
124      * getDeviceMaker operation.
125      */
126     static JSValueRef getDeviceMaker(JSContextRef context,
127             JSObjectRef object,
128             JSStringRef propertyName,
129             JSValueRef* exception);
130
131     /**
132      * setDeviceMaker operation.
133      */
134     static bool setDeviceMaker(JSContextRef context,
135             JSObjectRef object,
136             JSStringRef propertyName,
137             JSValueRef value,
138             JSValueRef* exception);
139
140     /**
141      * getDeviceModel operation.
142      */
143     static JSValueRef getDeviceModel(JSContextRef context,
144             JSObjectRef object,
145             JSStringRef propertyName,
146             JSValueRef* exception);
147
148     /**
149      * setDeviceModel operation.
150      */
151     static bool setDeviceModel(JSContextRef context,
152             JSObjectRef object,
153             JSStringRef propertyName,
154             JSValueRef value,
155             JSValueRef* exception);
156
157     /**
158      * getOriginalTime operation.
159      */
160     static JSValueRef getOriginalTime(JSContextRef context,
161             JSObjectRef object,
162             JSStringRef propertyName,
163             JSValueRef* exception);
164
165     /**
166      * setOriginalTime operation.
167      */
168     static bool setOriginalTime(JSContextRef context,
169             JSObjectRef object,
170             JSStringRef propertyName,
171             JSValueRef value,
172             JSValueRef* exception);
173
174     /**
175      * getOrientation operation.
176      */
177     static JSValueRef getOrientation(JSContextRef context,
178             JSObjectRef object,
179             JSStringRef propertyName,
180             JSValueRef* exception);
181
182     /**
183      * setOrientation operation.
184      */
185     static bool setOrientation(JSContextRef context,
186             JSObjectRef object,
187             JSStringRef propertyName,
188             JSValueRef value,
189             JSValueRef* exception);
190
191     /**
192      * getFNumber operation.
193      */
194     static JSValueRef getFNumber(JSContextRef context,
195             JSObjectRef object,
196             JSStringRef propertyName,
197             JSValueRef* exception);
198
199     /**
200      * setFNumber operation.
201      */
202     static bool setFNumber(JSContextRef context,
203             JSObjectRef object,
204             JSStringRef propertyName,
205             JSValueRef value,
206             JSValueRef* exception);
207
208     /**
209      * getIsoSpeedRatings operation.
210      */
211     static JSValueRef getIsoSpeedRatings(JSContextRef context,
212             JSObjectRef object,
213             JSStringRef propertyName,
214             JSValueRef* exception);
215
216     /**
217      * setIsoSpeedRatings operation.
218      */
219     static bool setIsoSpeedRatings(JSContextRef context,
220             JSObjectRef object,
221             JSStringRef propertyName,
222             JSValueRef value,
223             JSValueRef* exception);
224
225     /**
226      * getExposureTime operation.
227      */
228     static JSValueRef getExposureTime(JSContextRef context,
229             JSObjectRef object,
230             JSStringRef propertyName,
231             JSValueRef* exception);
232
233     /**
234      * setExposureTime operation.
235      */
236     static bool setExposureTime(JSContextRef context,
237             JSObjectRef object,
238             JSStringRef propertyName,
239             JSValueRef value,
240             JSValueRef* exception);
241
242     /**
243      * getExposureProgram operation.
244      */
245     static JSValueRef getExposureProgram(JSContextRef context,
246             JSObjectRef object,
247             JSStringRef propertyName,
248             JSValueRef* exception);
249
250     /**
251      * setExposureProgram operation.
252      */
253     static bool setExposureProgram(JSContextRef context,
254             JSObjectRef object,
255             JSStringRef propertyName,
256             JSValueRef value,
257             JSValueRef* exception);
258
259     /**
260      * getFlash operation.
261      */
262     static JSValueRef getFlash(JSContextRef context,
263             JSObjectRef object,
264             JSStringRef propertyName,
265             JSValueRef* exception);
266
267     /**
268      * setFlash operation.
269      */
270     static bool setFlash(JSContextRef context,
271             JSObjectRef object,
272             JSStringRef propertyName,
273             JSValueRef value,
274             JSValueRef* exception);
275
276     /**
277      * getFocalLength operation.
278      */
279     static JSValueRef getFocalLength(JSContextRef context,
280             JSObjectRef object,
281             JSStringRef propertyName,
282             JSValueRef* exception);
283
284     /**
285      * setFocalLength operation.
286      */
287     static bool setFocalLength(JSContextRef context,
288             JSObjectRef object,
289             JSStringRef propertyName,
290             JSValueRef value,
291             JSValueRef* exception);
292
293     /**
294      * getWhiteBalance operation.
295      */
296     static JSValueRef getWhiteBalance(JSContextRef context,
297             JSObjectRef object,
298             JSStringRef propertyName,
299             JSValueRef* exception);
300
301     /**
302      * setWhiteBalance operation.
303      */
304     static bool setWhiteBalance(JSContextRef context,
305             JSObjectRef object,
306             JSStringRef propertyName,
307             JSValueRef value,
308             JSValueRef* exception);
309
310     /**
311      * getGpsLocation operation.
312      */
313     static JSValueRef getGpsLocation(JSContextRef context,
314             JSObjectRef object,
315             JSStringRef propertyName,
316             JSValueRef* exception);
317
318     /**
319      * setGpsLocation operation.
320      */
321     static bool setGpsLocation(JSContextRef context,
322             JSObjectRef object,
323             JSStringRef propertyName,
324             JSValueRef value,
325             JSValueRef* exception);
326
327     /**
328      * getGpsAltitude operation.
329      */
330     static JSValueRef getGpsAltitude(JSContextRef context,
331             JSObjectRef object,
332             JSStringRef propertyName,
333             JSValueRef* exception);
334
335     /**
336      * setGpsAltitude operation.
337      */
338     static bool setGpsAltitude(JSContextRef context,
339             JSObjectRef object,
340             JSStringRef propertyName,
341             JSValueRef value,
342             JSValueRef* exception);
343
344     /**
345      * getGpsProcessingMethod operation.
346      */
347     static JSValueRef getGpsProcessingMethod(JSContextRef context,
348             JSObjectRef object,
349             JSStringRef propertyName,
350             JSValueRef* exception);
351
352     /**
353      * setGpsProcessingMethod operation.
354      */
355     static bool setGpsProcessingMethod(JSContextRef context,
356             JSObjectRef object,
357             JSStringRef propertyName,
358             JSValueRef value,
359             JSValueRef* exception);
360
361     /**
362      * getGpsTime operation.
363      */
364     static JSValueRef getGpsTime(JSContextRef context,
365             JSObjectRef object,
366             JSStringRef propertyName,
367             JSValueRef* exception);
368
369     /**
370      * setGpsTime operation.
371      */
372     static bool setGpsTime(JSContextRef context,
373             JSObjectRef object,
374             JSStringRef propertyName,
375             JSValueRef value,
376             JSValueRef* exception);
377
378     /**
379      * getUserComment operation.
380      */
381     static JSValueRef getUserComment(JSContextRef context,
382             JSObjectRef object,
383             JSStringRef propertyName,
384             JSValueRef* exception);
385
386     /**
387      * setUserComment operation.
388      */
389     static bool setUserComment(JSContextRef context,
390             JSObjectRef object,
391             JSStringRef propertyName,
392             JSValueRef value,
393             JSValueRef* exception);
394 };
395
396 } // Exif
397 } // DeviceAPI
398
399 #endif // __TIZEN_JS_EXIF_INFORMATION_H__