---
title: IOUserAudioClockDevice
framework: audiodriverkit
role: symbol
role_heading: Class
path: audiodriverkit/iouseraudioclockdevice
---

# IOUserAudioClockDevice

An audio clock device object, used to synchronize and perform I/O.

## Declaration

```occ
class IOUserAudioClockDevice;
```

## Topics

### Creating a Clock Device

- [Create](audiodriverkit/iouseraudioclockdevice/create.md)
- [init](audiodriverkit/iouseraudioclockdevice/init.md)
- [IOUserAudioDriver](audiodriverkit/iouseraudiodriver.md)

### Freeing a Clock Device

- [free](audiodriverkit/iouseraudioclockdevice/free.md)

### Getting Information About the Class

- [GetClassID](audiodriverkit/iouseraudioclockdevice/getclassid.md)
- [GetBaseClassID](audiodriverkit/iouseraudioclockdevice/getbaseclassid.md)
- [IOUserAudioClassID](audiodriverkit/audiodriverkit/iouseraudioclassid.md)

### Performing I/O

- [StartIO](audiodriverkit/iouseraudioclockdevice/startio.md)
- [StopIO](audiodriverkit/iouseraudioclockdevice/stopio.md)
- [IOUserAudioStartStopFlags](audiodriverkit/audiodriverkit/iouseraudiostartstopflags.md)

### Supporting Device Configuration Changes

- [PerformDeviceConfigurationChange](audiodriverkit/iouseraudioclockdevice/performdeviceconfigurationchange.md)
- [AbortDeviceConfigurationChange](audiodriverkit/iouseraudioclockdevice/abortdeviceconfigurationchange.md)

### Supporting Sample Rate Changes

- [HandleChangeSampleRate](audiodriverkit/iouseraudioclockdevice/handlechangesamplerate.md)

### Identifying the Clock Device

- [GetUID](audiodriverkit/iouseraudioclockdevice/getuid.md)

### Working with Clock Domain

- [SetClockDomain](audiodriverkit/iouseraudioclockdevice/setclockdomain.md)
- [GetClockDomain](audiodriverkit/iouseraudioclockdevice/getclockdomain.md)

### Working with Sample Rates

- [SetSampleRate](audiodriverkit/iouseraudioclockdevice/setsamplerate.md)
- [GetSampleRate](audiodriverkit/iouseraudioclockdevice/getsamplerate.md)
- [SetAvailableSampleRates](audiodriverkit/iouseraudioclockdevice/setavailablesamplerates.md)
- [GetAvailableSampleRates](audiodriverkit/iouseraudioclockdevice/getavailablesamplerates.md)
- [GetNumberAvailableSampleRates](audiodriverkit/iouseraudioclockdevice/getnumberavailablesamplerates.md)

### Working with Timing and Latency

- [GetSupportsPrewarming](audiodriverkit/iouseraudioclockdevice/getsupportsprewarming.md)
- [SetZeroTimeStampPeriod](audiodriverkit/iouseraudioclockdevice/setzerotimestampperiod.md)
- [GetZeroTimestampPeriod](audiodriverkit/iouseraudioclockdevice/getzerotimestampperiod.md)
- [SetOutputLatency](audiodriverkit/iouseraudioclockdevice/setoutputlatency.md)
- [GetOutputLatency](audiodriverkit/iouseraudioclockdevice/getoutputlatency.md)
- [SetInputLatency](audiodriverkit/iouseraudioclockdevice/setinputlatency.md)
- [GetInputLatency](audiodriverkit/iouseraudioclockdevice/getinputlatency.md)

### Working with Clock Device State

- [GetDeviceIsRunning](audiodriverkit/iouseraudioclockdevice/getdeviceisrunning.md)
- [SetDeviceIsAlive](audiodriverkit/iouseraudioclockdevice/setdeviceisalive.md)
- [GetDeviceIsAlive](audiodriverkit/iouseraudioclockdevice/getdeviceisalive.md)
- [SetIsHidden](audiodriverkit/iouseraudioclockdevice/setishidden.md)
- [GetIsHidden](audiodriverkit/iouseraudioclockdevice/getishidden.md)

### Working with Clock Device Behavior

- [SetClockAlgorithm](audiodriverkit/iouseraudioclockdevice/setclockalgorithm.md)
- [GetClockAlgorithm](audiodriverkit/iouseraudioclockdevice/getclockalgorithm.md)
- [IOUserAudioClockAlgorithm](audiodriverkit/audiodriverkit/iouseraudioclockalgorithm.md)
- [SetClockIsStable](audiodriverkit/iouseraudioclockdevice/setclockisstable.md)
- [GetClockIsStable](audiodriverkit/iouseraudioclockdevice/getclockisstable.md)

### Working with Transport Type

- [SetTransportType](audiodriverkit/iouseraudioclockdevice/settransporttype.md)
- [GetTransportType](audiodriverkit/iouseraudioclockdevice/gettransporttype.md)
- [IOUserAudioTransportType](audiodriverkit/audiodriverkit/iouseraudiotransporttype.md)

### Communicating with the Host

- [RequestDeviceConfigurationChange](audiodriverkit/iouseraudioclockdevice/requestdeviceconfigurationchange.md)

### Managing Audio Controls

- [AddControl](audiodriverkit/iouseraudioclockdevice/addcontrol.md)
- [RemoveControl](audiodriverkit/iouseraudioclockdevice/removecontrol.md)
- [IOUserAudioControl](audiodriverkit/iouseraudiocontrol.md)

### Accessing Timestamps

- [UpdateCurrentZeroTimestamp](audiodriverkit/iouseraudioclockdevice/updatecurrentzerotimestamp.md)
- [GetCurrentZeroTimestamp](audiodriverkit/iouseraudioclockdevice/getcurrentzerotimestamp.md)

### Accessing Client Status Information

- [GetCurrentClientSampleTime](audiodriverkit/iouseraudioclockdevice/getcurrentclientsampletime.md)

### Instance Methods

- [GetDeviceTransportState](audiodriverkit/iouseraudioclockdevice/getdevicetransportstate.md)
- [SetWantsControlsRestored](audiodriverkit/iouseraudioclockdevice/setwantscontrolsrestored.md)

## Relationships

### Inherits From

- [IOUserAudioObject](audiodriverkit/iouseraudioobject.md)

### Inherited By

- [IOUserAudioDevice](audiodriverkit/iouseraudiodevice.md)

## See Also

### Working with Audio Devices

- [IOUserAudioDevice](audiodriverkit/iouseraudiodevice.md)
