kvm/internal/audio/source.go

29 lines
824 B
Go

package audio
// IPC message types
const (
ipcMsgTypeOpus = 0 // Message type for Opus audio data
)
// AudioSource provides audio frames via CGO (in-process) C audio functions
type AudioSource interface {
// ReadMessage reads the next audio message
// Returns message type, payload data, and error
// Blocks until data is available or error occurs
// Used for output path (device → browser)
ReadMessage() (msgType uint8, payload []byte, err error)
// WriteMessage writes an audio message
// Used for input path (browser → device)
WriteMessage(msgType uint8, payload []byte) error
// IsConnected returns true if the source is connected and ready
IsConnected() bool
// Connect initializes the C audio subsystem
Connect() error
// Disconnect closes the connection and releases resources
Disconnect()
}