# HG changeset patch # User coaljoe # Date 1742006458 -10800 # Sat Mar 15 05:40:58 2025 +0300 # Node ID d9752594daf588f2443716fb1dced64bf1017d0b # Parent afe45d4105874681c09e487827dc881818027654 build player diff --git a/player/player.go b/player/player.go --- a/player/player.go +++ b/player/player.go @@ -8,9 +8,9 @@ import ( "fmt" - //"os" + "os" "math" - //"encoding/binary" + "encoding/binary" "time" "slices" @@ -1129,6 +1129,39 @@ return ret, count, pState } +// floatMode: use float32 output +func (p *Player) RenderToFile(path string, floatMode bool) { + //_log.Dbg("%F path:", path, "floatMode:", floatMode) + fmt.Println("Player RenderToFile path:", path, "floatMode:", floatMode) + + var outBuf []byte + var outBufRaw [][2]float64 + if !floatMode { + outBuf = p.RenderToBufRaw() + } else { + outBufRaw = p.RenderToBuf() + } + + f, err := os.Create(path) + if err != nil { + panic(err) + } + if !floatMode { + _, err := f.Write(outBuf) + if err != nil { + panic(err) + } + } else { + data := BufTof32Buf(outBufRaw) + err = binary.Write(f, binary.LittleEndian, data) + if err != nil { + panic(err) + } + } + f.Close() + _log.Dbg("done %F") +} + func (p *Player) _renderToBuf() ([][2]float64, []byte) { fmt.Println("Player _renderToBuf")