Go-based FM stereo transmitter with RDS, Windows-first and cross-platform
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

34 lines
890B

  1. package main
  2. import (
  3. "flag"
  4. "fmt"
  5. "log"
  6. "time"
  7. cfgpkg "github.com/jan/fm-rds-tx/internal/config"
  8. offpkg "github.com/jan/fm-rds-tx/internal/offline"
  9. )
  10. func main() {
  11. configPath := flag.String("config", "", "path to JSON config")
  12. out := flag.String("output", "", "output IQ file path")
  13. duration := flag.Duration("duration", 2*time.Second, "generation duration")
  14. outputRate := flag.Int("output-rate", 0, "override composite output sample rate")
  15. flag.Parse()
  16. cfg, err := cfgpkg.Load(*configPath)
  17. if err != nil {
  18. log.Fatalf("load config: %v", err)
  19. }
  20. if *outputRate > 0 {
  21. cfg.FM.CompositeRateHz = *outputRate
  22. }
  23. gen := offpkg.NewGenerator(cfg)
  24. if err := gen.WriteFile(*out, *duration); err != nil {
  25. log.Fatalf("offline generation failed: %v", err)
  26. }
  27. fmt.Println(gen.Summary(*duration))
  28. }