al

package
v0.0.0-...-92056c7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 17, 2024 License: MIT Imports: 5 Imported by: 0

Documentation

Overview

Package al provides golang audio library bindings for OpenAL. Official OpenAL documentation can be found online. Prepend "AL_" to the function or constant names found in this package. Refer to the official OpenAL documentation for more information.

Package al is provided as part of the vu (virtual universe) 3D engine.

Index

Constants

View Source
const (
	FALSE                     = 0
	TRUE                      = 1
	NONE                      = 0
	NO_ERROR                  = 0
	SOURCE_RELATIVE           = 0x202
	CONE_INNER_ANGLE          = 0x1001
	CONE_OUTER_ANGLE          = 0x1002
	PITCH                     = 0x1003
	POSITION                  = 0x1004
	DIRECTION                 = 0x1005
	VELOCITY                  = 0x1006
	LOOPING                   = 0x1007
	BUFFER                    = 0x1009
	GAIN                      = 0x100A
	MIN_GAIN                  = 0x100D
	MAX_GAIN                  = 0x100E
	ORIENTATION               = 0x100F
	SOURCE_STATE              = 0x1010
	INITIAL                   = 0x1011
	PLAYING                   = 0x1012
	PAUSED                    = 0x1013
	STOPPED                   = 0x1014
	BUFFERS_QUEUED            = 0x1015
	BUFFERS_PROCESSED         = 0x1016
	SEC_OFFSET                = 0x1024
	SAMPLE_OFFSET             = 0x1025
	BYTE_OFFSET               = 0x1026
	SOURCE_TYPE               = 0x1027
	STATIC                    = 0x1028
	STREAMING                 = 0x1029
	UNDETERMINED              = 0x1030
	FORMAT_MONO8              = 0x1100
	FORMAT_MONO16             = 0x1101
	FORMAT_STEREO8            = 0x1102
	FORMAT_STEREO16           = 0x1103
	REFERENCE_DISTANCE        = 0x1020
	ROLLOFF_FACTOR            = 0x1021
	CONE_OUTER_GAIN           = 0x1022
	MAX_DISTANCE              = 0x1023
	FREQUENCY                 = 0x2001
	BITS                      = 0x2002
	CHANNELS                  = 0x2003
	SIZE                      = 0x2004
	UNUSED                    = 0x2010
	PENDING                   = 0x2011
	PROCESSED                 = 0x2012
	INVALID_NAME              = 0xA001
	INVALID_ENUM              = 0xA002
	INVALID_VALUE             = 0xA003
	INVALID_OPERATION         = 0xA004
	OUT_OF_MEMORY             = 0xA005
	VENDOR                    = 0xB001
	VERSION                   = 0xB002
	RENDERER                  = 0xB003
	EXTENSIONS                = 0xB004
	DOPPLER_FACTOR            = 0xC000
	DOPPLER_VELOCITY          = 0xC001
	SPEED_OF_SOUND            = 0xC003
	DISTANCE_MODEL            = 0xD000
	INVERSE_DISTANCE          = 0xD001
	INVERSE_DISTANCE_CLAMPED  = 0xD002
	LINEAR_DISTANCE           = 0xD003
	LINEAR_DISTANCE_CLAMPED   = 0xD004
	EXPONENT_DISTANCE         = 0xD005
	EXPONENT_DISTANCE_CLAMPED = 0xD006
)

AL/al.h constants (with AL_ removed). Refer to the original header for constant documentation.

View Source
const (
	C_FALSE                            = 0
	C_TRUE                             = 1
	C_NO_ERROR                         = 0
	C_FREQUENCY                        = 0x1007
	C_REFRESH                          = 0x1008
	C_SYNC                             = 0x1009
	C_MONO_SOURCES                     = 0x1010
	C_STEREO_SOURCES                   = 0x1011
	C_INVALID_DEVICE                   = 0xA001
	C_INVALID_CONTEXT                  = 0xA002
	C_INVALID_ENUM                     = 0xA003
	C_INVALID_VALUE                    = 0xA004
	C_OUT_OF_MEMORY                    = 0xA005
	C_DEFAULT_DEVICE_SPECIFIER         = 0x1004
	C_DEVICE_SPECIFIER                 = 0x1005
	C_EXTENSIONS                       = 0x1006
	C_MAJOR_VERSION                    = 0x1000
	C_MINOR_VERSION                    = 0x1001
	C_ATTRIBUTES_SIZE                  = 0x1002
	C_ALL_ATTRIBUTES                   = 0x1003
	C_CAPTURE_DEVICE_SPECIFIER         = 0x310
	C_CAPTURE_DEFAULT_DEVICE_SPECIFIER = 0x311
	C_CAPTURE_SAMPLES                  = 0x312
)

AL/alc.h constants (with AL removed). Refer to the original header for constant documentation.

View Source
const (
	InvalidName      = 0xA001
	InvalidEnum      = 0xA002
	InvalidValue     = 0xA003
	InvalidOperation = 0xA004
	OutOfMemory      = 0xA005
)

