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
|
||
|
}
|