Class GroupUpdate
What a group update changes.
public sealed record GroupUpdate : IEquatable<GroupUpdate>
- Inheritance
-
GroupUpdate
- Implements
- Inherited Members
Remarks
Every member is optional, the update applies only what is set, membership first, then the track and the player state on every member guild, one guild at a time. A track always replaces what the members play, there is no no-replace for groups. NodeLink only.
Properties
Ducking
Whether every member runs speaking-detection ducking.
[JsonPropertyName("ducking")]
public bool? Ducking { get; init; }
Property Value
- bool?
Remarks
NodeLink 3.9.0 answers this member with a 500, so the whole group update fails against that build. The stored configuration survives the failed write.
EndTimeMilliseconds
Where the played track stops, in milliseconds.
[JsonPropertyName("endTime")]
[JsonConverter(typeof(RoundedInt64Converter))]
public long? EndTimeMilliseconds { get; init; }
Property Value
- long?
Remarks
Travels with a play when the update carries a track, otherwise the server seeks every member with a track loaded to their current position with this as the marker, members without a track only get the marker.
Fading
The fade chain applied to every member, a sent chain replaces the whole configuration.
[JsonPropertyName("fading")]
public FadingOptions? Fading { get; init; }
Property Value
Filters
The filters applied to every member, same bounds as a per-player update, the kind gates differ, a volume member is rejected here.
[JsonPropertyName("filters")]
public FilterChain? Filters { get; init; }
Property Value
Remarks
Null leaves the members' filters alone.
LoudnessNormalizer
Whether every member runs the loudness normalizer.
[JsonPropertyName("loudnessNormalizer")]
public bool? LoudnessNormalizer { get; init; }
Property Value
- bool?
Paused
Whether every member pauses.
[JsonPropertyName("paused")]
public bool? Paused { get; init; }
Property Value
- bool?
Remarks
A null leaves each member's pause state alone.
Players
Membership changes applied before the update, additions first.
[JsonPropertyName("players")]
public GroupMembership? Players { get; init; }
Property Value
PositionMilliseconds
Where the played track starts, in milliseconds, and, when the update carries no track, the position every member seeks to.
[JsonPropertyName("position")]
[JsonConverter(typeof(RoundedInt64Converter))]
public long? PositionMilliseconds { get; init; }
Property Value
- long?
Remarks
The server skips the seek for members with no track loaded (a freshly created member never seeks), members with a track, playing or paused, seek to it.
Track
The track every member plays.
[JsonPropertyName("track")]
[JsonConverter(typeof(GroupTrackConverter))]
public GroupTrack? Track { get; init; }
Property Value
Remarks
A null leaves the members' tracks alone, use Stop to stop them.
Volume
The playback volume of every member, 0-1000, 100 is the neutral value.
[JsonPropertyName("volume")]
[JsonConverter(typeof(RoundedInt32Converter))]
public int? Volume { get; init; }
Property Value
- int?