InputStream: make Seek() always absolute

Remove the "whence" parameter that is not actually necessary, and only
complicates the InputStream implementations.
This commit is contained in:
Max Kellermann
2014-05-22 10:10:16 +02:00
parent 374c6a27db
commit 07b93dcf80
28 changed files with 184 additions and 127 deletions

View File

@@ -92,13 +92,17 @@ audiofile_file_destroy(AFvirtualfile *vfile)
}
static AFfileoffset
audiofile_file_seek(AFvirtualfile *vfile, AFfileoffset offset, int is_relative)
audiofile_file_seek(AFvirtualfile *vfile, AFfileoffset _offset,
int is_relative)
{
InputStream &is = *(InputStream *)vfile->closure;
int whence = (is_relative ? SEEK_CUR : SEEK_SET);
InputStream::offset_type offset = _offset;
if (is_relative)
offset += is.GetOffset();
Error error;
if (is.LockSeek(offset, whence, error)) {
if (is.LockSeek(offset, IgnoreError())) {
return is.GetOffset();
} else {
return -1;