Table of Contents

Interface IDevice

Namespace
Huddly.Sdk
Assembly
Huddly.Sdk.dll

Represents an interface for interacting with a Huddly device, providing methods to retrieve device information, perform various operations, and control device settings.

public interface IDevice : IImageSettings, IPtz
Inherited Members

Properties

ConnectionState

Device ConnectionState

Once a device disconnects, it will not reconnect to the same instance.

ConnectionState ConnectionState { get; }

Property Value

ConnectionState

ConnectionType

Device ConnectionType

ConnectionType ConnectionType { get; }

Property Value

ConnectionType

FirmwareChecker

Get an IFirmwareChecker used for getting info on the latest available firmware release, and parsing information from firmware files that are relevant for the device.

IFirmwareChecker FirmwareChecker { get; }

Property Value

IFirmwareChecker

Id

Unique device identifier.

string Id { get; }

Property Value

string

LastActivity

UTC timestamp that records the last device activity.

DateTime LastActivity { get; }

Property Value

DateTime

Manufacturer

Device Manufacturer

Manufacturer Manufacturer { get; }

Property Value

Manufacturer

Model

Device Model

DeviceModel Model { get; }

Property Value

DeviceModel

Serial

Device Serial

string Serial { get; }

Property Value

string

Methods

AddFeatureOption(FeatureOption, CancellationToken)

Add a FeatureOption to the device

Task<Result> AddFeatureOption(FeatureOption feature, CancellationToken ct = default)

Parameters

feature FeatureOption

FeatureOption to add

ct CancellationToken

Returns

Task<Result>

A result indicating success or failure

EraseLog(CancellationToken)

Erase device logs

Task<Result> EraseLog(CancellationToken ct = default)

Parameters

ct CancellationToken

Returns

Task<Result>

A result indicating success or failure

GetDetector(DetectorOptions?, CancellationToken)

Get an IDetector used for subscribing to detections

Task<Result<IDetector>> GetDetector(DetectorOptions? options = null, CancellationToken ct = default)

Parameters

options DetectorOptions
ct CancellationToken

Returns

Task<Result<IDetector>>

GetFeatureOptions(CancellationToken)

Get device FeatureOptions

Task<Result<IList<FeatureOption>>> GetFeatureOptions(CancellationToken ct = default)

Parameters

ct CancellationToken

Returns

Task<Result<IList<FeatureOption>>>

A result with the current device feature options

GetFirmwareParser()

Obsolete: Use FirmwareChecker instead

[Obsolete("Use FirmwareChecker instead. Method will be removed in SDK version 3.")]
IFirmwareParser GetFirmwareParser()

Returns

IFirmwareParser

GetFirmwareUpgrader(string, CancellationToken)

Get a IFirmwareUpgrader used for upgrading the device

Task<IFirmwareUpgrader> GetFirmwareUpgrader(string firmwarePath, CancellationToken ct = default)

Parameters

firmwarePath string

File path to a valid device firmware.

ct CancellationToken

Returns

Task<IFirmwareUpgrader>

Remarks

GetFirmwareVersion(CancellationToken)

Get the firmware version of the device

Task<Result<FirmwareVersion>> GetFirmwareVersion(CancellationToken ct = default)

Parameters

ct CancellationToken

Returns

Task<Result<FirmwareVersion>>

A result containing the current version of the device

GetFramingMode(CancellationToken)

Get the current framing mode of the camera

Task<Result<FramingMode>> GetFramingMode(CancellationToken ct = default)

Parameters

ct CancellationToken

Returns

Task<Result<FramingMode>>

A FramingValue Result.

GetFramingSubscriber(FramingSubscriberOptions, CancellationToken)

Get an IFramingSubscriber used for subscribing to device framing (PTZ) changes

Task<Result<IFramingSubscriber>> GetFramingSubscriber(FramingSubscriberOptions options, CancellationToken ct = default)

Parameters

options FramingSubscriberOptions
ct CancellationToken

Returns

Task<Result<IFramingSubscriber>>

GetFramingZone(CancellationToken)

Get an FramingZone used for getting framing zone info

Task<Result<FramingZone>> GetFramingZone(CancellationToken ct = default)

Parameters

ct CancellationToken

Returns

Task<Result<FramingZone>>

GetFramingZonePeopleDetectionResults(CancellationToken)

Get list of FramingZonePersonDetectionResult that are detected within the framing zone

Task<Result<IList<FramingZonePersonDetectionResult>>> GetFramingZonePeopleDetectionResults(CancellationToken ct = default)

Parameters

ct CancellationToken

Returns

Task<Result<IList<FramingZonePersonDetectionResult>>>

GetFwVersion(CancellationToken)

Obsolete: Use GetFirmwareVersion instead

[Obsolete("Use GetFirmwareVersion instead. Method will be removed in SDK version 3.")]
Task<Result<SemVersion>> GetFwVersion(CancellationToken ct = default)

Parameters

ct CancellationToken

Returns

Task<Result<SemVersion>>

GetLatestFirmwareReleaseInfo(FirmwareChannel, CancellationToken)

Obsolete: Use FirmwareChecker instead

[Obsolete("Use FirmwareChecker.GetLatestRemoteVersion() instead. Method will be removed in SDK version 3.")]
Task<Result<FirmwareInfo>> GetLatestFirmwareReleaseInfo(FirmwareChannel channel = FirmwareChannel.Stable, CancellationToken ct = default)

