Current section

Files

Jump to
membrane_core lib membrane core playback.ex
Raw

lib/membrane/core/playback.ex

defmodule Membrane.Core.Playback do
@moduledoc false
# This module defines available playback states and struct that is held
# internally by every module having playback state.
alias Membrane.PlaybackState
defstruct state: :stopped,
pending_state: nil,
target_state: :stopped,
target_locked?: false,
async_state_change: false
@type t :: %__MODULE__{
state: PlaybackState.t(),
pending_state: PlaybackState.t() | nil,
target_state: PlaybackState.t(),
target_locked?: boolean,
async_state_change: boolean
}
def stable?(%__MODULE__{state: state, pending_state: nil, target_state: state}), do: true
def stable?(%__MODULE__{}), do: false
end