Documentation ¶
Index ¶
- Constants
- type Client
- type ClientOptions
- type Clock
- type ColorMessage
- type CountdownMessage
- type Counter
- func (counter *Counter) Diff(t time.Time) time.Duration
- func (counter *Counter) Modify(delta time.Duration)
- func (counter *Counter) Output(t time.Time) *CounterOutput
- func (counter *Counter) Pause()
- func (counter *Counter) ResetMedia()
- func (counter *Counter) ResetSlave()
- func (counter *Counter) Resume()
- func (counter *Counter) SetMedia(hours, minutes, seconds, frames int32, remaining time.Duration, ...)
- func (counter *Counter) SetSlave(hours, minutes, seconds int, hideHours bool, icon string)
- func (counter *Counter) Start(countdown bool, timer time.Duration)
- func (counter *Counter) Stop()
- func (counter *Counter) Target(target time.Time)
- type CounterOutput
- type DisplayMessage
- type Engine
- func (engine *Engine) DisplaySeconds() bool
- func (engine *Engine) LtcActive() bool
- func (engine *Engine) ModifyCounter(counter int, delta time.Duration)
- func (engine *Engine) Pause()
- func (engine *Engine) PauseCounter(counter int)
- func (engine *Engine) Resume()
- func (engine *Engine) ResumeCounter(counter int)
- func (engine *Engine) SetSourceColors(source int, text, bg color.RGBA)
- func (engine *Engine) SetTitleColors(text, bg color.RGBA)
- func (engine *Engine) StartCounter(counter int, countdown bool, timer time.Duration)
- func (engine *Engine) State() *State
- func (engine *Engine) StopCounter(counter int)
- func (engine *Engine) TargetCounter(counter int, target string, countdown bool)
- type EngineOptions
- type MediaMessage
- type Message
- type Server
- type SourceOptions
- type State
- type TextMessage
- type TimeMessage
Constants ¶
const ( Normal = iota // Display current time Countdown = iota // Display countdown timer only Countup = iota // Count time up Off = iota // (Mostly) blank screen Paused = iota // Paused countdown timer(s) LTC = iota // LTC display Media = iota // Playing media counter Slave = iota // Displaying slaved output )
Clock engine state constants
const ( PrimaryCounter = 0 // Main counter that replaces the ToD display on the round clock when active SecondaryCounter = 1 // Secondary counter that is displayed in the tally message space on the round clock )
Misc constants
const Version = "4.0.0"
Version is the current clock engine version
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client A clock osc client
func (*Client) SendDisplay ¶
func (client *Client) SendDisplay(message DisplayMessage) error
SendDisplay Send a /clock/display message
func (*Client) SendStart ¶
func (client *Client) SendStart(message CountdownMessage) error
SendStart Send a /clock/countdown/start message
type ClientOptions ¶
type ClientOptions struct {
Connect string `long:"clock-client-connect" description:"Address to send clock osc messages to" default:"255.255.255.255:1245"` // Address to connect to with OSC
}
ClientOptions common options for client instances
func (ClientOptions) MakeClient ¶
func (options ClientOptions) MakeClient() (*Client, error)
MakeClient Create a clock OSC client
type Clock ¶
type Clock struct { Text string // Normal clock representation HH:MM:SS(:FF) Hours int // Hours on the clock Minutes int // Minutes on the clock Seconds int // Seconds on the clock Frames int // Frames, only on LTC Label string // Label text Icon string // Icon for the clock type Compact string // 4 character condensed output Expired bool // true if asscociated timer is expired Mode int // Display type Paused bool // Is the clock/timer paused? Progress float64 // Progress of the total timer 0-1 Hidden bool // The timer should not be rendered if true TextColor color.RGBA // Color for text BGColor color.RGBA // Background color HideHours bool // Should the hour field of the time be displayed for this clock. HideSeconds bool // Should seconds be shown for this clock SignalColor color.RGBA }
Clock contains the state of a single component clock / timer
type ColorMessage ¶
type ColorMessage struct {
// contains filtered or unexported fields
}
ColorMessage holds text and background colors with alpha
func (*ColorMessage) ToRGBA ¶
func (message *ColorMessage) ToRGBA() []color.RGBA
ToRGBA converts the message contents to a slice of color.RGBA
func (*ColorMessage) UnmarshalOSC ¶
func (message *ColorMessage) UnmarshalOSC(msg *osc.Message) error
UnmarshalOSC creates a colormessage from OSC message
type CountdownMessage ¶
type CountdownMessage struct {
Seconds int32
}
CountdownMessage is for /clock/countdown/start
func (CountdownMessage) MarshalOSC ¶
func (message CountdownMessage) MarshalOSC(addr string) *osc.Message
MarshalOSC converts a CountdownMessage to osc.Message
func (*CountdownMessage) UnmarshalOSC ¶
func (message *CountdownMessage) UnmarshalOSC(msg *osc.Message) error
UnmarshalOSC converts a osc.Message to CountdownMessage
type Counter ¶
type Counter struct {
// contains filtered or unexported fields
}
Counter abstracts a generic counter counting up or down
func (*Counter) Diff ¶
Diff gives a time difference to current time that can be used to format clock output strings
func (*Counter) Output ¶
func (counter *Counter) Output(t time.Time) *CounterOutput
Output generates the static output of the counter for use in clock displays
func (*Counter) ResetMedia ¶
func (counter *Counter) ResetMedia()
ResetMedia removes the media state from a counter
func (*Counter) ResetSlave ¶
func (counter *Counter) ResetSlave()
ResetSlave removes slave state from external source
func (*Counter) SetMedia ¶
func (counter *Counter) SetMedia(hours, minutes, seconds, frames int32, remaining time.Duration, progress float64, paused bool, looping bool)
SetMedia sets the counter state from a playing media file
type CounterOutput ¶
type CounterOutput struct { Active bool // True if the counter is active Media bool // True if counter represents a playing media file Countdown bool // True if counting down, false if counting up Paused bool // True if counter has been paused Looping bool // True if the playing media is looping in the player Expired bool // Has the countdown timer expired? Hours int // Hour part of the timer Minutes int // Minutes of the timer, 0-60 Seconds int // Seconds of the timer, 0-60 Text string // HH:MM:SS string representation Icon string // Single unicode glyph to use as an icon for the timer Compact string // Compact 4-character output Progress float64 // Percentage of total time elapsed of the countdown, 0-1 Diff time.Duration // raw difference HideHours bool SignalColor color.RGBA }
CounterOutput the data structure returned by Counter.Output() and contains the static state of the counter at that time
type DisplayMessage ¶
DisplayMessage is for /clock/display
func (DisplayMessage) MarshalOSC ¶
func (message DisplayMessage) MarshalOSC(addr string) *osc.Message
MarshalOSC converts a DisplayMessage to osc.Message
func (*DisplayMessage) UnmarshalOSC ¶
func (message *DisplayMessage) UnmarshalOSC(msg *osc.Message) error
UnmarshalOSC converts a osc.Message to DisplayMessage
type Engine ¶
type Engine struct { Counters []*Counter // Timer counters // contains filtered or unexported fields }
Engine contains the state machine for clock-8001
func MakeEngine ¶
func MakeEngine(options *EngineOptions) (*Engine, error)
MakeEngine creates a clock engine
func (*Engine) DisplaySeconds ¶
DisplaySeconds returns true if the clock should display seconds
func (*Engine) ModifyCounter ¶
ModifyCounter adds or removes time from a counter
func (*Engine) PauseCounter ¶
PauseCounter pauses a given counter
func (*Engine) ResumeCounter ¶
ResumeCounter resumes a paused counter
func (*Engine) SetSourceColors ¶
SetSourceColors sets the source output colors
func (*Engine) SetTitleColors ¶
SetTitleColors sets the source title colors
func (*Engine) StartCounter ¶
StartCounter starts a counter
func (*Engine) StopCounter ¶
StopCounter stops a given counter
type EngineOptions ¶
type EngineOptions struct { Flash int `long:"flash" description:"Flashing interval when countdown reached zero (ms), 0 disables" default:"500"` ListenAddr string `long:"osc-listen" description:"Address to listen for incoming osc messages" default:"0.0.0.0:1245"` Timeout int `short:"d" long:"timeout" description:"Timeout for OSC message updates in milliseconds" default:"1000"` Connect string `short:"o" long:"osc-dest" description:"Address to send OSC feedback to" default:"255.255.255.255:1245"` DisableOSC bool `long:"disable-osc" description:"Disable OSC control and feedback"` DisableFeedback bool `long:"disable-feedback" description:"Disable OSC feedback"` DisableLTC bool `long:"disable-ltc" description:"Disable LTC display mode"` LTCSeconds bool `long:"ltc-seconds" description:"Show seconds on the ring in LTC mode"` UDPTime string `long:"udp-time" description:"Stagetimer2 UDP protocol support" choice:"off" choice:"send" choice:"receive" default:"receive"` UDPTimer1 int `long:"udp-timer-1" description:"Timer to send as UDP timer 1 (port 36700)" default:"1"` UDPTimer2 int `long:"udp-timer-2" description:"Timer to send as UDP timer 2 (port 36701)" default:"2"` LTCFollow bool `` /* 130-byte string literal not displayed */ Format12h bool `long:"format-12h" description:"Use 12 hour format for time-of-day display"` Mitti int `long:"mitti" description:"Counter number for Mitti OSC feedback" default:"8"` Millumin int `long:"millumin" description:"Counter number for Millumin OSC feedback" default:"9"` Ignore string `` /* 137-byte string literal not displayed */ ShowInfo int `long:"info-timer" description:"Show clock status for x seconds on startup" default:"30"` OvertimeCountMode string `` /* 147-byte string literal not displayed */ OvertimeVisibility string `` /* 156-byte string literal not displayed */ AutoSignals bool `long:"auto-signals" description:"Automatic signal colors based on timer state"` SignalStart bool `long:"signal-start" description:"Set signal color on timer start"` SignalColorStart string `long:"signal-color-start" description:"Signal colors for timers above thresholds" default:"#00FF00"` SignalColorWarning string `long:"signal-color-warning" description:"Signal colors for timers between thresholds" default:"#FFFF00"` SignalColorEnd string `long:"signal-color-end" description:"Signal colors for timers bellow thresholds" default:"#FF0000"` SignalThresholdWarning int `long:"signal-threshold-warning" description:"Threshold for medium color transition (seconds)" default:"180"` SignalThresholdEnd int `long:"signal-threshold-end" description:"Threshold for medium color transition (seconds)" default:"60"` SignalHardware int `long:"signal-hw-group" description:"Hardware signal group number" default:"1"` Source1 *SourceOptions `group:"1st clock display source" namespace:"source1"` Source2 *SourceOptions `group:"2nd clock display source" namespace:"source2"` Source3 *SourceOptions `group:"3rd clock display source" namespace:"source3"` Source4 *SourceOptions `group:"4th clock display source" namespace:"source4"` }
EngineOptions contains all common options for clock.Engines
type MediaMessage ¶
type MediaMessage struct {
// contains filtered or unexported fields
}
MediaMessage contains data from media players
func (MediaMessage) MarshalOSC ¶
func (message MediaMessage) MarshalOSC(addr string) *osc.Message
MarshalOSC converts a MediaMessage to osc.Message
func (*MediaMessage) UnmarshalOSC ¶
func (message *MediaMessage) UnmarshalOSC(msg *osc.Message) error
UnmarshalOSC converts a osc.Message to MediaMessage
type Message ¶
type Message struct { Type string Counter int Countdown bool Data string CountdownMessage *CountdownMessage DisplayMessage *DisplayMessage MediaMessage *MediaMessage DisplayTextMessage *displayTextMessage Colors []color.RGBA }
Message is a generic clock message for decoded osc data
type Server ¶
type Server struct { Debug bool // contains filtered or unexported fields }
Server is a clock osc server and listens for incoming osc messages
func MakeServer ¶
MakeServer creates a clock.Server instance from osc.Server instance
type SourceOptions ¶
type SourceOptions struct { Text string `long:"text" description:"Title text for the time source"` Counter int `long:"counter" description:"Counter number to associate with this source, leave empty to disable it as a suorce" default:"0"` LTC bool `long:"ltc" description:"Enable LTC as a source"` Timer bool `long:"timer" description:"Enable timer counter as a source"` Tod bool `long:"tod" description:"Enable time-of-day as a source"` TimeZone string `long:"timezone" description:"Time zone to use for ToD display" default:"Europe/Helsinki"` Hidden bool `long:"hidden" description:"Hide this time source"` OvertimeColor string `long:"overtime-color" description:"Background color for overtime countdowns, in HTML format #FFFFFF" default:"#FF0000"` }
SourceOptions contains all options for clock display sources.
type State ¶
type State struct { Initialized bool // Does the clock have valid time or has it received an osc command? Clocks []*Clock // All configured clocks / timers Tally string // Tally message text TallyColor *color.RGBA // Tally message color TallyBG *color.RGBA // Tally message background color Flash bool // Flash cycle state Background int // User selected background number Info string // Clock information, version, ip-address etc. Should be displayed if not empty TitleColor color.RGBA // Color for the clock title text TitleBGColor color.RGBA // Background color for clock title text ScreenFlash bool // Set to true if the screen should be flashed white HardwareSignalColor color.RGBA }
State is a snapshot of the clock representation on the time State() was called
type TextMessage ¶
type TextMessage struct {
Text string
}
TextMessage is for text only messages like /clock/dual/text
func (TextMessage) MarshalOSC ¶
func (message TextMessage) MarshalOSC(addr string) *osc.Message
MarshalOSC converts a TextMessage to osc.Message
func (*TextMessage) UnmarshalOSC ¶
func (message *TextMessage) UnmarshalOSC(msg *osc.Message) error
UnmarshalOSC converts a osc.Message to TextMessage
type TimeMessage ¶
type TimeMessage struct {
Time string
}
TimeMessage is for /clock/settime and /clock/ltc
func (TimeMessage) MarshalOSC ¶
func (message TimeMessage) MarshalOSC(addr string) *osc.Message
MarshalOSC converts a TimeMessage to osc.Message
func (*TimeMessage) UnmarshalOSC ¶
func (message *TimeMessage) UnmarshalOSC(msg *osc.Message) error
UnmarshalOSC converts a osc.Message to TimeMessage