simpleradio

package
v0.13.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 6, 2024 License: MIT Imports: 20 Imported by: 6

Documentation

Overview

Package simpleradio contains a SimpleRadio-Standalone client.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Audio added in v0.5.0

type Audio []float32

Audio is a sample of audio data in F32LE PCM format.

type Client

type Client interface {
	// Run starts the SimpleRadio-Standalone client. It should be called exactly once.
	Run(context.Context, *sync.WaitGroup) error
	// Send sends a message to the SRS server.
	Send(types.Message) error
	// Receive returns a channel that receives transmissions over the radio. Each transmission is F32LE PCM audio data.
	Receive() <-chan Transmission
	// Transmit queues a transmission to send over the radio. The audio data should be in F32LE PCM format.
	Transmit(Transmission)
	// Frequencies returns the frequencies the client is listening on.
	Frequencies() []RadioFrequency
	// ClientsOnFrequency returns the number of peers on the client's frequencies.
	ClientsOnFrequency() int
	// HumansOnFrequency returns the number of human peers on the client's frequencies.
	// A human peer is any client whose name does not end with "[BOT]".
	HumansOnFrequency() int
	// BotsOnFrequency returns the number of bot peers on the client's frequencies.
	// A bot peer is any client whose name ends with "[BOT]".
	BotsOnFrequency() int
	// IsOnFrequency checks if the named unit is on any of the client's frequencies.
	IsOnFrequency(string) bool
}

Client is a SimpleRadio-Standalone client.

func NewClient

func NewClient(config types.ClientConfiguration) (Client, error)

NewClient creates a new SimpleRadio-Standalone client.

type RadioFrequency added in v0.3.0

type RadioFrequency struct {
	Frequency  unit.Frequency
	Modulation types.Modulation
}

RadioFrequency selects a frequency and either AM or FM modulation.

func ParseRadioFrequency added in v0.3.0

func ParseRadioFrequency(s string) (*RadioFrequency, error)

ParseRadioFrequency parses a string into a RadioFrequency. The string should be a positive decimal number optionally followed by either "AM" or "FM". If the modulation is not recognized, it defaults to AM.

func (RadioFrequency) IsSameFrequency added in v0.3.0

func (f RadioFrequency) IsSameFrequency(other RadioFrequency) bool

IsSameFrequency returns true if the given frequency has the same frequency and modulation as this frequency.

func (RadioFrequency) String added in v0.3.0

func (f RadioFrequency) String() string

String representation of the RadioFrequency.

type Transmission added in v0.6.0

type Transmission struct {
	// TraceID of the transmission.
	TraceID string
	// ClientName is the name of the SRS client that transmitted the audio.
	ClientName string
	// Audio sample for the transmission.
	Audio Audio
}

Transmission is an envelope containing a trace ID, SRS client name, and audio sample for a transmission.

Directories

Path Synopsis
Package types contains types used by the SRS client.
Package types contains types used by the SRS client.
Package voice contains the types used by the SRS audio protocol to send and receive audio data over the network.
Package voice contains the types used by the SRS audio protocol to send and receive audio data over the network.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL