mirror of https://github.com/jetkvm/kvm.git
fix: add stub implementation for CGO audio on non-ARM platforms
Provides no-op AudioSource implementations for platforms that don't support ARM CGO audio (x86_64, darwin, etc.). This allows golangci-lint to run successfully on any platform without requiring ARM cross-compilation toolchain. The stub implementations return errors when called, ensuring that if they're accidentally used at runtime on non-ARM platforms, it will fail gracefully with a clear error message rather than undefined symbols. Build constraints ensure the real CGO implementation is used on linux/arm and linux/arm64, while stubs are used everywhere else.
This commit is contained in:
parent
54cbd98781
commit
68b1bc54ce
|
|
@ -0,0 +1,50 @@
|
|||
//go:build !linux || (!arm && !arm64)
|
||||
|
||||
package audio
|
||||
|
||||
import "fmt"
|
||||
|
||||
// StubSource is a no-op implementation for platforms without CGO audio support
|
||||
type StubSource struct {
|
||||
direction string
|
||||
alsaDevice string
|
||||
}
|
||||
|
||||
// NewCgoOutputSource creates a stub audio source for output (unsupported platforms)
|
||||
func NewCgoOutputSource(alsaDevice string) AudioSource {
|
||||
return &StubSource{
|
||||
direction: "output",
|
||||
alsaDevice: alsaDevice,
|
||||
}
|
||||
}
|
||||
|
||||
// NewCgoInputSource creates a stub audio source for input (unsupported platforms)
|
||||
func NewCgoInputSource(alsaDevice string) AudioSource {
|
||||
return &StubSource{
|
||||
direction: "input",
|
||||
alsaDevice: alsaDevice,
|
||||
}
|
||||
}
|
||||
|
||||
// Connect returns an error indicating CGO audio is not supported
|
||||
func (s *StubSource) Connect() error {
|
||||
return fmt.Errorf("CGO audio not supported on this platform")
|
||||
}
|
||||
|
||||
// Disconnect is a no-op
|
||||
func (s *StubSource) Disconnect() {}
|
||||
|
||||
// IsConnected returns false
|
||||
func (s *StubSource) IsConnected() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
// ReadMessage returns an error
|
||||
func (s *StubSource) ReadMessage() (uint8, []byte, error) {
|
||||
return 0, nil, fmt.Errorf("CGO audio not supported on this platform")
|
||||
}
|
||||
|
||||
// WriteMessage returns an error
|
||||
func (s *StubSource) WriteMessage(msgType uint8, payload []byte) error {
|
||||
return fmt.Errorf("CGO audio not supported on this platform")
|
||||
}
|
||||
Loading…
Reference in New Issue