mirror of https://github.com/jetkvm/kvm.git
27 lines
918 B
Go
27 lines
918 B
Go
package audio
|
|
|
|
// AudioSource provides audio frames from either CGO (in-process) or IPC (subprocess)
|
|
// This interface allows the relay goroutine to work with both modes transparently
|
|
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 establishes connection to the audio source
|
|
// For CGO: initializes C audio subsystem
|
|
// For IPC: connects to Unix socket
|
|
Connect() error
|
|
|
|
// Disconnect closes the connection and releases resources
|
|
Disconnect()
|
|
}
|