Error returns one of these error codes.

View Source
const (
	InverseDistance         = 0xD001
	InverseDistanceClamped  = 0xD002
	LinearDistance          = 0xD003
	LinearDistanceClamped   = 0xD004
	ExponentDistance        = 0xD005
	ExponentDistanceClamped = 0xD006
)

Distance models.

View Source
const (
	Initial = 0x1011
	Playing = 0x1012
	Paused  = 0x1013
	Stopped = 0x1014
)

A source could be in the state of initial, playing, paused or stopped.

View Source
const (
	FormatMono8    = 0x1100
	FormatMono16   = 0x1101
	FormatStereo8  = 0x1102
	FormatStereo16 = 0x1103
)

Audio formats. Buffer.BufferData accepts one of these formats as the data format.

Variables

This section is empty.

Functions

func BindingReport

func BindingReport() (report []string)

Show which function pointers are bound [+] or not bound [-]. Expected to be used as a sanity check to see if the OpenAL libraries exist.

func DeleteBuffers

func DeleteBuffers(buffers []Buffer)

DeleteBuffers deletes the buffers.

func DeleteSources

func DeleteSources(source ...Source)

DeleteSources deletes the sources.

func Disable

func Disable(capability int32)

Disable disables a capability.

func DistanceModel

func DistanceModel() int32

DistanceModel returns the distance model.

func DopplerFactor

func DopplerFactor() float32

DopplerFactor returns the doppler factor.

func DopplerVelocity

func DopplerVelocity() float32

DopplerVelocity returns the doppler velocity.

func Enable

func Enable(capability int32)

al.h Enable enables a capability.

func Enabled

func Enabled(capability int32) bool

Enabled returns true if the specified capability is enabled.

func Error

func Error() int32

Error returns the most recently generated error.

func Extensions

func Extensions() string

Extensions returns the enabled extensions.

func Init

func Init() error

bind the methods to the function pointers

func InitPath

func InitPath(path string) error

func ListenerGain

func ListenerGain() float32

ListenerGain returns the total gain applied to the final mix.

func PauseSources

func PauseSources(source ...Source)

PauseSources pauses the sources.

func PlaySources

func PlaySources(source ...Source)

PlaySources plays the sources.

func Renderer

func Renderer() string

Renderer returns the renderer information.

func RewindSources

func RewindSources(source ...Source)

RewindSources rewinds the sources to their beginning positions.

func SetDistanceModel

func SetDistanceModel(v int32)

SetDistanceModel sets the distance model.

func SetDopplerFactor

func SetDopplerFactor(v float32)

SetDopplerFactor sets the doppler factor.

func SetDopplerVelocity

func SetDopplerVelocity(v float32)

SetDopplerVelocity sets the doppler velocity.

func SetListenerGain

func SetListenerGain(v float32)

SetListenerGain sets the total gain that will be applied to the final mix.

func SetListenerOrientation

func SetListenerOrientation(v Orientation)

SetListenerOrientation sets the orientation of the listener.

func SetListenerPosition

func SetListenerPosition(v Vector)

SetListenerPosition sets the position of the listener.

func SetListenerVelocity

func SetListenerVelocity(v Vector)

SetListenerVelocity sets the velocity of the listener.

func SetSpeedOfSound

func SetSpeedOfSound(v float32)

SetSpeedOfSound sets the speed of sound, its unit should be meters per second (m/s).

func SpeedOfSound

func SpeedOfSound() float32

SpeedOfSound is the speed of sound in meters per second (m/s).

func StopSources

func StopSources(source ...Source)

StopSources stops the sources.

func Vendor

func Vendor() string

Vendor returns the vendor.

func Version

func Version() string

Version returns the version string.

Types

type Buffer

type Buffer uint32

A buffer represents a chunk of PCM audio data that could be buffered to an audio source. A single buffer could be shared between multiple sources.

func GenBuffers

func GenBuffers(n int) []Buffer

GenBuffers generates n new buffers. The generated buffers should be deleted once they are no longer in use.

func (Buffer) Bits

func (b Buffer) Bits() int32

Bits return the number of bits used to represent a sample.

func (Buffer) BufferData

func (b Buffer) BufferData(format uint32, data []byte, freq int32)

BufferData buffers PCM data to the current buffer.

func (Buffer) Channels

func (b Buffer) Channels() int32

Channels return the number of the audio channels.

func (Buffer) Frequency

func (b Buffer) Frequency() int32

Frequency returns the frequency of the buffer data in Hertz (Hz).

func (Buffer) Size

func (b Buffer) Size() int32

Size returns the size of the data.

func (Buffer) Valid

func (b Buffer) Valid() bool

Valid returns true if the buffer exists and is valid.

type CaptureDevice

type CaptureDevice struct {
	Device
}

Capture device

func CaptureOpen

func CaptureOpen(name string, frequency uint, format int, buffersize int64) *CaptureDevice

Open opens a new capture device in the OpenAL layer.

func (*CaptureDevice) Close

