lib/membrane_rtc_engine/events/track_variant_switched.ex
defmodule Membrane.RTC.Engine.Event.TrackVariantSwitched do
@moduledoc """
Event sent whenever Engine starts sending a new track variant.
See also `Membrane.RTC.Engine.Event.RequestTrackVariant`.
"""
alias Membrane.RTC.Engine.Track
@derive Membrane.EventProtocol
@typedoc """
Type describing TrackVariantSwitched event.
* `new_variant` - variant that engine will be sending from now
* `reason` - a reason passed in `Membrane.RTC.Engine.Event.RequestTrackVariant`.
Defaults to `nil`,
"""
@type t :: %__MODULE__{new_variant: Track.variant(), reason: atom() | nil}
@enforce_keys [:new_variant]
defstruct @enforce_keys ++ [reason: nil]
end