作者:Jragonmiri
项目:go-a
func RewindSources(sources ...Source) error {
if len(sources) == 0 {
return nil
}
C.alSourceRewindv(C.ALsizei(C.int(len(sources))), (*C.ALuint)(unsafe.Pointer(&sources[0])))
return GetError()
}
作者:Jragonmiri
项目:go-a
func (source Source) UnqueueBuffers(buffers ...Buffer) error {
if len(buffers) == 0 {
return nil
}
C.alSourceUnqueueBuffers(source.source, C.ALsizei(C.int(len(buffers))), (*C.ALuint)(unsafe.Pointer(&buffers[0])))
return GetError()
}
作者:Jragonmiri
项目:go-a
func DeleteBuffers(toDelete ...Buffer) error {
if len(toDelete) == 0 {
return nil
}
C.alDeleteBuffers(C.ALsizei(C.int(len(toDelete))), (*C.ALuint)(unsafe.Pointer(&toDelete[0])))
return GetError()
}
作者:nzlo
项目:goa
func LoadMemoryFromFileImage(data interface{}, length int) (
format al.ALenum, size int32, frequency float32, rdata unsafe.Pointer) {
rdata = C.alutLoadMemoryFromFileImage(
ptr(data), C.ALsizei(length),
(*C.ALenum)(&format),
(*C.ALsizei)(&size),
(*C.ALfloat)(&frequency),
)
return
}
作者:Jragonmiri
项目:go-a
func GenBuffers(numBuffers int) ([]Buffer, error) {
if numBuffers == 0 {
return nil, nil // AL guarantees that 0 will have no effect, so we'll save ourselves the C call
}
buf := make([]Buffer, numBuffers)
C.alGenBuffers(C.ALsizei(C.int(numBuffers)), (*C.ALuint)(unsafe.Pointer(&buf[0]))) // Since a Buffer is a struct{C.ALuint} an array of Buffers is an array of ALuints
if err := GetError(); err != nil {
return nil, err
}
return buf, nil
}
作者:pigulo
项目:go-opena
func DeleteBuffers(buffers []*Buffer) {
n := len(buffers)
bufferIds := make([]C.ALuint, n)
for i, v := range buffers {
forgetBuffer(v)
bufferIds[i] = v.handle
}
C.walDeleteBuffers(C.ALsizei(n), unsafe.Pointer(&bufferIds[0]))
return
}
作者:Jragonmiri
项目:go-a
func GenSources(numSources int) ([]Source, error) {
if numSources == 0 {
return nil, nil // AL guarantees that 0 will have no effect, so we'll save ourselves the C call
}
buf := make([]Source, numSources)
C.alGenSources(C.ALsizei(C.int(numSources)), (*C.ALuint)(unsafe.Pointer(&buf[0])))
if err := GetError(); err != nil {
return nil, err
}
return buf, nil
}
作者:pigulo
项目:go-opena
func GenBuffers(n int) (buffers []*Buffer) {
bufferIds := make([]C.ALuint, n)
C.walGenBuffers(C.ALsizei(n), unsafe.Pointer(&bufferIds[0]))
if GetError() != AlNoError {
return
}
buffers = make([]*Buffer, n)
for i, v := range bufferIds {
b := new(Buffer)
b.handle = v
rememberBuffer(b)
buffers[i] = b
}
return
}
作者:anthonyreg
项目:gosm
func (s *Sound) LoadPCMData() {
format := 0
if s.Channels > 1 {
switch s.BitsPerSample {
case 8:
format = C.AL_FORMAT_STEREO8
case 16:
format = C.AL_FORMAT_STEREO16
}
} else {
switch s.BitsPerSample {
case 8:
format = C.AL_FORMAT_MONO8
case 16:
format = C.AL_FORMAT_MONO16
}
}
C.alGenBuffers(1, &s.buffer)
C.alBufferData(s.buffer, C.ALenum(format), unsafe.Pointer(&s.Data[0]), C.ALsizei(s.Size), C.ALsizei(s.Frequency))
}
作者:9uus
项目:go-opena
// NewBuffers() creates n fresh buffers.
// Renamed, was GenBuffers.
func NewBuffers(n int) (buffers []Buffer) {
buffers = make([]Buffer, n)
C.walGenBuffers(C.ALsizei(n), unsafe.Pointer(&buffers[0]))
return
}
作者:jaekwo
项目:go-opena
// Renamed, was SourcePausev.
func PauseSources(sources []Source) {
C.walSourcePausev(C.ALsizei(len(sources)), unsafe.Pointer(&sources[0]))
}
作者:jaekwo
项目:go-opena
// Renamed, was SourceRewindv.
func RewindSources(sources []Source) {
C.walSourceRewindv(C.ALsizei(len(sources)), unsafe.Pointer(&sources[0]))
}
作者:jaekwo
项目:go-opena
// Renamed, was SourceStopv.
func StopSources(sources []Source) {
C.walSourceStopv(C.ALsizei(len(sources)), unsafe.Pointer(&sources[0]))
}
作者:jaekwo
项目:go-opena
// Renamed, was SourcePlayv.
func PlaySources(sources []Source) {
C.walSourcePlayv(C.ALsizei(len(sources)), unsafe.Pointer(&sources[0]))
}
作者:handong89
项目:mobil
func alDeleteBuffers(b []Buffer) {
C.call_alDeleteBuffers(alDeleteBuffersFunc, C.ALsizei(len(b)), (*C.ALuint)(unsafe.Pointer(&b[0])))
}
作者:handong89
项目:mobil
func alSourceUnqueueBuffers(s Source, b []Buffer) {
C.call_alSourceUnqueueBuffers(alSourceUnqueueBuffersFunc, C.ALuint(s), C.ALsizei(len(b)), (*C.ALuint)(unsafe.Pointer(&b[0])))
}
作者:handong89
项目:mobil
func alSourceRewindv(s []Source) {
C.call_alSourceRewindv(alSourceRewindvFunc, C.ALsizei(len(s)), (*C.ALuint)(unsafe.Pointer(&s[0])))
}
作者:pigulo
项目:go-opena
func GenSources(sources []uint) {
n := len(sources)
C.walGenSources(C.ALsizei(n), unsafe.Pointer(&sources[0]))
}
作者:9uus
项目:go-opena
// SetData() specifies the sample data the buffer should use.
// For FormatMono16 and FormatStereo8 the data slice must be a
// multiple of two bytes long; for FormatStereo16 the data slice
// must be a multiple of four bytes long. The frequency is given
// in Hz.
// Renamed, was BufferData.
func (self Buffer) SetData(format int32, data []byte, frequency int32) {
C.alBufferData(C.ALuint(self), C.ALenum(format), unsafe.Pointer(&data[0]),
C.ALsizei(len(data)), C.ALsizei(frequency))
}
作者:nzlo
项目:goa
func CreateBufferFromFileImage(data interface{}, length int) {
C.alutCreateBufferFromFileImage(ptr(data), C.ALsizei(length))
}