---
title: "init(localizedName:deviceID:legacyDeviceID:source:)"
framework: coremediaio
role: symbol
role_heading: Initializer
path: "coremediaio/cmioextensiondevice/init(localizedname:deviceid:legacydeviceid:source:)"
---

# init(localizedName:deviceID:legacyDeviceID:source:)

Creates an extension device with an optional legacy device identifier.

## Declaration

```swift
init(localizedName: String, deviceID: UUID, legacyDeviceID: String?, source: any CMIOExtensionDeviceSource)
```

## Parameters

- `localizedName`: A localized name for the device.
- `deviceID`: A universally unique device identifier value.
- `legacyDeviceID`: A string device identifier for backward compatibility with existing CMIO DAL clients. The value you provide can differ from the value of deviceID.UUIDString. Set this argument to nil if your device has no backward-compatibility requirements.
- `source`: An extension-specific object that conforms to the doc://com.apple.coremediaio/documentation/CoreMediaIO/CMIOExtensionDeviceSource protocol.

## See Also

### Creating a Device

- [init(localizedName:deviceID:source:)](coremediaio/cmioextensiondevice/init(localizedname:deviceid:source:).md)
