michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this file, michael@0: * You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: #ifndef DOM_CAMERA_DOMCAMERACONTROLLISTENER_H michael@0: #define DOM_CAMERA_DOMCAMERACONTROLLISTENER_H michael@0: michael@0: #include "nsProxyRelease.h" michael@0: #include "CameraControlListener.h" michael@0: michael@0: namespace mozilla { michael@0: michael@0: class nsDOMCameraControl; michael@0: class CameraPreviewMediaStream; michael@0: michael@0: class DOMCameraControlListener : public CameraControlListener michael@0: { michael@0: public: michael@0: DOMCameraControlListener(nsDOMCameraControl* aDOMCameraControl, CameraPreviewMediaStream* aStream); michael@0: michael@0: virtual void OnAutoFocusComplete(bool aAutoFocusSucceeded) MOZ_OVERRIDE; michael@0: virtual void OnAutoFocusMoving(bool aIsMoving) MOZ_OVERRIDE; michael@0: virtual void OnFacesDetected(const nsTArray& aFaces) MOZ_OVERRIDE; michael@0: virtual void OnTakePictureComplete(uint8_t* aData, uint32_t aLength, const nsAString& aMimeType) MOZ_OVERRIDE; michael@0: michael@0: virtual void OnHardwareStateChange(HardwareState aState) MOZ_OVERRIDE; michael@0: virtual void OnPreviewStateChange(PreviewState aState) MOZ_OVERRIDE; michael@0: virtual void OnRecorderStateChange(RecorderState aState, int32_t aStatus, int32_t aTrackNum) MOZ_OVERRIDE; michael@0: virtual void OnConfigurationChange(const CameraListenerConfiguration& aConfiguration) MOZ_OVERRIDE; michael@0: virtual void OnShutter() MOZ_OVERRIDE; michael@0: virtual bool OnNewPreviewFrame(layers::Image* aImage, uint32_t aWidth, uint32_t aHeight) MOZ_OVERRIDE; michael@0: virtual void OnError(CameraErrorContext aContext, CameraError aError) MOZ_OVERRIDE; michael@0: michael@0: protected: michael@0: virtual ~DOMCameraControlListener(); michael@0: michael@0: nsMainThreadPtrHandle mDOMCameraControl; michael@0: CameraPreviewMediaStream* mStream; michael@0: michael@0: class DOMCallback; michael@0: michael@0: private: michael@0: DOMCameraControlListener(const DOMCameraControlListener&) MOZ_DELETE; michael@0: DOMCameraControlListener& operator=(const DOMCameraControlListener&) MOZ_DELETE; michael@0: }; michael@0: michael@0: } // namespace mozilla michael@0: michael@0: #endif // DOM_CAMERA_DOMCAMERACONTROLLISTENER_H