Camera1394 Features class. More...
#include <features.h>
Public Member Functions | |
Features (dc1394camera_t *camera) | |
bool | initialize (Config *newconfig) |
void | reconfigure (Config *newconfig) |
~Features () | |
Private Types | |
typedef int | state_t |
camera1394::Camera1394_* state values | |
Private Member Functions | |
void | configure (dc1394feature_t feature, int *control, double *value, double *value2=NULL) |
state_t | getState (dc1394feature_info_t *finfo) |
void | getValues (dc1394feature_info_t *finfo, double *value, double *value2) |
bool | hasMode (dc1394feature_info_t *finfo, dc1394feature_mode_t mode) |
bool | setMode (dc1394feature_info_t *finfo, dc1394feature_mode_t mode) |
void | setPower (dc1394feature_info_t *finfo, dc1394switch_t on_off) |
void | updateIfChanged (dc1394feature_t feature, int old_control, int *control, double old_value, double *value) |
void | updateIfChanged (dc1394feature_t feature, int old_control, int *control, double old_value, double *value, double old_value2, double *value2) |
Private Attributes | |
dc1394camera_t * | camera_ |
current camera | |
dc1394featureset_t | feature_set_ |
that camera's feature set | |
Config | oldconfig_ |
previous Config settings |
Camera1394 Features class.
Sets IIDC features from Config updates. Tracks values and ranges, modifying configured values to those supported by the device.
Definition at line 60 of file features.h.
typedef int Features::state_t [private] |
camera1394::Camera1394_* state values
Definition at line 70 of file features.h.
Features::Features | ( | dc1394camera_t * | camera | ) |
Constructor
camera | address of DC1394 camera structure. |
Definition at line 124 of file features.cpp.
Features::~Features | ( | ) | [inline] |
Definition at line 65 of file features.h.
void Features::configure | ( | dc1394feature_t | feature, |
int * | control, | ||
double * | value, | ||
double * | value2 = NULL |
||
) | [private] |
Configure a feature for the currently open device.
feature | desired feature number |
control | [in,out] pointer to control parameter (may change) |
value | [in,out] pointer to requested parameter value (may change depending on device restrictions) |
value2 | [in,out] optional pointer to second parameter value for white balance (may change depending on device restrictions). No second value if NULL pointer. |
The parameter values are represented as double despite the fact that most features on most cameras only allow unsigned 12-bit values. The exception is the rare feature that supports "absolute" values in 32-bit IEEE float format. Double can represent all possible option values accurately.
Definition at line 262 of file features.cpp.
Features::state_t Features::getState | ( | dc1394feature_info_t * | finfo | ) | [private] |
Get current state of a feature from the camera.
finfo | pointer to information for this feature |
Definition at line 402 of file features.cpp.
void Features::getValues | ( | dc1394feature_info_t * | finfo, |
double * | value, | ||
double * | value2 | ||
) | [private] |
Get feature values.
finfo | pointer to information for this feature |
value | [out] pointer where parameter value stored |
value2 | [out] optional pointer for second parameter value for white balance. Otherwise NULL. |
Definition at line 463 of file features.cpp.
bool Features::hasMode | ( | dc1394feature_info_t * | finfo, |
dc1394feature_mode_t | mode | ||
) | [inline, private] |
Does this camera feature support a given mode?
finfo | pointer to information for this feature |
mode | DC1394 mode desired |
Definition at line 86 of file features.h.
bool Features::initialize | ( | Config * | newconfig | ) |
Query and set all features for newly opened (or reopened) device.
newconfig | [in,out] configuration parameters, updated to conform with device restrictions. |
Definition at line 137 of file features.cpp.
void Features::reconfigure | ( | Config * | newconfig | ) |
Reconfigure features for already open device.
For each supported feature that has changed, update the device.
newconfig | [in,out] configuration parameters, may be updated to conform with device restrictions. |
Definition at line 191 of file features.cpp.
bool Features::setMode | ( | dc1394feature_info_t * | finfo, |
dc1394feature_mode_t | mode | ||
) | [private] |
Set mode for a feature.
finfo | pointer to information for this feature |
mode | DC1394 mode desired |
Definition at line 553 of file features.cpp.
void Features::setPower | ( | dc1394feature_info_t * | finfo, |
dc1394switch_t | on_off | ||
) | [private] |
Set power for a feature On or Off.
finfo | pointer to information for this feature |
on_off | either DC1394_ON or DC1394_OFF |
Definition at line 588 of file features.cpp.
void Features::updateIfChanged | ( | dc1394feature_t | feature, |
int | old_control, | ||
int * | control, | ||
double | old_value, | ||
double * | value | ||
) | [private] |
Update a feature for the currently open device, if changed.
Normal version: for features with one value parameter.
feature | desired feature number |
old_control | previous control parameter setting |
control | [in,out] pointer to control parameter (may change) |
old_value | previous parameter value |
value | [in,out] pointer to requested parameter value (may change depending on device restrictions) |
Definition at line 624 of file features.cpp.
void Features::updateIfChanged | ( | dc1394feature_t | feature, |
int | old_control, | ||
int * | control, | ||
double | old_value, | ||
double * | value, | ||
double | old_value2, | ||
double * | value2 | ||
) | [private] |
Update a feature for the currently open device, if changed.
Special version: for White Balance feature with two value parameters.
feature | desired feature number |
old_control | previous control parameter setting |
control | [in,out] pointer to control parameter (may change) |
old_value | previous parameter value |
value | [in,out] pointer to requested parameter value (may change depending on device restrictions) |
old_value2 | previous second parameter value |
value2 | [in,out] pointer to requested second parameter value (may change depending on device restrictions). |
Definition at line 651 of file features.cpp.
dc1394camera_t* Features::camera_ [private] |
current camera
Definition at line 106 of file features.h.
dc1394featureset_t Features::feature_set_ [private] |
that camera's feature set
Definition at line 107 of file features.h.
Config Features::oldconfig_ [private] |
previous Config settings
Definition at line 108 of file features.h.