Bug 788829 - Call SetSizeConstraints even if a popup is not open. r=enndeakin
[gecko.git] / dom / camera / ICameraControl.h
blob571fbbd501327746770abd5f17a081e125881469
1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
3 * You can obtain one at http://mozilla.org/MPL/2.0/. */
5 #ifndef DOM_CAMERA_ICAMERACONTROL_H
6 #define DOM_CAMERA_ICAMERACONTROL_H
8 #include "jsapi.h"
9 #include "nsIDOMDeviceStorage.h"
10 #include "nsIDOMCameraManager.h"
11 #include "DictionaryHelpers.h"
12 #include "CameraCommon.h"
14 namespace mozilla {
16 using namespace dom;
18 class DOMCameraPreview;
20 class ICameraControl
22 public:
23 NS_INLINE_DECL_THREADSAFE_REFCOUNTING(ICameraControl)
25 virtual nsresult GetPreviewStream(CameraSize aSize, nsICameraPreviewStreamCallback* onSuccess, nsICameraErrorCallback* onError) = 0;
26 virtual nsresult StartPreview(DOMCameraPreview* aDOMPreview) = 0;
27 virtual void StopPreview() = 0;
28 virtual nsresult AutoFocus(nsICameraAutoFocusCallback* onSuccess, nsICameraErrorCallback* onError) = 0;
29 virtual nsresult TakePicture(CameraSize aSize, int32_t aRotation, const nsAString& aFileFormat, CameraPosition aPosition, nsICameraTakePictureCallback* onSuccess, nsICameraErrorCallback* onError) = 0;
30 virtual nsresult StartRecording(nsIDOMDeviceStorage* aStorageArea, const nsAString& aFilename, nsICameraStartRecordingCallback* onSuccess, nsICameraErrorCallback* onError) = 0;
31 virtual nsresult StopRecording() = 0;
32 virtual nsresult GetPreviewStreamVideoMode(CameraRecordingOptions* aOptions, nsICameraPreviewStreamCallback* onSuccess, nsICameraErrorCallback* onError) = 0;
34 virtual nsresult Set(uint32_t aKey, const nsAString& aValue) = 0;
35 virtual nsresult Get(uint32_t aKey, nsAString& aValue) = 0;
36 virtual nsresult Set(uint32_t aKey, double aValue) = 0;
37 virtual nsresult Get(uint32_t aKey, double* aValue) = 0;
38 virtual nsresult Set(JSContext* aCx, uint32_t aKey, const JS::Value& aValue, uint32_t aLimit) = 0;
39 virtual nsresult Get(JSContext* aCx, uint32_t aKey, JS::Value* aValue) = 0;
40 virtual nsresult Set(nsICameraShutterCallback* aOnShutter) = 0;
41 virtual nsresult Get(nsICameraShutterCallback** aOnShutter) = 0;
42 virtual nsresult Set(nsICameraClosedCallback* aOnClosed) = 0;
43 virtual nsresult Get(nsICameraClosedCallback** aOnClosed) = 0;
44 virtual nsresult SetFocusAreas(JSContext* aCx, const JS::Value& aValue) = 0;
45 virtual nsresult SetMeteringAreas(JSContext* aCx, const JS::Value& aValue) = 0;
47 virtual const char* GetParameter(const char* aKey) = 0;
48 virtual const char* GetParameterConstChar(uint32_t aKey) = 0;
49 virtual double GetParameterDouble(uint32_t aKey) = 0;
50 virtual void GetParameter(uint32_t aKey, nsTArray<CameraRegion>& aRegions) = 0;
51 virtual void SetParameter(const char* aKey, const char* aValue) = 0;
52 virtual void SetParameter(uint32_t aKey, const char* aValue) = 0;
53 virtual void SetParameter(uint32_t aKey, double aValue) = 0;
54 virtual void SetParameter(uint32_t aKey, const nsTArray<CameraRegion>& aRegions) = 0;
56 virtual void Shutdown() = 0;
58 protected:
59 virtual ~ICameraControl() { }
62 } // namespace mozilla
64 #endif // DOM_CAMERA_ICAMERACONTROL_H