mirror of
https://github.com/issadarkthing/gomu.git
synced 2025-04-26 13:49:21 +08:00
setup hooks
setup hooks
This commit is contained in:
parent
9d41e80edc
commit
94d83bc464
@ -124,7 +124,7 @@ func (p *Player) run(currSong *AudioFile) error {
|
||||
|
||||
// starts playing the audio
|
||||
speaker.Play(p._volume)
|
||||
gomu.hook.RunHooks("playing")
|
||||
gomu.hook.RunHooks("new_song")
|
||||
|
||||
p.isRunning = true
|
||||
|
||||
@ -194,6 +194,7 @@ next:
|
||||
}
|
||||
|
||||
func (p *Player) pause() {
|
||||
gomu.hook.RunHooks("pause")
|
||||
speaker.Lock()
|
||||
p.ctrl.Paused = true
|
||||
p.isRunning = false
|
||||
@ -201,6 +202,7 @@ func (p *Player) pause() {
|
||||
}
|
||||
|
||||
func (p *Player) play() {
|
||||
gomu.hook.RunHooks("play")
|
||||
speaker.Lock()
|
||||
p.ctrl.Paused = false
|
||||
p.isRunning = true
|
||||
@ -239,6 +241,8 @@ func (p *Player) togglePause() {
|
||||
// skips current song
|
||||
func (p *Player) skip() {
|
||||
|
||||
gomu.hook.RunHooks("skip")
|
||||
|
||||
if p.currentSong == nil {
|
||||
return
|
||||
}
|
||||
|
34
start.go
34
start.go
@ -63,13 +63,27 @@ func defineBuiltins() {
|
||||
}
|
||||
|
||||
func setupHooks() {
|
||||
gomu.hook.AddHook("playing", func() {
|
||||
_, err := gomu.anko.Execute(`Event.run_hooks("playing")`)
|
||||
if err != nil {
|
||||
err = tracerr.Errorf("error execute hook: %w", err)
|
||||
logError(err)
|
||||
}
|
||||
})
|
||||
|
||||
events := []string{
|
||||
"enter",
|
||||
"new_song",
|
||||
"skip",
|
||||
"play",
|
||||
"pause",
|
||||
"exit",
|
||||
}
|
||||
|
||||
for _, event := range events {
|
||||
name := event
|
||||
gomu.hook.AddHook(name, func() {
|
||||
src := fmt.Sprintf(`Event.run_hooks("%s")`, name)
|
||||
_, err := gomu.anko.Execute(src)
|
||||
if err != nil {
|
||||
err = tracerr.Errorf("error execute hook: %w", err)
|
||||
logError(err)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
// loadModules executes helper modules and default config that should only be
|
||||
@ -150,7 +164,6 @@ module Keybinds {
|
||||
}
|
||||
}
|
||||
`
|
||||
setupHooks()
|
||||
_, err := gomu.anko.Execute(eventModule + listModule + keybindModule)
|
||||
if err != nil {
|
||||
return tracerr.Wrap(err)
|
||||
@ -266,6 +279,7 @@ func start(application *tview.Application, args Args) {
|
||||
gomu = newGomu()
|
||||
gomu.command.defineCommands()
|
||||
defineBuiltins()
|
||||
|
||||
err := loadModules()
|
||||
if err != nil {
|
||||
die(err)
|
||||
@ -276,6 +290,9 @@ func start(application *tview.Application, args Args) {
|
||||
die(err)
|
||||
}
|
||||
|
||||
setupHooks()
|
||||
|
||||
gomu.hook.RunHooks("enter")
|
||||
gomu.args = args
|
||||
gomu.colors = newColor()
|
||||
|
||||
@ -413,4 +430,5 @@ func start(application *tview.Application, args Args) {
|
||||
die(err)
|
||||
}
|
||||
|
||||
gomu.hook.RunHooks("exit")
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user