## CheeseCameraDeviceMonitor

CheeseCameraDeviceMonitor — Simple object to enumerate v4l devices

## Stability Level

Unstable, unless otherwise indicated

## Functions

CheeseCameraDeviceMonitor * | cheese_camera_device_monitor_new ()
void | cheese_camera_device_monitor_coldplug ()

## Signals

void | added | Action
void | removed | Action

## Types and Values

struct | CheeseCameraDeviceMonitorClass
struct | CheeseCameraDeviceMonitor

## Object Hierarchy

        GObject
        ╰── CheeseCameraDeviceMonitor

## Includes

    #include <cheese/cheese-camera-device-monitor.h>

## Description

CheeseCameraDeviceMonitor provides a basic interface for video4linux device enumeration and hotplugging.

It uses either GUdev or some platform specific code to list video devices. It is also capable (right now in Linux only, with the udev backend) to monitor device plugging and emit a CheeseCameraDeviceMonitor::added or CheeseCameraDeviceMonitor::removed signal when an event happens.

## Functions

### cheese_camera_device_monitor_new ()

    CheeseCameraDeviceMonitor *
    cheese_camera_device_monitor_new (void);

Returns a new CheeseCameraDeviceMonitor object.

#### Returns

a new CheeseCameraDeviceMonitor object.

### cheese_camera_device_monitor_coldplug ()

    void
    cheese_camera_device_monitor_coldplug (CheeseCameraDeviceMonitor *monitor);

Enumerate plugged in cameras and emit ::added for those which already exist. This is only required when your program starts, so be sure to connect to at least the ::added signal before calling this function.

#### Parameters

monitor | a CheeseCameraDeviceMonitor |

## Types and Values

### struct CheeseCameraDeviceMonitorClass

    struct CheeseCameraDeviceMonitorClass {
      void (*added)(CheeseCameraDeviceMonitor *monitor,
                    CheeseCameraDevice        *device);
      void (*removed)(CheeseCameraDeviceMonitor *monitor, const gchar *uuid);
    };

Class for CheeseCameraDeviceMonitor.

#### Members

`added` () | invoked when a new video capture device is connected |
`removed` () | invoked when a video capture device is removed |

### struct CheeseCameraDeviceMonitor

    struct CheeseCameraDeviceMonitor;

Use the accessor functions below.

## Signal Details

### The `“added”` signal

    void
    user_function (CheeseCameraDeviceMonitor *monitor,
                   CheeseCameraDevice        *device,
                   gpointer                   user_data)

The ::added signal is emitted when a camera is added, or on start-up after `cheese_camera_device_monitor_coldplug()` is called.

#### Parameters

monitor | the CheeseCameraDeviceMonitor that emitted the signal |
device | a new CheeseCameraDevice representing the video capture device |
user_data | user data set when the signal handler was connected. |

Flags: Action

### The `“removed”` signal

    void
    user_function (CheeseCameraDeviceMonitor *monitor,
                   gchar                     *uuid,
                   gpointer                   user_data)

The ::removed signal is emitted when a camera is unplugged, or disabled on the system.

#### Parameters

monitor | the CheeseCameraDeviceMonitor that emitted the signal |
uuid | UUID for the device on the system |
user_data | user data set when the signal handler was connected. |

Flags: Action