## CheeseCameraDeviceMonitor CheeseCameraDeviceMonitor — Simple object to enumerate video 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 video device enumeration and hotplugging.

It uses GstDeviceMonitor to list video devices. It is also capable 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,
                       CheeseCameraDevice        *device);
    };

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,
                   CheeseCameraDevice        *device,
                   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 |
device | the CheeseCameraDevice that was removed |
user_data | user data set when the signal handler was connected. |

Flags: Action