# DeviceWatcher

<a id="devicewatcher"></a>

# DeviceWatcher

```cpp
#include <icy/av/devicemanager.h>

class DeviceWatcher
```

[Defined in src/av/include/icy/av/devicemanager.h:194](https://github.com/auscaster/icey/blob/main/src/av/include/icy/av/devicemanager.h#L194)

> **Subclassed by:** [`AppleDeviceWatcher`](https://auscaster.com/icey/docs/api-reference/icy-av-AppleDeviceWatcher.md#appledevicewatcher), [`LinuxDeviceWatcher`](https://auscaster.com/icey/docs/api-reference/icy-av-LinuxDeviceWatcher.md#linuxdevicewatcher), [`WindowsDeviceWatcher`](https://auscaster.com/icey/docs/api-reference/icy-av-WindowsDeviceWatcher.md#windowsdevicewatcher)

Base class for platform-specific device change monitors.

Call [start()](#start-19) to begin monitoring and [stop()](#stop-10) to end. The watcher is NOT auto-started; callers must explicitly start it.

## Public Methods

| Return | Name | Description |
|--------|------|-------------|
|  | [`DeviceWatcher`](#devicewatcher-1) `inline` `explicit` |  |
|  | [`~DeviceWatcher`](#devicewatcher-2) `virtual` `noexcept` | Defaulted destructor. |
| `bool` | [`start`](#start-19) `virtual` `inline` |  |
| `void` | [`stop`](#stop-10) `virtual` `inline` |  |

---

<a id="devicewatcher-1"></a>

### DeviceWatcher

`inline` `explicit`

```cpp
inline explicit DeviceWatcher(DeviceManager *)
```

[Defined in src/av/include/icy/av/devicemanager.h:197](https://github.com/auscaster/icey/blob/main/src/av/include/icy/av/devicemanager.h#L197)

---

<a id="devicewatcher-2"></a>

### ~DeviceWatcher

`virtual` `noexcept`

```cpp
virtual ~DeviceWatcher() noexcept = default
```

[Defined in src/av/include/icy/av/devicemanager.h:198](https://github.com/auscaster/icey/blob/main/src/av/include/icy/av/devicemanager.h#L198)

Defaulted destructor.

---

<a id="start-19"></a>

### start

`virtual` `inline`

```cpp
virtual inline bool start()
```

[Defined in src/av/include/icy/av/devicemanager.h:199](https://github.com/auscaster/icey/blob/main/src/av/include/icy/av/devicemanager.h#L199)

#### Reimplemented by

- [`AppleDeviceWatcher::start`](https://auscaster.com/icey/docs/api-reference/icy-av-AppleDeviceWatcher.md#start-16)
- [`LinuxDeviceWatcher::start`](https://auscaster.com/icey/docs/api-reference/icy-av-LinuxDeviceWatcher.md#start-14)
- [`WindowsDeviceWatcher::start`](https://auscaster.com/icey/docs/api-reference/icy-av-WindowsDeviceWatcher.md#start-20)

---

<a id="stop-10"></a>

### stop

`virtual` `inline`

```cpp
virtual inline void stop()
```

[Defined in src/av/include/icy/av/devicemanager.h:200](https://github.com/auscaster/icey/blob/main/src/av/include/icy/av/devicemanager.h#L200)

#### Reimplemented by

- [`AppleDeviceWatcher::stop`](https://auscaster.com/icey/docs/api-reference/icy-av-AppleDeviceWatcher.md#stop-8)
- [`LinuxDeviceWatcher::stop`](https://auscaster.com/icey/docs/api-reference/icy-av-LinuxDeviceWatcher.md#stop-6)
- [`WindowsDeviceWatcher::stop`](https://auscaster.com/icey/docs/api-reference/icy-av-WindowsDeviceWatcher.md#stop-11)
