mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2024-11-10 04:57:26 +01:00
audio: Grace returning when audio is not available
This commit is contained in:
parent
1ff738e730
commit
c2313c10c1
@ -9,7 +9,7 @@ before_install:
|
|||||||
- sudo add-apt-repository 'deb http://us.archive.ubuntu.com/ubuntu/ utopic main restricted universe multiverse'
|
- sudo add-apt-repository 'deb http://us.archive.ubuntu.com/ubuntu/ utopic main restricted universe multiverse'
|
||||||
- sudo add-apt-repository 'deb http://us.archive.ubuntu.com/ubuntu/ utopic-updates main restricted universe multiverse'
|
- sudo add-apt-repository 'deb http://us.archive.ubuntu.com/ubuntu/ utopic-updates main restricted universe multiverse'
|
||||||
- sudo apt-get update -qq
|
- sudo apt-get update -qq
|
||||||
- sudo apt-get install -qq libglew-dev libglfw3-dev libopenal1 libopenal-dev
|
- sudo apt-get install -qq libglew-dev libglfw3-dev libopenal-dev libalut-dev
|
||||||
- export NODE_PATH=$(npm config get prefix)/lib/node_modules
|
- export NODE_PATH=$(npm config get prefix)/lib/node_modules
|
||||||
- npm install --global gl
|
- npm install --global gl
|
||||||
|
|
||||||
|
@ -18,6 +18,8 @@ import (
|
|||||||
"sync"
|
"sync"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var audioEnabled = false
|
||||||
|
|
||||||
const bufferSize = 1024
|
const bufferSize = 1024
|
||||||
const SampleRate = 44100
|
const SampleRate = 44100
|
||||||
|
|
||||||
@ -75,6 +77,10 @@ func Play(channel int, l []float32, r []float32) bool {
|
|||||||
channelsLock.Lock()
|
channelsLock.Lock()
|
||||||
defer channelsLock.Unlock()
|
defer channelsLock.Unlock()
|
||||||
|
|
||||||
|
if !audioEnabled {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
if len(l) != len(r) {
|
if len(l) != len(r) {
|
||||||
panic("len(l) must equal to len(r)")
|
panic("len(l) must equal to len(r)")
|
||||||
}
|
}
|
||||||
@ -93,6 +99,10 @@ func Queue(channel int, l []float32, r []float32) {
|
|||||||
channelsLock.Lock()
|
channelsLock.Lock()
|
||||||
defer channelsLock.Unlock()
|
defer channelsLock.Unlock()
|
||||||
|
|
||||||
|
if !audioEnabled {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
if len(l) != len(r) {
|
if len(l) != len(r) {
|
||||||
panic("len(l) must equal to len(r)")
|
panic("len(l) must equal to len(r)")
|
||||||
}
|
}
|
||||||
@ -116,6 +126,10 @@ func isChannelsEmpty() bool {
|
|||||||
channelsLock.Lock()
|
channelsLock.Lock()
|
||||||
defer channelsLock.Unlock()
|
defer channelsLock.Unlock()
|
||||||
|
|
||||||
|
if !audioEnabled {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
for _, ch := range channels {
|
for _, ch := range channels {
|
||||||
if 0 < len(ch.l) {
|
if 0 < len(ch.l) {
|
||||||
return false
|
return false
|
||||||
@ -128,6 +142,10 @@ func loadChannelBuffers() (l, r []float32) {
|
|||||||
channelsLock.Lock()
|
channelsLock.Lock()
|
||||||
defer channelsLock.Unlock()
|
defer channelsLock.Unlock()
|
||||||
|
|
||||||
|
if !audioEnabled {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
inputL := make([]float32, bufferSize)
|
inputL := make([]float32, bufferSize)
|
||||||
inputR := make([]float32, bufferSize)
|
inputR := make([]float32, bufferSize)
|
||||||
for _, ch := range channels {
|
for _, ch := range channels {
|
||||||
@ -150,5 +168,9 @@ func IsPlaying(channel int) bool {
|
|||||||
channelsLock.Lock()
|
channelsLock.Lock()
|
||||||
defer channelsLock.Unlock()
|
defer channelsLock.Unlock()
|
||||||
|
|
||||||
|
if !audioEnabled {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
return isPlaying(channel)
|
return isPlaying(channel)
|
||||||
}
|
}
|
||||||
|
@ -49,6 +49,7 @@ func initialize() {
|
|||||||
r.SetIndex(i, inputR[i])
|
r.SetIndex(i, inputR[i])
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
audioEnabled = true
|
||||||
}
|
}
|
||||||
|
|
||||||
func start() {
|
func start() {
|
||||||
|
@ -21,6 +21,7 @@ import (
|
|||||||
"encoding/binary"
|
"encoding/binary"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/timshannon/go-openal/openal"
|
"github.com/timshannon/go-openal/openal"
|
||||||
|
"log"
|
||||||
"math"
|
"math"
|
||||||
"runtime"
|
"runtime"
|
||||||
"time"
|
"time"
|
||||||
@ -55,12 +56,14 @@ func initialize() {
|
|||||||
context := device.CreateContext()
|
context := device.CreateContext()
|
||||||
context.Activate()
|
context.Activate()
|
||||||
|
|
||||||
source := openal.NewSource()
|
|
||||||
|
|
||||||
if alErr := openal.GetError(); alErr != 0 {
|
if alErr := openal.GetError(); alErr != 0 {
|
||||||
panic(fmt.Sprintf("OpenAL initialize error: %d", alErr))
|
log.Printf("OpenAL initialize error: %d", alErr)
|
||||||
|
close(ch)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
audioEnabled = true
|
||||||
|
source := openal.NewSource()
|
||||||
close(ch)
|
close(ch)
|
||||||
|
|
||||||
emptyBytes := make([]byte, 4*bufferSize)
|
emptyBytes := make([]byte, 4*bufferSize)
|
||||||
|
Loading…
Reference in New Issue
Block a user