Packages
membrane_core
0.10.2
1.3.4
1.3.3
1.3.2
1.3.1
1.3.0
1.2.7
1.2.6
1.2.5
retired
1.2.4
1.2.3
1.2.2
1.2.1
1.2.0
1.2.0-rc1
1.1.2
1.1.1
1.1.0
1.1.0-rc1
1.1.0-rc0
1.0.1
1.0.0
1.0.0-rc1
1.0.0-rc0
0.12.9
0.12.8
0.12.7
0.12.6
0.12.5
0.12.4
0.12.3
0.12.2
0.12.1
0.12.0
retired
0.11.5
0.11.4
0.11.3
0.11.2
0.11.1
0.11.0
0.10.2
0.10.1
0.10.0
0.9.0
0.8.2
0.8.1
0.8.0
0.7.0
0.6.1
0.6.0
0.5.3
0.5.2
0.5.1
0.5.0
0.4.3
0.4.2
0.4.1
0.4.0
0.3.2
0.3.1
0.3.0
0.2.2
0.2.1
0.2.0
0.1.1
0.1.0
Membrane Multimedia Framework (Core)
Current section
Files
Jump to
Current section
Files
lib/membrane/core/child.ex
defmodule Membrane.Core.Child do
@moduledoc false
@type state_t :: Membrane.Core.Element.State.t() | Membrane.Core.Bin.State.t()
@docs_order [
:membrane_options_moduledoc,
:membrane_pads_moduledoc,
:membrane_clock_moduledoc
]
@spec generate_moduledoc(module, :element | :bin) :: Macro.t()
def generate_moduledoc(module, child_type) do
membrane_pads_moduledoc =
Module.get_attribute(module, :membrane_pads)
|> __MODULE__.PadsSpecs.generate_docs_from_pads_specs()
Module.put_attribute(module, :membrane_pads_moduledoc, membrane_pads_moduledoc)
moduledoc =
case Module.get_attribute(module, :moduledoc, "") do
{_line, doc} -> doc
doc -> doc
end
if moduledoc != false do
moduledoc =
if String.trim(moduledoc) == "" do
"Membrane #{child_type}.\n\n"
else
moduledoc
end
moduledoc =
@docs_order
|> Enum.map(&Module.get_attribute(module, &1))
|> Enum.filter(& &1)
|> Enum.reduce(moduledoc, fn doc, moduledoc ->
quote do
unquote(moduledoc) <> unquote(doc)
end
end)
quote do
@moduledoc unquote(moduledoc)
end
end
end
end