dc1394/camera.h File Reference

Basic system and camera functions. More...

#include <dc1394/log.h>
#include <stdio.h>

Data Structures

struct  __dc1394_camera
struct  dc1394camera_id_t
struct  __dc1394camera_list_t

Typedefs

typedef struct __dc1394_camera dc1394camera_t
typedef struct
__dc1394camera_list_t 
dc1394camera_list_t

Enumerations

enum  dc1394iidc_version_t
enum  dc1394power_class_t
enum  dc1394phy_delay_t

Functions

dc1394_t * dc1394_new (void)
void dc1394_free (dc1394_t *dc1394)
dc1394error_t dc1394_camera_set_broadcast (dc1394camera_t *camera, dc1394bool_t pwr)
dc1394error_t dc1394_reset_bus (dc1394camera_t *camera)
dc1394error_t dc1394_camera_get_node (dc1394camera_t *camera, uint32_t *node, uint32_t *generation)
dc1394error_t dc1394_camera_enumerate (dc1394_t *dc1394, dc1394camera_list_t **list)
void dc1394_camera_free_list (dc1394camera_list_t *list)
dc1394camera_tdc1394_camera_new (dc1394_t *dc1394, uint64_t guid)
dc1394camera_tdc1394_camera_new_unit (dc1394_t *dc1394, uint64_t guid, int unit)
void dc1394_camera_free (dc1394camera_t *camera)
dc1394error_t dc1394_camera_print_info (dc1394camera_t *camera, FILE *fd)

Detailed Description

Basic system and camera functions.

Author:
Damien Douxchamps: coding
Peter Antoniac: documentation maintainer

More details soon


Typedef Documentation

A list of cameras

Usually returned by dc1394_camera_eumerate().

Camera structure

This structure represents the camera in libdc1394. It contains a number of useful static information, such as model/vendor names, a few capabilities, some ROM offsets, a unique identifier, etc...


Enumeration Type Documentation

List of IIDC versions

Currently, the following versions exist: 1.04, 1.20, PTGREY, 1.30 and 1.31 (1.32 coming soon) Observing other versions means that there's a bug crawling somewhere.

Enumeration of PHY delays

This is currently not used in libdc1394.

Enumeration of power classes

This is currently not used in libdc1394.


Function Documentation

dc1394error_t dc1394_camera_enumerate ( dc1394_t *  dc1394,
dc1394camera_list_t **  list 
)

Returns the list of cameras available on the computer. If present, multiple cards will be probed

void dc1394_camera_free ( dc1394camera_t camera  ) 

Frees a camera structure

void dc1394_camera_free_list ( dc1394camera_list_t list  ) 

Frees the memory allocated in dc1394_enumerate_cameras for the camera list

dc1394error_t dc1394_camera_get_node ( dc1394camera_t camera,
uint32_t *  node,
uint32_t *  generation 
)

Gets the IEEE 1394 node ID of the camera.

dc1394camera_t* dc1394_camera_new ( dc1394_t *  dc1394,
uint64_t  guid 
)

Create a new camera based on a GUID (Global Unique IDentifier)

dc1394camera_t* dc1394_camera_new_unit ( dc1394_t *  dc1394,
uint64_t  guid,
int  unit 
)

Create a new camera based on a GUID and a unit number (for multi-unit cameras)

dc1394error_t dc1394_camera_print_info ( dc1394camera_t camera,
FILE *  fd 
)

Print various camera information, such as GUID, vendor, model, supported IIDC specs, etc...

dc1394error_t dc1394_camera_set_broadcast ( dc1394camera_t camera,
dc1394bool_t  pwr 
)

Sets and gets the broadcast flag of a camera. If the broadcast flag is set, all devices on the bus will execute the command. Useful to sync ISO start commands or setting a bunch of cameras at the same time. Broadcast only works with identical devices (brand/model). If the devices are not identical your mileage may vary. Some cameras may not answer broadcast commands at all. Also, this only works with cameras on the SAME bus (IOW, the same port).

void dc1394_free ( dc1394_t *  dc1394  ) 

Liberates a context. Last function to use in your program. After this, no libdc1394 function can be used.

dc1394_t* dc1394_new ( void   ) 

Creates a new context in which cameras can be searched and used. This should be called before using any other libdc1394 function.

dc1394error_t dc1394_reset_bus ( dc1394camera_t camera  ) 

Resets the IEEE1394 bus which camera is attached to. Calling this function is "rude" to other devices because it causes them to re-enumerate on the bus and may cause a temporary disruption in their current activities. Thus, use it sparingly. Its primary use is if a program shuts down uncleanly and needs to free leftover ISO channels or bandwidth. A bus reset will free those things as a side effect.


Generated on 8 Jul 2010 for libdc1394 by  doxygen 1.6.1