Fawkes API
Fawkes Development Version
|
24 #ifndef _FIREVISION_CAMS_V4L2_H_
25 #define _FIREVISION_CAMS_V4L2_H_
27 #include <fvcams/camera.h>
28 #include <fvcams/control/color.h>
29 #include <fvcams/control/image.h>
30 #include <linux/types.h>
31 #include <linux/videodev2.h>
34 #define MMAP_NUM_BUFFERS 4;
36 namespace firevision {
38 class CameraArgumentParser;
47 V4L2Camera(
const char *device_name =
"/dev/video0");
60 virtual unsigned char *
buffer();
95 virtual unsigned int gain();
98 virtual const char *
format();
100 virtual unsigned int width();
101 virtual unsigned int height();
107 virtual unsigned int fps();
125 virtual void set_one_control(
const char *ctrl,
unsigned int id,
int value);
129 virtual void post_open();
130 virtual void select_read_method();
131 virtual void select_standard();
132 virtual void select_input();
133 virtual void select_format();
134 virtual void set_fps();
135 virtual void set_controls();
136 virtual void create_buffer();
137 virtual void reset_cropping();
161 struct ControlParameterInt
169 V4L2CameraData *_data;
171 ReadMethod _read_method;
177 colorspace_t _colorspace;
180 unsigned int _height;
181 unsigned int _bytes_per_line;
182 FrameBuffer * _frame_buffers;
183 unsigned int _buffers_length;
194 ControlParameterInt _brightness;
195 ControlParameterInt _contrast;
196 ControlParameterInt _saturation;
197 ControlParameterInt _hue;
198 ControlParameterInt _red_balance;
199 ControlParameterInt _blue_balance;
200 ControlParameterInt _exposure;
201 ControlParameterInt _gain;
202 ControlParameterInt _lens_x;
203 ControlParameterInt _lens_y;
205 ControlParameterInt _white_balance_temperature;
206 TriState _exposure_auto_priority;
207 ControlParameterInt _exposure_auto;
208 ControlParameterInt _exposure_absolute;
209 ControlParameterInt _sharpness;
216 #endif //FIREVISION_CAMS_V4L2_H__
virtual unsigned int lens_y_corr()
Get current lens y correction.
virtual void set_red_balance(int red_balance)
Set red balance.
virtual unsigned int contrast()
Get current contrast.
virtual unsigned int fps()
Get the number of frames per second that have been requested from the camera.
Video4Linux 2 camera access implementation.
virtual void print_info()
Print out camera information.
virtual void set_auto_gain(bool enabled)
Enable/disable auto gain.
virtual void flush()
Flush image queue.
virtual unsigned int saturation()
Get current saturation.
virtual void start()
Start image transfer from the camera.
virtual void set_exposure_absolute(unsigned int exposure_absolute)
set absolute exposure time (1/s)
virtual unsigned int sharpness()
Get sharpness value.
virtual void size(unsigned int &width, unsigned int &height)
Get the current image size.
virtual void set_u_balance(int u_balance)
Set u balance.
virtual bool auto_gain()
Return whether auto gain is enabled.
virtual const char * format()
Get the image format the camera currently uses.
virtual unsigned int pixel_width()
Width of image in pixels.
virtual void set_exposure_auto(unsigned int exposure_auto)
Enable/disable auto exposure.
virtual void set_exposure(unsigned int exposure)
Set new exposure.
virtual unsigned int exposure_absolute()
Get absolute exposure time.
General Video4Linux camera implementation.
virtual int v_balance()
Get current v balance.
virtual int blue_balance()
Get current blue balance.
char * _device_name
Device name.
virtual void set_one_control(const char *ctrl, unsigned int id, int value)
Set one Camera control value.
virtual void set_saturation(unsigned int saturation)
Set new saturation.
virtual void set_white_balance_temperature(unsigned int white_balance_temperature)
Set white balance.
virtual unsigned int white_balance_temperature()
Get absolute white balance setting.
virtual ~V4L2Camera()
Destructor.
virtual void set_lens_x_corr(unsigned int x_corr)
Set lens x correction.
virtual void stop()
Stop image transfer from the camera.
virtual colorspace_t colorspace()
Colorspace of returned image.
virtual void close()
Close camera.
virtual bool auto_white_balance()
Return whether auto white balance is enabled.
Camera image control interface.
virtual void set_auto_white_balance(bool enabled)
Enable/disable auto white balance.
virtual void open()
Open the camera.
virtual int get_one_control(const char *ctrl, unsigned int id)
Get one Camera control value.
virtual unsigned int width()
Get the current width of the image.
virtual void set_brightness(unsigned int brightness)
Set new brightness.
virtual unsigned int brightness()
Get current brightness.
virtual unsigned int buffer_size()
Size of buffer.
virtual void capture()
Capture an image.
virtual void set_image_number(unsigned int n)
Set image number to retrieve.
virtual void set_fps(unsigned int fps)
Set the number of frames per second the camera tries to deliver.
virtual unsigned int gain()
Get current gain.
virtual void set_hue(int hue)
Set new hue.
virtual unsigned int lens_x_corr()
Get current lens x correction.
virtual void set_blue_balance(int blue_balance)
Set blue balance.
virtual int hue()
Get current hue.
virtual void set_contrast(unsigned int contrast)
Set new contrast.
virtual void set_vert_mirror(bool enabled)
Set whether the camera should mirror images vertically.
A class for handling time.
V4L2Camera(const char *device_name="/dev/video0")
Constructor.
virtual void set_lens_y_corr(unsigned int y_corr)
Set lens y correction.
virtual void dispose_buffer()
Dispose current buffer.
virtual int red_balance()
Get current red balance.
virtual void set_exposure_auto_priority(bool enabled)
Set exposure_auto_priority V4L2 control.
virtual unsigned char * buffer()
Get access to current image buffer.
Camera color control interface.
virtual bool vert_mirror()
Return whether the camera image is vertically mirrored.
virtual unsigned int exposure_auto()
Return whether auto exposure is enabled.
virtual void set_size(unsigned int width, unsigned int height)
Set the image size the camera should use.
Camera interface for image aquiring devices in FireVision.
virtual unsigned int height()
Get the current height of the image.
virtual void set_v_balance(int v_balance)
Set v balance.
virtual void set_gain(unsigned int gain)
Set new gain.
virtual int u_balance()
Get current u balance.
virtual unsigned int exposure()
Get current exposure.
virtual bool ready()
Camera is ready for taking pictures.
virtual unsigned int pixel_height()
Height of image in pixels.
virtual void set_format(const char *format)
Set the image format the camera should use.
virtual bool exposure_auto_priority()
Get exposure_auto_priority V4L2 control.
virtual void set_horiz_mirror(bool enabled)
Set whether the camera should mirror images horizontally.
virtual fawkes::Time * capture_time()
Get the Time of the last successfully captured image.
virtual void set_sharpness(unsigned int sharpness)
Set sharpness.
virtual bool horiz_mirror()
Return whether the camera image is horizontally mirrored.