mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2024-12-25 11:18:54 +01:00
audio: rename channelNum -> channelCount
This commit is contained in:
parent
36b7b85477
commit
921aeb4ea7
@ -44,9 +44,9 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
channelNum = 2
|
channelCount = 2
|
||||||
bitDepthInBytes = 2
|
bitDepthInBytes = 2
|
||||||
bytesPerSample = bitDepthInBytes * channelNum
|
bytesPerSample = bitDepthInBytes * channelCount
|
||||||
)
|
)
|
||||||
|
|
||||||
// A Context represents a current state of audio.
|
// A Context represents a current state of audio.
|
||||||
|
@ -38,7 +38,7 @@ func (c *dummyContext) NewPlayer(r io.Reader) player {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *dummyContext) MaxBufferSize() int {
|
func (c *dummyContext) MaxBufferSize() int {
|
||||||
return 48000 * channelNum * bitDepthInBytes / 4
|
return 48000 * channelCount * bitDepthInBytes / 4
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *dummyContext) Suspend() error {
|
func (c *dummyContext) Suspend() error {
|
||||||
|
@ -25,20 +25,20 @@ import (
|
|||||||
|
|
||||||
type Context struct {
|
type Context struct {
|
||||||
sampleRate int
|
sampleRate int
|
||||||
channelNum int
|
channelCount int
|
||||||
bitDepthInBytes int
|
bitDepthInBytes int
|
||||||
|
|
||||||
players *players
|
players *players
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewContext(sampleRate, channelNum, bitDepthInBytes int) (*Context, chan struct{}, error) {
|
func NewContext(sampleRate, channelCount, bitDepthInBytes int) (*Context, chan struct{}, error) {
|
||||||
c := &Context{
|
c := &Context{
|
||||||
sampleRate: sampleRate,
|
sampleRate: sampleRate,
|
||||||
channelNum: channelNum,
|
channelCount: channelCount,
|
||||||
bitDepthInBytes: bitDepthInBytes,
|
bitDepthInBytes: bitDepthInBytes,
|
||||||
players: newPlayers(),
|
players: newPlayers(),
|
||||||
}
|
}
|
||||||
cbackend.OpenAudio(sampleRate, channelNum, c.players.read)
|
cbackend.OpenAudio(sampleRate, channelCount, c.players.read)
|
||||||
ready := make(chan struct{})
|
ready := make(chan struct{})
|
||||||
close(ready)
|
close(ready)
|
||||||
return c, ready, nil
|
return c, ready, nil
|
||||||
@ -63,5 +63,5 @@ func (c *Context) Err() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *Context) defaultBufferSize() int {
|
func (c *Context) defaultBufferSize() int {
|
||||||
return c.sampleRate * c.channelNum * c.bitDepthInBytes / 2 // 0.5[s]
|
return c.sampleRate * c.channelCount * c.bitDepthInBytes / 2 // 0.5[s]
|
||||||
}
|
}
|
||||||
|
@ -26,16 +26,16 @@ import (
|
|||||||
type Context struct {
|
type Context struct {
|
||||||
v js.Value
|
v js.Value
|
||||||
sampleRate int
|
sampleRate int
|
||||||
channelNum int
|
channelCount int
|
||||||
bitDepthInBytes int
|
bitDepthInBytes int
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewContext(sampleRate int, channelNum, bitDepthInBytes int) *Context {
|
func NewContext(sampleRate int, channelCount, bitDepthInBytes int) *Context {
|
||||||
v := js.Global().Get("go2cpp").Call("createAudio", sampleRate, channelNum, bitDepthInBytes)
|
v := js.Global().Get("go2cpp").Call("createAudio", sampleRate, channelCount, bitDepthInBytes)
|
||||||
return &Context{
|
return &Context{
|
||||||
v: v,
|
v: v,
|
||||||
sampleRate: sampleRate,
|
sampleRate: sampleRate,
|
||||||
channelNum: channelNum,
|
channelCount: channelCount,
|
||||||
bitDepthInBytes: bitDepthInBytes,
|
bitDepthInBytes: bitDepthInBytes,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -73,7 +73,7 @@ func (c *Context) Err() error {
|
|||||||
|
|
||||||
func (c *Context) oneBufferSize() int {
|
func (c *Context) oneBufferSize() int {
|
||||||
// TODO: This must be audio.oneBufferSize(p.context.sampleRate). Avoid the duplication.
|
// TODO: This must be audio.oneBufferSize(p.context.sampleRate). Avoid the duplication.
|
||||||
return c.sampleRate * c.channelNum * c.bitDepthInBytes / 4
|
return c.sampleRate * c.channelCount * c.bitDepthInBytes / 4
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Context) MaxBufferSize() int {
|
func (c *Context) MaxBufferSize() int {
|
||||||
|
@ -124,7 +124,7 @@ func (f *playerFactory) initContextIfNeeded() (<-chan struct{}, error) {
|
|||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
c, ready, err := newContext(f.sampleRate, channelNum, bitDepthInBytes)
|
c, ready, err := newContext(f.sampleRate, channelCount, bitDepthInBytes)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -23,8 +23,8 @@ import (
|
|||||||
"github.com/hajimehoshi/ebiten/v2/audio/internal/cbackend"
|
"github.com/hajimehoshi/ebiten/v2/audio/internal/cbackend"
|
||||||
)
|
)
|
||||||
|
|
||||||
func newContext(sampleRate, channelNum, bitDepthInBytes int) (context, chan struct{}, error) {
|
func newContext(sampleRate, channelCount, bitDepthInBytes int) (context, chan struct{}, error) {
|
||||||
ctx, ready, err := cbackend.NewContext(sampleRate, channelNum, bitDepthInBytes)
|
ctx, ready, err := cbackend.NewContext(sampleRate, channelCount, bitDepthInBytes)
|
||||||
return &contextProxy{ctx}, ready, err
|
return &contextProxy{ctx}, ready, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,13 +25,13 @@ import (
|
|||||||
"github.com/hajimehoshi/ebiten/v2/audio/internal/go2cpp"
|
"github.com/hajimehoshi/ebiten/v2/audio/internal/go2cpp"
|
||||||
)
|
)
|
||||||
|
|
||||||
func newContext(sampleRate, channelNum, bitDepthInBytes int) (context, chan struct{}, error) {
|
func newContext(sampleRate, channelCount, bitDepthInBytes int) (context, chan struct{}, error) {
|
||||||
if js.Global().Get("go2cpp").Truthy() {
|
if js.Global().Get("go2cpp").Truthy() {
|
||||||
ready := make(chan struct{})
|
ready := make(chan struct{})
|
||||||
close(ready)
|
close(ready)
|
||||||
return otoContextToContext(go2cpp.NewContext(sampleRate, channelNum, bitDepthInBytes)), ready, nil
|
return otoContextToContext(go2cpp.NewContext(sampleRate, channelCount, bitDepthInBytes)), ready, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx, ready, err := oto.NewContext(sampleRate, channelNum, bitDepthInBytes)
|
ctx, ready, err := oto.NewContext(sampleRate, channelCount, bitDepthInBytes)
|
||||||
return otoContextToContext(ctx), ready, err
|
return otoContextToContext(ctx), ready, err
|
||||||
}
|
}
|
||||||
|
@ -21,7 +21,7 @@ import (
|
|||||||
"github.com/hajimehoshi/oto/v2"
|
"github.com/hajimehoshi/oto/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
func newContext(sampleRate, channelNum, bitDepthInBytes int) (context, chan struct{}, error) {
|
func newContext(sampleRate, channelCount, bitDepthInBytes int) (context, chan struct{}, error) {
|
||||||
ctx, ready, err := oto.NewContext(sampleRate, channelNum, bitDepthInBytes)
|
ctx, ready, err := oto.NewContext(sampleRate, channelCount, bitDepthInBytes)
|
||||||
return otoContextToContext(ctx), ready, err
|
return otoContextToContext(ctx), ready, err
|
||||||
}
|
}
|
||||||
|
@ -148,16 +148,16 @@ func decode(in io.Reader) (*decoded, int, int, error) {
|
|||||||
// A Stream doesn't close src even if src implements io.Closer.
|
// A Stream doesn't close src even if src implements io.Closer.
|
||||||
// Closing the source is src owner's responsibility.
|
// Closing the source is src owner's responsibility.
|
||||||
func DecodeWithoutResampling(src io.Reader) (*Stream, error) {
|
func DecodeWithoutResampling(src io.Reader) (*Stream, error) {
|
||||||
decoded, channelNum, _, err := decode(src)
|
decoded, channelCount, _, err := decode(src)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if channelNum != 1 && channelNum != 2 {
|
if channelCount != 1 && channelCount != 2 {
|
||||||
return nil, fmt.Errorf("vorbis: number of channels must be 1 or 2 but was %d", channelNum)
|
return nil, fmt.Errorf("vorbis: number of channels must be 1 or 2 but was %d", channelCount)
|
||||||
}
|
}
|
||||||
var s io.ReadSeeker = decoded
|
var s io.ReadSeeker = decoded
|
||||||
size := decoded.Length()
|
size := decoded.Length()
|
||||||
if channelNum == 1 {
|
if channelCount == 1 {
|
||||||
s = convert.NewStereo16(s, true, false)
|
s = convert.NewStereo16(s, true, false)
|
||||||
size *= 2
|
size *= 2
|
||||||
}
|
}
|
||||||
@ -179,16 +179,16 @@ func DecodeWithoutResampling(src io.Reader) (*Stream, error) {
|
|||||||
// A Stream doesn't close src even if src implements io.Closer.
|
// A Stream doesn't close src even if src implements io.Closer.
|
||||||
// Closing the source is src owner's responsibility.
|
// Closing the source is src owner's responsibility.
|
||||||
func DecodeWithSampleRate(sampleRate int, src io.Reader) (*Stream, error) {
|
func DecodeWithSampleRate(sampleRate int, src io.Reader) (*Stream, error) {
|
||||||
decoded, channelNum, origSampleRate, err := decode(src)
|
decoded, channelCount, origSampleRate, err := decode(src)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if channelNum != 1 && channelNum != 2 {
|
if channelCount != 1 && channelCount != 2 {
|
||||||
return nil, fmt.Errorf("vorbis: number of channels must be 1 or 2 but was %d", channelNum)
|
return nil, fmt.Errorf("vorbis: number of channels must be 1 or 2 but was %d", channelCount)
|
||||||
}
|
}
|
||||||
var s io.ReadSeeker = decoded
|
var s io.ReadSeeker = decoded
|
||||||
size := decoded.Length()
|
size := decoded.Length()
|
||||||
if channelNum == 1 {
|
if channelCount == 1 {
|
||||||
s = convert.NewStereo16(s, true, false)
|
s = convert.NewStereo16(s, true, false)
|
||||||
size *= 2
|
size *= 2
|
||||||
}
|
}
|
||||||
|
@ -187,14 +187,14 @@ chunks:
|
|||||||
if format != 1 {
|
if format != 1 {
|
||||||
return nil, fmt.Errorf("wav: format must be linear PCM")
|
return nil, fmt.Errorf("wav: format must be linear PCM")
|
||||||
}
|
}
|
||||||
channelNum := int(buf[2]) | int(buf[3])<<8
|
channelCount := int(buf[2]) | int(buf[3])<<8
|
||||||
switch channelNum {
|
switch channelCount {
|
||||||
case 1:
|
case 1:
|
||||||
mono = true
|
mono = true
|
||||||
case 2:
|
case 2:
|
||||||
mono = false
|
mono = false
|
||||||
default:
|
default:
|
||||||
return nil, fmt.Errorf("wav: channel num must be 1 or 2 but was %d", channelNum)
|
return nil, fmt.Errorf("wav: number of channels must be 1 or 2 but was %d", channelCount)
|
||||||
}
|
}
|
||||||
bitsPerSample = int(buf[14]) | int(buf[15])<<8
|
bitsPerSample = int(buf[14]) | int(buf[15])<<8
|
||||||
if bitsPerSample != 8 && bitsPerSample != 16 {
|
if bitsPerSample != 8 && bitsPerSample != 16 {
|
||||||
|
@ -165,8 +165,8 @@ func VibrateGamepad(id int, duration time.Duration, strongMagnitude float64, wea
|
|||||||
|
|
||||||
var onReadCallback func(buf []float32)
|
var onReadCallback func(buf []float32)
|
||||||
|
|
||||||
func OpenAudio(sampleRate, channelNum int, onRead func(buf []float32)) {
|
func OpenAudio(sampleRate, channelCount int, onRead func(buf []float32)) {
|
||||||
C.EbitenOpenAudioProxy(C.int(sampleRate), C.int(channelNum))
|
C.EbitenOpenAudioProxy(C.int(sampleRate), C.int(channelCount))
|
||||||
onReadCallback = onRead
|
onReadCallback = onRead
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user