// // dolmetschctl // // // Copyright (C) 2019 Christian Pointner // // This file is part of dolmetschctl. // // dolmetschctl is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // any later version. // // dolmetschctl is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with dolmetschctl. If not, see . // package main import ( "log" "os" "spreadspace.org/dolmetschctl/pkg/mixer" ) func addLanguage(sm *StateMachine, name Language, main, voice mixer.Channel) { if err := sm.AddLanguage(name, main, voice); err != nil { log.Printf("adding language '%s' failed: %v", name, err) os.Exit(1) } log.Printf("successfully added language: '%s'", name) } func main() { log.Println("hello world.") m, err := mixer.NewMixer(mixer.Config{DevIn: "ESI MIDIMATE eX MIDI 2", DevOut: "ESI MIDIMATE eX MIDI 1"}) if err != nil { log.Printf("Error opening the mixer: %v", err) os.Exit(1) } defer m.Shutdown() log.Printf("successfully connected to mixer:") log.Printf(" input: %s\t%s", m.DevIn.ID, m.DevIn.Name) log.Printf(" output: %s\t%s", m.DevOut.ID, m.DevOut.Name) if err = m.Init(); err != nil { log.Printf("Error initializeing the mixer: %v", err) os.Exit(1) } log.Printf("mixer successfully initialized!") var sm *StateMachine if sm, err = NewStateMachine(m); err != nil { log.Printf("initializing state machine failed: %v", err) os.Exit(1) } log.Printf("state machine successfully initialized!") // TODO: make this configurable addLanguage(sm, "en", 0x20, 0x24) addLanguage(sm, "de", 0x22, 0x25) sm.Start() defer sm.Shutdown() var telnet *TelnetInterface if telnet, err = NewTelnetInterface("127.0.0.1:1234", sm); err != nil { log.Printf("creating telnet control interface failed: %v", err) os.Exit(1) } log.Printf("telnet interface successfully initialized!") if err = telnet.Run(); err != nil { log.Printf("running telnet interface failed: %v", err) } log.Printf("exiting.") }