View Source X32Remote.Supervisor (x32_remote v0.1.0)

A supervisor that starts a named ExOSC.Client, and an X32Remote.Session subscribed to it.

Normally, this is used by X32Remote to create the session that will be used by X32Remote.Mixer. However, you can also use this in your own code, either to start that instance manually, or to conveniently start a supervised client + session pair.

Link to this section Summary

Types

Option values used by start_link/1

Options used by start_link/1

Functions

Returns a specification to start this supervisor under another supervisor.

Starts a supervisor that runs a named ExOSC.Client and a X32Remote.Session subscribed to it.

Link to this section Types

@type option() ::
  {:ip, :inet.ip_address()}
  | {:port, :inet.port_number()}
  | {:client_name, GenServer.name()}
  | {:session_name, GenServer.name()}
  | Supervisor.option()
  | Supervisor.init_option()

Option values used by start_link/1

@type options() :: [option()]

Options used by start_link/1

Link to this section Functions

@spec child_spec(options()) :: Supervisor.child_spec()

Returns a specification to start this supervisor under another supervisor.

See the "Child specification" section in the Supervisor module for more detailed information.

@spec start_link(options()) :: Supervisor.on_start()

Starts a supervisor that runs a named ExOSC.Client and a X32Remote.Session subscribed to it.

options

Options

  • :ip (required) — target IP in tuple form
  • :port (required) — target UDP port
  • :name — registered name of the supervisor (default: Elixir.X32Remote.Mixer.Supervisor)
  • :client_name — registered name of the ExOSC.Client process (default: Elixir.X32Remote.Mixer.Client)
  • :session_name — registered name of the X32Remote.Session process (default: Elixir.X32Remote.Mixer.Session)

This function also accepts all the options accepted by Supervisor.start_link/3, and all of the name options accept the same values that function does.

The client_name will be passed to X32Remote.Session.start_link/1 as the client option.

Note that if you use a non-default session_name, the X32Remote.Mixer convenience module will not be using your supervised client and session.

return-values

Return values

Same as Supervisor.start_link/3.