/
control.go
184 lines (175 loc) · 6.02 KB
/
control.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
package stl
// ControlCode
type ControlCode byte
const (
ControlCodeItalicOn ControlCode = 0x80
ControlCodeItalicOff ControlCode = 0x81
ControlCodeUnderlineOn ControlCode = 0x82
ControlCodeUnderlineOff ControlCode = 0x83
ControlCodeBoxingOn ControlCode = 0x84
ControlCodeBoxingOff ControlCode = 0x85
ControlCodeLineBreak ControlCode = 0x8A
ControlCodeUnusedSpace ControlCode = 0x8F
)
// String returns the string representation of ControlCode.
func (cc ControlCode) String() string {
switch cc {
case ControlCodeItalicOn:
return "Italic on"
case ControlCodeItalicOff:
return "Italic off"
case ControlCodeUnderlineOn:
return "Underline on"
case ControlCodeUnderlineOff:
return "Underline off"
case ControlCodeBoxingOn:
return "Boxing on"
case ControlCodeBoxingOff:
return "Boxing off"
case ControlCodeLineBreak:
return "Line break"
case ControlCodeUnusedSpace:
return "Unused space"
}
return "Unknown"
}
// TeletextControlCode (from EBU document Tech. 3240)
type TeletextControlCode ControlCode
const (
TeletextControlCodeAlphaBlack TeletextControlCode = 0x00
TeletextControlCodeAlphaRed TeletextControlCode = 0x01
TeletextControlCodeAlphaGreen TeletextControlCode = 0x02
TeletextControlCodeAlphaYellow TeletextControlCode = 0x03
TeletextControlCodeAlphaBlue TeletextControlCode = 0x04
TeletextControlCodeAlphaMagenta TeletextControlCode = 0x05
TeletextControlCodeAlphaCyan TeletextControlCode = 0x06
TeletextControlCodeAlphaWhite TeletextControlCode = 0x07
TeletextControlCodeFlash TeletextControlCode = 0x08
TeletextControlCodeSteady TeletextControlCode = 0x09
TeletextControlCodeEndBox TeletextControlCode = 0x0A
TeletextControlCodeStartBox TeletextControlCode = 0x0B
TeletextControlCodeNormalHeight TeletextControlCode = 0x0C
TeletextControlCodeDoubleHeight TeletextControlCode = 0x0D
TeletextControlCodeDoubleWidth TeletextControlCode = 0x0E
TeletextControlCodeDoubleSize TeletextControlCode = 0x0F
TeletextControlCodeMosaicBlack TeletextControlCode = 0x10
TeletextControlCodeMosaicRed TeletextControlCode = 0x11
TeletextControlCodeMosaicGreen TeletextControlCode = 0x12
TeletextControlCodeMosaicYellow TeletextControlCode = 0x13
TeletextControlCodeMosaicBlue TeletextControlCode = 0x14
TeletextControlCodeMosaicMagenta TeletextControlCode = 0x15
TeletextControlCodeMosaicCyan TeletextControlCode = 0x16
TeletextControlCodeMosaicWhite TeletextControlCode = 0x17
TeletextControlCodeConceal TeletextControlCode = 0x18
TeletextControlCodeContiguousMosaic TeletextControlCode = 0x19
TeletextControlCodeSeparatedMosaic TeletextControlCode = 0x1A
TeletextControlCodeReserved TeletextControlCode = 0x1B
TeletextControlCodeBlackBackground TeletextControlCode = 0x1C
TeletextControlCodeNewBackground TeletextControlCode = 0x1D
TeletextControlCodeHoldMosaic TeletextControlCode = 0x1E
TeletextControlCodeReleaseMosaic TeletextControlCode = 0x1F
)
// String returns the string representation of TeletextControlCode.
func (c TeletextControlCode) String() string {
switch c {
case TeletextControlCodeAlphaBlack:
return "Alpha black"
case TeletextControlCodeAlphaRed:
return "Alpha red"
case TeletextControlCodeAlphaGreen:
return "Alpha green"
case TeletextControlCodeAlphaYellow:
return "Alpha yellow"
case TeletextControlCodeAlphaBlue:
return "Alpha blue"
case TeletextControlCodeAlphaMagenta:
return "Alpha magenta"
case TeletextControlCodeAlphaCyan:
return "Alpha cyan"
case TeletextControlCodeAlphaWhite:
return "Alpha white"
case TeletextControlCodeFlash:
return "Flash"
case TeletextControlCodeSteady:
return "Steady"
case TeletextControlCodeEndBox:
return "End box"
case TeletextControlCodeStartBox:
return "Start box"
case TeletextControlCodeNormalHeight:
return "Normal height"
case TeletextControlCodeDoubleHeight:
return "Double height"
case TeletextControlCodeDoubleWidth:
return "Double width"
case TeletextControlCodeDoubleSize:
return "Double size"
case TeletextControlCodeMosaicBlack:
return "Mosaic black"
case TeletextControlCodeMosaicRed:
return "Mosaic red"
case TeletextControlCodeMosaicGreen:
return "Mosaic green"
case TeletextControlCodeMosaicYellow:
return "Mosaic yellow"
case TeletextControlCodeMosaicBlue:
return "Mosaic blue"
case TeletextControlCodeMosaicMagenta:
return "Mosaic magenta"
case TeletextControlCodeMosaicCyan:
return "Mosaic cyan"
case TeletextControlCodeMosaicWhite:
return "Mosaic white"
case TeletextControlCodeConceal:
return "Conceal"
case TeletextControlCodeContiguousMosaic:
return "Contiguous mosaic"
case TeletextControlCodeSeparatedMosaic:
return "Separated mosaic"
case TeletextControlCodeReserved:
return "Reserved"
case TeletextControlCodeBlackBackground:
return "Black background"
case TeletextControlCodeNewBackground:
return "New background"
case TeletextControlCodeHoldMosaic:
return "Hold mosaic"
case TeletextControlCodeReleaseMosaic:
return "Release mosaic"
}
return "Unknown"
}
// TeletextColor is the code used to represent a Teletext color (from EBU document Tech. 3240)
type TeletextColor TeletextControlCode
const (
TeletextColorBlack TeletextColor = 0x0
TeletextColorRed TeletextColor = 0x1
TeletextColorGreen TeletextColor = 0x2
TeletextColorYellow TeletextColor = 0x3
TeletextColorBlue TeletextColor = 0x4
TeletextColorMagenta TeletextColor = 0x5
TeletextColorCyan TeletextColor = 0x6
TeletextColorWhite TeletextColor = 0x7
)
// String returns the string representation of TeletextColor.
func (c TeletextColor) String() string {
switch c {
case TeletextColorBlack:
return "Black"
case TeletextColorRed:
return "Red"
case TeletextColorGreen:
return "Green"
case TeletextColorYellow:
return "Yellow"
case TeletextColorBlue:
return "Blue"
case TeletextColorMagenta:
return "Magenta"
case TeletextColorCyan:
return "Cyan"
case TeletextColorWhite:
return "White"
}
return "Unknown"
}