Parameters

channel FirmwareChannel
ct CancellationToken

Returns

Task<Result<FirmwareInfo>>

GetLog(Stream, CancellationToken)

Get device logs.

Task<Result> GetLog(Stream outputStream, CancellationToken ct = default)

Parameters

outputStream Stream

A stream to write the logs to

ct CancellationToken

Returns

Task<Result>

A result indicating success or failure

GetName(CancellationToken)

Get device name

Task<Result<string>> GetName(CancellationToken ct = default)

Parameters

ct CancellationToken

Returns

Task<Result<string>>

A result containing the device name

GetStreamStatus(CancellationToken)

Get current stream status (stream name, active?, size)

Task<Result<StreamStatusContainer>> GetStreamStatus(CancellationToken ct = default)

Parameters

ct CancellationToken

A cancellation token

Returns

Task<Result<StreamStatusContainer>>

A Stream status result

GetSupportedFeatures(CancellationToken)

Get supported features of the device

Task<Result<SupportedFeatures>> GetSupportedFeatures(CancellationToken ct = default)

Parameters

ct CancellationToken

Returns

Task<Result<SupportedFeatures>>

The supported features of the device

Remarks

The currently supported features of a device is dynamic and prone to change. Consumers should use this method to get an updated overview of which features are currently supported. It is recommended to call this method on device connection for every device a consumer wants to communicate with.

GetTime(CancellationToken)

Get the device internal time

Task<Result<DateTime>> GetTime(CancellationToken ct = default)

Parameters

ct CancellationToken

Returns

Task<Result<DateTime>>

A result with the device internal time

GetUptime(CancellationToken)

Get the device uptime

Task<Result<TimeSpan>> GetUptime(CancellationToken ct = default)

Parameters

ct CancellationToken

Returns

Task<Result<TimeSpan>>

A result indicating how long the device has been up

IsFramingZoneEnabled(CancellationToken)

Get the current toggle for FramingZone

Task<Result<bool>> IsFramingZoneEnabled(CancellationToken ct = default)

Parameters

ct CancellationToken

Returns

Task<Result<bool>>

Result containing a toggle indicating if the Feature is enabled

IsGreaterThanCurrentVersion(FirmwareInfo, CancellationToken)

Obsolete: Use GetFirmwareVersion in combination with FirmwareChecker instead

[Obsolete("Use GetFirmwareVersion().CompareTo() instead. Method will be removed in SDK version 3.")]
Task<Result<bool>> IsGreaterThanCurrentVersion(FirmwareInfo firmwareInfo, CancellationToken ct = default)

Parameters

firmwareInfo FirmwareInfo
ct CancellationToken

Returns

Task<Result<bool>>

Reboot(CancellationToken)

Reboot the device.

Task<Result> Reboot(CancellationToken ct = default)

Parameters

ct CancellationToken

Returns

Task<Result>

A result indicating success or failure

Remarks

After calling this method successfully, the device instance will disconnect. To communicate with the device after it has booted, use the new IDevice instance emitted in the DeviceConnected event

ReportAudioOutputLevel(int, double[], CancellationToken)

Report the current host audio output level to the device

Task<Result> ReportAudioOutputLevel(int sampleRate, double[] samples, CancellationToken ct = default)

Parameters

sampleRate int

Approximate sample rate, in samples per second

samples double[]

Output level samples, in the normalized range [0.0, 1.0]

ct CancellationToken

Returns

Task<Result>

A result indicating success or failure

SetFramingMode(FramingMode, CancellationToken)

Set device framing mode

Task<Result> SetFramingMode(FramingMode value, CancellationToken ct = default)

Parameters

value FramingMode

The new value. For accepted values, query GetSupportedFeatures(CancellationToken)

ct CancellationToken

Returns

Task<Result>

A result indicating success or failure

SetFramingZone(FramingZone, CancellationToken)

Set device framing zone

Task<Result> SetFramingZone(FramingZone value, CancellationToken ct = default)

Parameters

value FramingZone

The new value

ct CancellationToken

Returns

Task<Result>

A result indicating success or failure

SetTime(DateTime, CancellationToken)

Set the device internal time

Task<Result> SetTime(DateTime value, CancellationToken ct = default)

Parameters

value DateTime

The new value

ct CancellationToken

Returns

Task<Result>

A result indicating success or failure

SubscribeToStreamStatusChange(CancellationToken)

Subscribe to get continuous stream status when a stream opens/closes

Example use:

try
{
    await foreach (var streamStatus in device.SubscribeToStreamStatusChange(ct))
    {
        Console.WriteLine($"Received stream status: {streamStatus}");
    }
}
catch (Exception ex)
{
    Console.WriteLine($"Error receiving stream statuses: {ex.Message}");
}

IAsyncEnumerable<StreamStatusContainer> SubscribeToStreamStatusChange(CancellationToken ct = default)

Parameters

ct CancellationToken

A cancellation token

Returns

IAsyncEnumerable<StreamStatusContainer>

ToggleFramingZone(Toggle, CancellationToken)

Set the current toggle for FramingZone

Task<Result> ToggleFramingZone(Toggle toggle, CancellationToken ct = default)

Parameters

toggle Toggle

A toggle value to turn on/off the feature

ct CancellationToken

Returns

Task<Result>

A result