# ex_oxvif v0.1.0 - API Reference

## Modules

- API
  - [ExOxvif](ExOxvif.md): ONVIF IP camera control for Elixir, backed by the Rust
[oxvif](https://github.com/smiti1642/oxvif) client.
  - [ExOxvif.Device](ExOxvif.Device.md): Device management service.
  - [ExOxvif.Events](ExOxvif.Events.md): Events service: pull-point subscriptions.
  - [ExOxvif.Imaging](ExOxvif.Imaging.md): Imaging service: focus.
  - [ExOxvif.Media](ExOxvif.Media.md): Media (Media1) service: profiles and stream URIs.
  - [ExOxvif.PTZ](ExOxvif.PTZ.md): PTZ service: pan, tilt and zoom.

- Types
  - [ExOxvif.DeviceInfo](ExOxvif.DeviceInfo.md): Result of `GetDeviceInformation`.
  - [ExOxvif.DiscoveredDevice](ExOxvif.DiscoveredDevice.md): A device that answered a WS-Discovery probe.
  - [ExOxvif.Error](ExOxvif.Error.md): An error returned by any `ExOxvif` call.
  - [ExOxvif.Events.Message](ExOxvif.Events.Message.md): One event notification. `:source` and `:data` hold the message's
`SimpleItem` name/value pairs.

  - [ExOxvif.Events.Subscription](ExOxvif.Events.Subscription.md): A pull-point subscription. Pass `:reference_url` to
`ExOxvif.Events.pull_messages/3`.

  - [ExOxvif.Imaging.Status](ExOxvif.Imaging.Status.md): Current focus position and movement state.
  - [ExOxvif.MediaProfile](ExOxvif.MediaProfile.md): A Media1 profile. Pass `:token` to the media and PTZ calls, and
`:video_source_token` to the imaging calls.

  - [ExOxvif.MediaUri](ExOxvif.MediaUri.md): A stream (RTSP) or snapshot (HTTP) URI. `:timeout` is an ISO 8601
duration; `"PT0S"` means it does not expire.

  - [ExOxvif.PTZ.Configuration](ExOxvif.PTZ.Configuration.md): A PTZ configuration, as returned by `GetConfigurations`.
  - [ExOxvif.PTZ.ConfigurationOptions](ExOxvif.PTZ.ConfigurationOptions.md): Result of `GetConfigurationOptions`: the accepted PTZ timeout range as
ISO 8601 durations. The supported coordinate spaces and their ranges are
on the node; see `ExOxvif.PTZ.nodes/2`.

  - [ExOxvif.PTZ.Node](ExOxvif.PTZ.Node.md): A physical PTZ unit and the coordinate spaces it supports.
  - [ExOxvif.PTZ.Preset](ExOxvif.PTZ.Preset.md): A stored PTZ preset.
  - [ExOxvif.PTZ.SpaceRange](ExOxvif.PTZ.SpaceRange.md): A PTZ coordinate space and its range. `:y_range` is `nil` for zoom spaces.

  - [ExOxvif.PTZ.Speed](ExOxvif.PTZ.Speed.md): Default PTZ speed, normalised to `0.0..1.0`.
  - [ExOxvif.PTZ.Status](ExOxvif.PTZ.Status.md): Current PTZ position and movement state. Positions are in the device's
generic space: pan and tilt in `-1.0..1.0`, zoom in `0.0..1.0`.

  - [ExOxvif.Service](ExOxvif.Service.md): One entry of `GetServices`.
  - [ExOxvif.Session](ExOxvif.Session.md): A connected ONVIF device, returned by `ExOxvif.connect/2`.
  - [ExOxvif.SystemDateTime](ExOxvif.SystemDateTime.md): Result of `GetSystemDateAndTime`. `:utc_unix` is the device clock in Unix
seconds, or `nil` when the device did not report it.

