// Package gumble is a client for the Mumble voice chat software.
//
// Getting started
//
// 1. Create a new Config to hold your connection settings:
//
//        config := gumble.NewConfig()
//        config.Username = "gumble-test"
//
// 2. Attach event listeners to the configuration:
//
//        config.Attach(gumbleutil.Listener{
//            TextMessage: func(e *gumble.TextMessageEvent) {
//                fmt.Printf("Received text message: %s\n", e.Message)
//            },
//        })
//
// 3. Connect to the server:
//
//        client, err := gumble.Dial("example.com:64738", config)
//        if err != nil {
//            panic(err)
//        }
//
// Audio codecs
//
// Currently, only the Opus codec (https://www.opus-codec.org/) is supported
// for transmitting and receiving audio. It can be enabled by importing the
// following package for its side effect:
//  import (
//      _ "git.2mb.codes/~cmb/barnard/gumble/opus"
//  )
//
// To ensure that gumble clients can always transmit and receive audio to and
// from your server, add the following line to your murmur configuration file:
//
//  opusthreshold=0
//
// Thread safety
//
// As a general rule, a Client everything that is associated with it
// (Users, Channels, Config, etc.), is thread-unsafe. Accessing or modifying
// those structures should only be done from inside of an event listener or via
// Client.Do.
package gumble // import "git.2mb.codes/~cmb/barnard/gumble/gumble"
