class Subconv::Scc::Reader::State

Internal state of the parser consisting of current drawing position, character style and captioning mode

Attributes

char_replaced[R]
column[R]
mode[R]
row[R]
style[RW]

Public Class Methods

default() click to toggle source
# File lib/subconv/scc/reader.rb, line 295
def self.default
  State.new(row: 0, column: 0, style: CharacterStyle.default, mode: :pop_on)
end
new(params) click to toggle source
# File lib/subconv/scc/reader.rb, line 251
def initialize(params)
  self.row = params[:row]
  self.column = params[:column]
  @style = params[:style]
  self.mode = params[:mode]
end

Public Instance Methods

char_replaced=(replaced) click to toggle source
# File lib/subconv/scc/reader.rb, line 285
def char_replaced=(replaced)
  fail ArgumentError, 'Invalid value for char_replaced' unless [true, false].include?(replaced)

  @char_replaced = replaced
end
column=(column) click to toggle source

Make sure the cursor does not get outside the screen left or right

# File lib/subconv/scc/reader.rb, line 267
def column=(column)
  @column = Utility.clamp(column, 0, GRID_COLUMNS - 1)
end
mode=(mode) click to toggle source
# File lib/subconv/scc/reader.rb, line 271
def mode=(mode)
  fail 'Unknown mode' unless %i[pop_on paint_on].include?(mode)

  @mode = mode
end
paint_on_mode?() click to toggle source
# File lib/subconv/scc/reader.rb, line 281
def paint_on_mode?
  @mode == :paint_on
end
pop_on_mode?() click to toggle source
# File lib/subconv/scc/reader.rb, line 277
def pop_on_mode?
  @mode == :pop_on
end
row=(row) click to toggle source

Make sure the maximum row count is not exceeded

# File lib/subconv/scc/reader.rb, line 262
def row=(row)
  @row = Utility.clamp(row, 0, GRID_ROWS - 1)
end
start_new_frame() click to toggle source
# File lib/subconv/scc/reader.rb, line 291
def start_new_frame
  self.char_replaced = false
end