mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2025-01-24 01:42:05 +01:00
audio: Bug fix: Compile failure on JS/Wasm
This commit is contained in:
parent
fe4f96e261
commit
88da1bb23f
@ -22,8 +22,6 @@ import (
|
||||
"sync"
|
||||
"syscall/js"
|
||||
"unsafe"
|
||||
|
||||
"github.com/hajimehoshi/ebiten/v2/audio/internal/go2cpp"
|
||||
)
|
||||
|
||||
type context struct {
|
||||
@ -38,10 +36,6 @@ type context struct {
|
||||
|
||||
func newContext(sampleRate int, channelNum int, bitDepthInBytes int) (*context, chan struct{}, error) {
|
||||
ready := make(chan struct{})
|
||||
if js.Global().Get("go2cpp").Truthy() {
|
||||
close(ready)
|
||||
return &go2cppDriverWrapper{go2cpp.NewContext(sampleRate, channelNum, bitDepthInBytes)}, ready, nil
|
||||
}
|
||||
|
||||
class := js.Global().Get("AudioContext")
|
||||
if !class.Truthy() {
|
||||
@ -386,24 +380,6 @@ func (p *player) loop() {
|
||||
}
|
||||
}
|
||||
|
||||
type go2cppDriverWrapper struct {
|
||||
c *go2cpp.Context
|
||||
}
|
||||
|
||||
func (w *go2cppDriverWrapper) NewPlayer(r io.Reader) Player {
|
||||
return w.c.NewPlayer(r)
|
||||
}
|
||||
|
||||
func (w *go2cppDriverWrapper) Suspend() error {
|
||||
// Do nothing so far.
|
||||
return nil
|
||||
}
|
||||
|
||||
func (w *go2cppDriverWrapper) Resume() error {
|
||||
// Do nothing so far.
|
||||
return nil
|
||||
}
|
||||
|
||||
func toLR(data []byte) ([]float32, []float32) {
|
||||
const max = 1 << 15
|
||||
|
||||
|
@ -99,7 +99,7 @@ func (f *playerFactory) initContextIfNeeded() (<-chan struct{}, error) {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
c, ready, err := readerdriver.NewContext(f.sampleRate, channelNum, bitDepthInBytes)
|
||||
c, ready, err := newContext(f.sampleRate, channelNum, bitDepthInBytes)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
52
audio/player_js.go
Normal file
52
audio/player_js.go
Normal file
@ -0,0 +1,52 @@
|
||||
// Copyright 2021 The Ebiten Authors
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package audio
|
||||
|
||||
import (
|
||||
"io"
|
||||
"syscall/js"
|
||||
|
||||
"github.com/hajimehoshi/ebiten/v2/audio/internal/go2cpp"
|
||||
"github.com/hajimehoshi/ebiten/v2/audio/internal/readerdriver"
|
||||
)
|
||||
|
||||
func newContext(sampleRate, channelNum, bitDepthInBytes int) (context, chan struct{}, error) {
|
||||
if js.Global().Get("go2cpp").Truthy() {
|
||||
ready := make(chan struct{})
|
||||
close(ready)
|
||||
ctx := go2cpp.NewContext(sampleRate, channelNum, bitDepthInBytes)
|
||||
return &go2cppDriverWrapper{ctx}, ready, nil
|
||||
}
|
||||
|
||||
return readerdriver.NewContext(sampleRate, channelNum, bitDepthInBytes)
|
||||
}
|
||||
|
||||
type go2cppDriverWrapper struct {
|
||||
c *go2cpp.Context
|
||||
}
|
||||
|
||||
func (w *go2cppDriverWrapper) NewPlayer(r io.Reader) readerdriver.Player {
|
||||
return w.c.NewPlayer(r)
|
||||
}
|
||||
|
||||
func (w *go2cppDriverWrapper) Suspend() error {
|
||||
// Do nothing so far.
|
||||
return nil
|
||||
}
|
||||
|
||||
func (w *go2cppDriverWrapper) Resume() error {
|
||||
// Do nothing so far.
|
||||
return nil
|
||||
}
|
26
audio/player_notjs.go
Normal file
26
audio/player_notjs.go
Normal file
@ -0,0 +1,26 @@
|
||||
// Copyright 2021 The Ebiten Authors
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
//go:build !js
|
||||
// +build !js
|
||||
|
||||
package audio
|
||||
|
||||
import (
|
||||
"github.com/hajimehoshi/ebiten/v2/audio/internal/readerdriver"
|
||||
)
|
||||
|
||||
func newContext(sampleRate, channelNum, bitDepthInBytes int) (context, chan struct{}, error) {
|
||||
return readerdriver.NewContext(sampleRate, channelNum, bitDepthInBytes)
|
||||
}
|
Loading…
Reference in New Issue
Block a user