// +build pi0 /* DESCRIPTION pi0.go defines an initialisation function for use when running on the Raspberry Pi 0. AUTHORS Ella Pietraroia Scott Barnard Saxon Nelson-Milton LICENSE Copyright (C) 2020 the Australian Ocean Lab (AusOcean) It is free software: you can redistribute it and/or modify them under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. It 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 in gpl.txt. If not, see http://www.gnu.org/licenses. */ package main import ( "os/exec" "time" "bitbucket.org/ausocean/utils/logging" ) const audioCmd = "play" func initCommand(l logging.Logger) { const ( cardPath = "/usr/share/doc/audioInjector/asound.state.RCA.thru.test" retryDur = 5 * time.Second alsactl = "alsactl" ) // Make sure utility to set up sound card, alsactl, exists. checkPath(alsactl, l) // Set up sound card using alsactl. cmdInit := exec.Command(alsactl, "-f", cardPath, "restore") err := cmdInit.Run() for err != nil { l.Warning( "alsactl run failed, retrying...", "error", err) time.Sleep(retryDur) err = cmdInit.Run() } // Make sure utility to play audio exists. checkPath(audioCmd, l) }