25 lines
710 B
Gleam
25 lines
710 B
Gleam
import gleam/erlang/process.{type Name}
|
|
|
|
import musicplayer/input/input
|
|
import musicplayer/input/key.{type Key}
|
|
import musicplayer/logging/logging
|
|
import musicplayer/mpv/mpv
|
|
import musicplayer/musicplayer
|
|
import musicplayer/ui/ui
|
|
|
|
pub fn main() -> Nil {
|
|
let assert Ok(_) = logging.initialize()
|
|
|
|
let input_keys_name: Name(Key) = process.new_name("input_keys")
|
|
input.new(input_keys_name)
|
|
|
|
let assert Ok(ui) = ui.new()
|
|
let assert Ok(mpv) = mpv.new()
|
|
let assert Ok(musicplayer_pid) = musicplayer.new(ui, mpv, input_keys_name)
|
|
|
|
let monitor = process.monitor(musicplayer_pid)
|
|
process.new_selector()
|
|
|> process.select_specific_monitor(monitor, fn(_) { Nil })
|
|
|> process.selector_receive_forever
|
|
}
|