libtrackerboy/private/enginestate

  Source   Edit

DO NOT INCLUDE THIS MODULE!

This module is intended to only be used internally by trackerboy modules.

take me back home ↩

Types

ApuOperation = object
  updates*: array[ChannelId, ChannelUpdate]
  sweep*: Option[uint8]
  volume*: Option[uint8]
An operation or modification to be made to an ApuIo object Stepping the Engine results in an ApuOperation   Source   Edit
ChannelAction = enum
  caNone,                   ## No action, do not update channel
  caUpdate,                 ## Update the channel by writing its registers
  caCut,                    ## Note stopped, turn DAC off
  caShutdown                 ## Channel was unlocked, zero the channel's registers
  Source   Edit
ChannelState = object
  envelope*: uint16
  timbre*: uint8
  panning*: uint8
  frequency*: uint16
State of a channel   Source   Edit
ChannelUpdate = object
  case action*: ChannelAction
  of caNone:
      nil

  of caUpdate:
      flags*: UpdateFlags
      state*: ChannelState
      trigger*: bool

  of caCut:
      nil

  of caShutdown:
      nil

  
  Source   Edit
EngineFrame = object
  halted*: bool              ## Indicates if the song has halted
  startedNewRow*: bool       ## Indicates if this frame is the first of a new row being stepped.
  startedNewPattern*: bool   ## Indicates if this frame is the first step of a new pattern.
  speed*: uint8              ## Current playback speed, in Q4.4 format.
  time*: int                 ## time index of the frame
  order*: int                ## Current pattern index
  row*: int                  ## Current row index
  
Informational data about the current engine frame being stepped.   Source   Edit
GlobalState = object
  patternCommand*: PatternCommand
  patternCommandParam*: uint8
  panning*: array[ChannelId, uint8]
  speed*: uint8
  sweep*: Option[uint8]
  volume*: Option[uint8]
  halt*: bool
State of the music runtime that is accessible by all tracks   Source   Edit
UpdateFlag = enum
  ufTimbre, ufEnvelope, ufPanning, ufFrequency
  Source   Edit

Consts

ufAll = {ufTimbre..ufFrequency}
  Source   Edit

Procs

func init(_: typedesc[ChannelState]): ChannelState
  Source   Edit
func init(T: typedesc[GlobalState]): GlobalState
  Source   Edit