mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2024-12-24 10:48:53 +01:00
audio: Remove unneeded locks
This commit is contained in:
parent
b86f1771e4
commit
38af8ce615
@ -124,19 +124,6 @@ func (p *players) hasPlayer(player *Player) bool {
|
|||||||
return ok
|
return ok
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *players) seekPlayer(player *Player, offset int64) error {
|
|
||||||
p.Lock()
|
|
||||||
defer p.Unlock()
|
|
||||||
return player.seek(offset)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p *players) playerCurrent(player *Player, sampleRate int) time.Duration {
|
|
||||||
p.RLock()
|
|
||||||
defer p.RUnlock()
|
|
||||||
sample := player.pos / bytesPerSample / channelNum
|
|
||||||
return time.Duration(sample) * time.Second / time.Duration(sampleRate)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p *players) hasSource(src ReadSeekCloser) bool {
|
func (p *players) hasSource(src ReadSeekCloser) bool {
|
||||||
p.RLock()
|
p.RLock()
|
||||||
defer p.RUnlock()
|
defer p.RUnlock()
|
||||||
@ -395,12 +382,8 @@ func (p *Player) Rewind() error {
|
|||||||
func (p *Player) Seek(offset time.Duration) error {
|
func (p *Player) Seek(offset time.Duration) error {
|
||||||
o := int64(offset) * bytesPerSample * channelNum * int64(p.sampleRate) / int64(time.Second)
|
o := int64(offset) * bytesPerSample * channelNum * int64(p.sampleRate) / int64(time.Second)
|
||||||
o &= mask
|
o &= mask
|
||||||
return p.players.seekPlayer(p, o)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p *Player) seek(offset int64) error {
|
|
||||||
p.buf = []byte{}
|
p.buf = []byte{}
|
||||||
pos, err := p.src.Seek(offset, 0)
|
pos, err := p.src.Seek(o, io.SeekStart)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -420,7 +403,8 @@ func (p *Player) Pause() error {
|
|||||||
//
|
//
|
||||||
// This function is concurrent-safe.
|
// This function is concurrent-safe.
|
||||||
func (p *Player) Current() time.Duration {
|
func (p *Player) Current() time.Duration {
|
||||||
return p.players.playerCurrent(p, p.sampleRate)
|
sample := p.pos / bytesPerSample / channelNum
|
||||||
|
return time.Duration(sample) * time.Second / time.Duration(p.sampleRate)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Volume returns the current volume of this player [0-1].
|
// Volume returns the current volume of this player [0-1].
|
||||||
|
Loading…
Reference in New Issue
Block a user