-
Notifications
You must be signed in to change notification settings - Fork 33
/
message.ex
76 lines (64 loc) · 1.94 KB
/
message.ex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
defmodule Membrane.RemoteControlled.Message do
@moduledoc """
An abstract module aggregating all the messages that can be sent by the `RemoteControlled.Pipeline`.
Check `t:t/0` for available messages.
"""
@type t ::
__MODULE__.Playing.t()
| __MODULE__.StartOfStream.t()
| __MODULE__.EndOfStream.t()
| __MODULE__.Notification.t()
| __MODULE__.Terminated.t()
defmodule Playing do
@moduledoc """
Message sent when the pipeline starts playing
"""
@type t :: %__MODULE__{from: pid()}
@enforce_keys [:from]
defstruct @enforce_keys
end
defmodule StartOfStream do
@moduledoc """
Message sent when some element of the pipeline receives the start of stream event on some pad.
"""
@type t :: %__MODULE__{
from: pid(),
element: Membrane.Element.name_t(),
pad: Membrane.Pad.name_t()
}
@enforce_keys [:from, :element, :pad]
defstruct @enforce_keys
end
defmodule EndOfStream do
@moduledoc """
Message sent when some element of the pipeline receives the start of stream event on some pad.
"""
@type t :: %__MODULE__{
from: pid(),
element: Membrane.Element.name_t(),
pad: Membrane.Pad.name_t()
}
@enforce_keys [:from, :element, :pad]
defstruct @enforce_keys
end
defmodule Notification do
@moduledoc """
Message sent when the some element of the pipeline receives a notification.
"""
@type t :: %__MODULE__{
from: pid(),
element: Membrane.Element.name_t(),
data: Membrane.ParentNotification.t()
}
@enforce_keys [:from, :element, :data]
defstruct @enforce_keys
end
defmodule Terminated do
@moduledoc """
Message sent when the pipeline gracefully terminates.
"""
@type t :: %__MODULE__{from: pid()}
@enforce_keys [:from]
defstruct @enforce_keys
end
end