Public Member Functions

FCam::N900::Lens Class Reference

The Lens on the Nokia N900. More...

#include <Lens.h>

Inheritance diagram for FCam::N900::Lens:
Inheritance graph
[legend]
Collaboration diagram for FCam::N900::Lens:
Collaboration graph
[legend]

List of all members.

Public Member Functions

void setFocus (float, float speed)
 Set the focus of the lens in diopters.
float getFocus () const
 Get the current focus of the lens in diopters.
float farFocus () const
 The N900 lens focuses to infinity (zero diopters).
float nearFocus () const
 The closest focus distance is 5cm (20 diopters).
bool focusChanging () const
 Is the focus currently changing?
float minFocusSpeed () const
 The N900's lens can change focus as slowly as 90 diopters per second, which covers the entire focal range in about 2.2s.
float maxFocusSpeed () const
 The N900's lens can change focus as quickly as 5800 diopters per second, which covers the entire focal range in about 34ms.
int focusLatency () const
 if I call setFocus, how long will it take before the lens starts moving?
void setZoom (float, float)
 The N900's lens is fixed at a focal length of 5.2mm.
float getZoom () const
 The N900's lens is fixed at a focal length of 5.2mm.
float minZoom () const
 The N900's lens is fixed at a focal length of 5.2mm.
float maxZoom () const
 The N900's lens is fixed at a focal length of 5.2mm.
bool zoomChanging () const
 The N900's lens is fixed at a focal length of 5.2mm.
float minZoomSpeed () const
 The N900's lens is fixed at a focal length of 5.2mm.
float maxZoomSpeed () const
 The N900's lens is fixed at a focal length of 5.2mm.
int zoomLatency () const
 The N900's lens is fixed at a focal length of 5.2mm.
void setAperture (float, float)
 The N900's aperture is fixed at F/2.8.
float getAperture () const
 The N900's aperture is fixed at F/2.8.
float wideAperture (float) const
 The N900's aperture is fixed at F/2.8.
float narrowAperture (float) const
 The N900's aperture is fixed at F/2.8.
bool apertureChanging () const
 The N900's aperture is fixed at F/2.8.
int apertureLatency () const
 The N900's aperture is fixed at F/2.8.
float minApertureSpeed () const
 The N900's aperture is fixed at F/2.8.
float maxApertureSpeed () const
 The N900's aperture is fixed at F/2.8.
void tagFrame (FCam::Frame)
 Tag a frame with the state of the Lens during that frame.
float getFocus (Time t) const
 What was the focus at some time in the past? Uses linear interpolation from known lens positions.

Detailed Description

The Lens on the Nokia N900.

The N900 has a lens capable of focus at a programmable speed. However, the zoom and aperture are fixed.

Definition at line 17 of file Lens.h.


Member Function Documentation

void FCam::N900::Lens::setFocus ( float  ,
float  speed 
) [virtual]

Set the focus of the lens in diopters.

See Focus for a discussion of diopters.

The second argument is the focus speed in diopters per second. Numbers less than zero (like the default), get mapped to max speed. This function initiates the change in focus and returns. It may take some time before the focus actually reaches the target position (or as close as it can get). Use FCam::Lens::focusChanging to see if the lens is still moving.

Implements FCam::Lens.

Definition at line 65 of file Lens.cpp.

float FCam::N900::Lens::getFocus (  )  const [virtual]

Get the current focus of the lens in diopters.

Implements FCam::Lens.

Definition at line 110 of file Lens.cpp.

float FCam::N900::Lens::minFocusSpeed (  )  const [virtual]

The N900's lens can change focus as slowly as 90 diopters per second, which covers the entire focal range in about 2.2s.

If you want a speed slower than this, you'll have to step the lens through discrete positions.

Implements FCam::Lens.

Definition at line 138 of file Lens.cpp.

float FCam::N900::Lens::maxFocusSpeed (  )  const [virtual]

The N900's lens can change focus as quickly as 5800 diopters per second, which covers the entire focal range in about 34ms.

Implements FCam::Lens.

Definition at line 143 of file Lens.cpp.

void FCam::N900::Lens::tagFrame ( FCam::Frame  f  )  [virtual]

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

See Lens::Tags

Implements FCam::Lens.

Definition at line 172 of file Lens.cpp.

float FCam::N900::Lens::getFocus ( Time  t  )  const

What was the focus at some time in the past? Uses linear interpolation from known lens positions.

Definition at line 114 of file Lens.cpp.


The documentation for this class was generated from the following files: