View Source Fledex.LedsDriver (fledex v0.1.0)

Link to this section Summary

Link to this section Types

@type colorint() :: 0..16_777_215
@type hsv() :: {hue :: 0..255, saturation :: 0..255, value :: 0..255}
@type rgb() :: {red :: 0..255, green :: 0..255, blue :: 0..255}
@type t() :: %{
  timer: %{
    disabled: boolean(),
    counter: pos_integer(),
    update_timeout: pos_integer(),
    update_func: (t() -> t()),
    only_dirty_update: boolean(),
    is_dirty: boolean(),
    ref: reference()
  },
  led_strip: %{merge_strategy: atom(), driver_modules: module(), config: map()},
  namespaces: map()
}

Link to this section Functions

Link to this function

apply_merge_strategy(rgb, count, merge_strategy)

View Source
@spec apply_merge_strategy(
  {pos_integer(), pos_integer(), pos_integer()},
  pos_integer(),
  atom()
) ::
  rgb()
Link to this function

define_namespace(namespace, server_name \\ __MODULE__)

View Source
@spec define_namespace(atom(), atom()) :: {:ok, atom()} | {:error, String.t()}
Link to this function

drop_namespace(namespace, server_name \\ __MODULE__)

View Source
@spec drop_namespace(atom(), atom()) :: :ok
Link to this function

exist_namespace(namespace, server_name \\ __MODULE__)

View Source
@spec exist_namespace(atom(), atom()) :: boolean()
@spec extend([colorint()], pos_integer()) :: [colorint()]
@spec get_leds(map()) :: [[colorint()]]
@spec init_state(map()) :: t()
@spec match_length([[colorint()]]) :: [[colorint()]]
Link to this function

merge_leds(leds, merge_strategy)

View Source
@spec merge_leds([[colorint()]], atom()) :: [colorint()]
Link to this function

merge_namespaces(namespaces, merge_strategy)

View Source
@spec merge_namespaces(map(), atom()) :: [colorint()]
Link to this function

merge_pixels(elems, merge_strategy)

View Source
@spec merge_pixels([colorint()], atom()) :: colorint()
Link to this function

set_leds(namespace, leds, server_name \\ __MODULE__)

View Source
@spec set_leds(atom(), [pos_integer()], atom()) :: :ok | {:error, String.t()}
Link to this function

start_link(init_arg, server_name \\ __MODULE__)

View Source
@spec start_link(map(), atom() | {:global, any()} | {:via, atom(), any()}) ::
  :ignore | {:error, any()} | {:ok, pid()}
@spec transfer_data(t()) :: t()