MeeGo 1.2 Harmattan Developer Documentation Develop for the Nokia N9

FCam::N9::Flash Class Reference

The LED flash on the Nokia N9. More...

Inheritance diagram for FCam::N9::Flash:
Inheritance graph
[legend]
Collaboration diagram for FCam::N9::Flash:
Collaboration graph
[legend]

List of all members.

Public Member Functions

int  minDuration ()
  The flash on the N9 fires for either 100 or 850ms.
int  maxDuration ()
  The flash on the N9 fires for either 100 or 850ms.
float  minBrightness ()
  The flash on the N9 has a minimum brightness setting of 220.0 mA.
float  maxBrightness ()
  The flash on the N9 has a maximum brightness settings of 360.0 mA.
void  fire (float brightness, int duration)
  Fire the flash with a given brightness for a given number of microseconds.
int  fireLatency ()
  The N9's flash will begin to emit light about 1.7 ms after N9::Flash::fire is called, plus or minus about 100 microseconds.
float  getBrightness (Time)
  Return the brightness of the flash at a specific time.
bool  isReady ()
  Return whether the flash can be fired right now.
void  tagFrame (FCam::Frame)
  Tag a frame with the state of the flash during that frame.

Detailed Description

The LED flash on the Nokia N9.

It is fairly weak, and can only fire for either 100ms or 150ms. The N9 has a rolling shutter sensor, so you will typically want to fire it at the start of the exposure and keep it illuminated for the entire exposure time plus the sensor's rolling shutter time (N9::Sensor::rollingShutterTime) - otherwise you will see different scanlines illuminated by different amounts.

The flash kernel driver enforces a duty cycle of <10% to prevent overheating, so at minimum duration you can only fire it once every second, and at maximum duration you can only fire it once every 1.5 seconds.


Member Function Documentation

int FCam::N9::Flash::minDuration (  )  [inline, virtual]

The flash on the N9 fires for either 100 or 850ms.

Implements FCam::Flash.

int FCam::N9::Flash::maxDuration (  )  [inline, virtual]

The flash on the N9 fires for either 100 or 850ms.

Implements FCam::Flash.

void FCam::N9::Flash::fire ( float  brightness,
int  duration  
) [virtual]

Fire the flash with a given brightness for a given number of microseconds.

Implements FCam::Flash.

int FCam::N9::Flash::fireLatency (  )  [inline, virtual]

The N9's flash will begin to emit light about 1.7 ms after N9::Flash::fire is called, plus or minus about 100 microseconds.

Implements FCam::Flash.

float FCam::N9::Flash::getBrightness ( Time   )  [virtual]

Return the brightness of the flash at a specific time.

The N9's flash has very little ramp-up and ramp-down time, so this will either return the requested brightness or zero.

Implements FCam::Flash.

bool FCam::N9::Flash::isReady (  ) 

Return whether the flash can be fired right now.

The N9's flash has a maximum duty cycle of 10%, so much of the time it cannot be fired.

void FCam::N9::Flash::tagFrame ( FCam::Frame   )  [virtual]

Tag a frame with the state of the flash during that frame.

Implements FCam::Flash.


Copyright (c) 2012, Nokia Corporation and/or its subsidiary(-ies). All rights reserved. See Copyright.
MeeGo 1.2 Harmattan API