mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2024-12-25 03:08:54 +01:00
audio: Refactoring: Remove Loop.pos
This commit is contained in:
parent
1ec786f83a
commit
911de8d196
@ -21,7 +21,6 @@ import (
|
|||||||
type Loop struct {
|
type Loop struct {
|
||||||
stream ReadSeekCloser
|
stream ReadSeekCloser
|
||||||
size int64
|
size int64
|
||||||
pos int64
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewLoop(stream ReadSeekCloser, size int64) ReadSeekCloser {
|
func NewLoop(stream ReadSeekCloser, size int64) ReadSeekCloser {
|
||||||
@ -33,8 +32,6 @@ func NewLoop(stream ReadSeekCloser, size int64) ReadSeekCloser {
|
|||||||
|
|
||||||
func (l *Loop) Read(b []byte) (int, error) {
|
func (l *Loop) Read(b []byte) (int, error) {
|
||||||
n, err := l.stream.Read(b)
|
n, err := l.stream.Read(b)
|
||||||
l.pos += int64(n)
|
|
||||||
l.pos %= l.size
|
|
||||||
if err == io.EOF {
|
if err == io.EOF {
|
||||||
if _, err := l.Seek(0, 0); err != nil {
|
if _, err := l.Seek(0, 0); err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
@ -50,7 +47,11 @@ func (l *Loop) Seek(offset int64, whence int) (int64, error) {
|
|||||||
case 0:
|
case 0:
|
||||||
next = offset
|
next = offset
|
||||||
case 1:
|
case 1:
|
||||||
next = int64(l.pos) + offset
|
current, err := l.stream.Seek(0, 1)
|
||||||
|
if err != nil {
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
next = current + offset
|
||||||
case 2:
|
case 2:
|
||||||
panic("audio: whence must be 0 or 1 for a loop stream")
|
panic("audio: whence must be 0 or 1 for a loop stream")
|
||||||
}
|
}
|
||||||
@ -59,8 +60,7 @@ func (l *Loop) Seek(offset int64, whence int) (int64, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
l.pos = pos
|
return pos, nil
|
||||||
return l.pos, nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *Loop) Close() error {
|
func (l *Loop) Close() error {
|
||||||
|
Loading…
Reference in New Issue
Block a user