class StrDn2030::Input

Attributes

audio[R]
icon[R]
index[R]
name[R]
parent[R]
preset_name[R]
skip_flags[R]
video[R]
zone[R]

Public Class Methods

new(parent, zone, index, audio, video, icon, preset_name, name, skip) click to toggle source
# File lib/str_dn_2030/input.rb, line 3
def initialize(parent, zone, index, audio, video, icon, preset_name, name, skip)
  @parent = parent
  @zone = zone
  @index = index.dup.b.freeze
  @audio = audio.dup.b.freeze
  @video = video.dup.b.freeze
  @icon = icon.dup.b.freeze
  @preset_name = preset_name.strip.freeze
  @name = name.strip.freeze
  @skip_flags = skip.dup.b.freeze
end

Public Instance Methods

==(other) click to toggle source
# File lib/str_dn_2030/input.rb, line 65
def ==(other)
  other.is_a?(self.class) && self.video == other.video && self.audio == other.audio
end
activate!() click to toggle source
# File lib/str_dn_2030/input.rb, line 26
def activate!
  parent.zone(self.zone).active_input = self
  nil
end
active?() click to toggle source
# File lib/str_dn_2030/input.rb, line 31
def active?
  parent.zone(self.zone).active_input == self
end
as_json() click to toggle source
# File lib/str_dn_2030/input.rb, line 69
def as_json
  {
    zone: zone,
    index: index,
    audio: audio,
    video: video,
    icon: icon,
    preset_name: preset_name,
    name: name,
    skip: skip,
    active: active?,
  }
end
inspect() click to toggle source
# File lib/str_dn_2030/input.rb, line 22
def inspect
  "#<#{self.class.name}: #{name} @ #{parent.host}:#{parent.port}/#{zone}>"
end
listen_skipped?() click to toggle source
# File lib/str_dn_2030/input.rb, line 43
def listen_skipped?
  skip[:listen]
end
skip() click to toggle source
# File lib/str_dn_2030/input.rb, line 51
def skip
  @skip ||= begin
    {raw: skip_flags}.tap do |_|
      _.merge!({
        "\x11".b => {watch: true,  listen: true},
        "\x21".b => {watch: true,  listen: true},
        "\x30".b => {watch: false, listen: false},
        "\x10".b => {watch: false, listen: true},
        "\x20".b => {watch: true,  listen: false},
      }[skip_flags.b] || {})
    end
  end
end
skipped?() click to toggle source
# File lib/str_dn_2030/input.rb, line 35
def skipped?
  skip[:watch] && skip[:listen]
end
skipped_any?() click to toggle source
# File lib/str_dn_2030/input.rb, line 47
def skipped_any?
  skip[:watch] || skip[:listen]
end
watch_skipped?() click to toggle source
# File lib/str_dn_2030/input.rb, line 39
def watch_skipped?
  skip[:watch]
end