28 lines
617 B
Go
28 lines
617 B
Go
package gumbleutil
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/layeh/gumble/gumble"
|
|
)
|
|
|
|
var autoBitrate = &Listener{
|
|
Connect: func(e *gumble.ConnectEvent) {
|
|
if e.MaximumBitrate != nil {
|
|
const safety = 5
|
|
interval := e.Client.Config.AudioInterval
|
|
dataBytes := (*e.MaximumBitrate / (8 * (int(time.Second/interval) + safety))) - 32 - 10
|
|
|
|
e.Client.Config.AudioDataBytes = dataBytes
|
|
}
|
|
},
|
|
}
|
|
|
|
// AutoBitrate is a gumble.EventListener that automatically sets the client's
|
|
// AudioDataBytes to suitable value, based on the server's bitrate.
|
|
var AutoBitrate gumble.EventListener
|
|
|
|
func init() {
|
|
AutoBitrate = autoBitrate
|
|
}
|