-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconfig.go
61 lines (52 loc) · 1.68 KB
/
config.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
package main
import (
"encoding/json"
"os"
"sync"
)
type GlitchStyle string
const (
GlitchStyleTransposeInput GlitchStyle = "TransposeInput"
GlitchStyleVerticalTransposeInput GlitchStyle = "VerticalTransposeInput"
GlitchStyleCompressionGhost GlitchStyle = "CompressionGhost"
GlitchStyleGhostStreach GlitchStyle = "GhostStreach"
GlitchStyleHalfLifeLeft GlitchStyle = "HalfLifeLeft"
GlitchStyleHalfLifeRight GlitchStyle = "HalfLifeRight"
GlitchStyleChannelShiftLeft GlitchStyle = "ChannelShiftLeft"
GlitchStyleChannelShiftRight GlitchStyle = "ChannelShiftRight"
GlitchStyleBlueBoost GlitchStyle = "BlueBoost"
GlitchStyleGreenBoost GlitchStyle = "GreenBoost"
GlitchStyleRedBoost GlitchStyle = "RedBoost"
GlitchStylePrismBurst GlitchStyle = "PrismBurst"
GlitchStyleNoise GlitchStyle = "Noise"
)
type Config struct {
Path string `json:"path"`
Styles []GlitchStyle `json:"styles"`
TransposeInput bool `json:"transpose_input"`
VertitalTransposeInput bool `json:"vertital_transpose_input"`
}
var config *Config
var once sync.Once
func init() {
getInstancia()
}
func getInstancia() *Config {
file, _ := os.Open("config.json")
defer file.Close()
decoder := json.NewDecoder(file)
var conf Config
err := decoder.Decode(&conf)
if err != nil {
conf.Path = "art"
}
once.Do(func() {
config = &Config{
Path: conf.Path,
Styles: conf.Styles,
TransposeInput: conf.TransposeInput,
VertitalTransposeInput: conf.VertitalTransposeInput,
}
})
return config
}