generalize interface

This commit is contained in:
zyxar 2015-08-19 13:28:50 +08:00
parent 56eb8cd97c
commit 02356162fd
3 changed files with 5 additions and 4 deletions

View file

@ -25,7 +25,7 @@ type Decoder struct {
fpos uint32 // the current position in frame
}
func Decompress(infile, outfile *os.File, passwd string, cb Callback) (err error) {
func Decompress(infile, outfile io.ReadWriteSeeker, passwd string, cb Callback) (err error) {
decoder := NewDecoder(infile)
if len(passwd) > 0 {
decoder.SetPassword(passwd)

View file

@ -25,7 +25,7 @@ type Encoder struct {
shift_bits uint32 // packing int to pcm
}
func Compress(infile, outfile *os.File, passwd string, cb Callback) (err error) {
func Compress(infile, outfile io.ReadWriteSeeker, passwd string, cb Callback) (err error) {
wave_hdr := WaveHeader{}
var data_size uint32
if data_size, err = wave_hdr.Read(infile); err != nil {

5
wav.go
View file

@ -1,6 +1,7 @@
package tta
import (
"io"
"os"
"reflect"
"unsafe"
@ -74,7 +75,7 @@ func (this *WaveExtHeader) Bytes() []byte {
}))
}
func (this *WaveHeader) Read(fd *os.File) (subchunk_size uint32, err error) {
func (this *WaveHeader) Read(fd io.ReadWriteSeeker) (subchunk_size uint32, err error) {
var default_subchunk_size uint32 = 16
b := this.Bytes()
var read_len int
@ -125,7 +126,7 @@ func (this *WaveHeader) Read(fd *os.File) (subchunk_size uint32, err error) {
return
}
func (this *WaveHeader) Write(fd *os.File, size uint32) (err error) {
func (this *WaveHeader) Write(fd io.ReadWriteSeeker, size uint32) (err error) {
var write_len int
// Write WAVE header
if write_len, err = fd.Write(this.Bytes()); err != nil {