func (d *CaptureDevice) Close() bool

Close closes the capture device.

func (*CaptureDevice) Samples

func (dev *CaptureDevice) Samples(bs []byte, samples int64)

func (*CaptureDevice) Start

func (dev *CaptureDevice) Start()

func (*CaptureDevice) Stop

func (dev *CaptureDevice) Stop()

type Context

type Context struct {
	// contains filtered or unexported fields
}

Context represents a context created in the OpenAL layer. A valid current context is required to run OpenAL functions. The returned context will be available process-wide if it's made the current by calling MakeContextCurrent.

func GetCurrentContext

func GetCurrentContext() *Context

func (Context) Destroy

func (context Context) Destroy()

func (Context) GetDevice

func (context Context) GetDevice() *Device

func (*Context) MakeCurrent

func (c *Context) MakeCurrent() bool

MakeContextCurrent makes a context current process-wide.

func (Context) Process

func (context Context) Process()

func (Context) Suspend

func (context Context) Suspend()

type Device

type Device struct {
	// contains filtered or unexported fields
}

alc.h Device represents an audio device.

func Open

func Open(name string) *Device

Open opens a new device in the OpenAL layer.

func (*Device) Close

func (d *Device) Close() bool

Close closes the device.

func (*Device) CreateContext

func (d *Device) CreateContext(attrs []int32) *Context

CreateContext creates a new context.

func (*Device) Error

func (d *Device) Error() int32

Error returns the last known error from the current device.

func (*Device) GetEnumValue

func (d *Device) GetEnumValue(enumname string) int

func (*Device) GetIntegerv

func (d *Device) GetIntegerv(param int, size int64, values *int32)

func (*Device) GetString

func (d *Device) GetString(param int) string

type Orientation

type Orientation struct {
	// Forward vector is the direction that the object is looking at.
	Forward Vector
	// Up vector represents the rotation of the object.
	Up Vector
}

Orientation represents the angular position of an object in a right-handed Cartesian coordinate system. A cross product between the forward and up vector returns a vector that points to the right.

func ListenerOrientation

func ListenerOrientation() Orientation

ListenerOrientation returns the orientation of the listener.

type Source

type Source uint32

Source represents an individual sound source in 3D-space. They take PCM data, apply modifications and then submit them to be mixed according to their spatial location.

func GenSources

func GenSources(n int) []Source

GenSources generates n new sources. These sources should be deleted once they are not in use.

func (Source) BuffersProcessed

func (s Source) BuffersProcessed() int32

BuffersProcessed returns the number of the processed buffers.

func (Source) BuffersQueued

func (s Source) BuffersQueued() int32

BuffersQueued returns the number of the queued buffers.

func (Source) Gain

func (s Source) Gain() float32

Gain returns the source gain.

func (Source) MaxGain

func (s Source) MaxGain() float32

MaxGain returns the source's maximum gain setting.

func (Source) MinGain

func (s Source) MinGain() float32

MinGain returns the source's minimum gain setting.

func (Source) OffsetByte

func (s Source) OffsetByte() int32

OffsetByte returns the byte offset of the current playback position.

func (Source) OffsetSample

func (s Source) OffsetSample() int32

OffsetSample returns the sample offset of the current playback position.

func (Source) OffsetSeconds

func (s Source) OffsetSeconds() int32

OffsetSeconds returns the current playback position of the source in seconds.

func (Source) Orientation

func (s Source) Orientation() Orientation

Orientation returns the orientation of the source.

func (Source) Position

func (s Source) Position() Vector

Position returns the position of the source.

func (Source) QueueBuffers

func (s Source) QueueBuffers(buffers []Buffer)

QueueBuffers adds the buffers to the buffer queue.

func (Source) SetGain

func (s Source) SetGain(v float32)

SetGain sets the source gain.

func (Source) SetMaxGain

func (s Source) SetMaxGain(v float32)

SetMaxGain sets the source's maximum gain setting.

func (Source) SetMinGain

func (s Source) SetMinGain(v float32)

SetMinGain sets the source's minimum gain setting.

func (Source) SetOrientation

func (s Source) SetOrientation(o Orientation)

SetOrientation sets the orientation of the source.

func (Source) SetPosition

func (s Source) SetPosition(v Vector)

SetPosition sets the position of the source.

func (Source) SetVelocity

func (s Source) SetVelocity(v Vector)

SetVelocity sets the source's velocity.

func (Source) State

func (s Source) State() int32

State returns the playing state of the source.

func (Source) UnqueueBuffers

func (s Source) UnqueueBuffers(buffers []Buffer)

UnqueueBuffers removes the specified buffers from the buffer queue.

func (Source) Velocity

func (s Source) Velocity() Vector

Velocity returns the source's velocity.

type Vector

type Vector [3]float32

Vector represents an vector in a Cartesian coordinate system.

func ListenerPosition

func ListenerPosition() Vector

ListenerPosition returns the position of the listener.

func ListenerVelocity

func ListenerVelocity() Vector

ListenerVelocity returns the velocity of the listener.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL