diff options
author | Max Kellermann <max@musicpd.org> | 2019-05-31 18:40:24 +0200 |
---|---|---|
committer | Max Kellermann <max@musicpd.org> | 2020-09-07 21:13:28 +0200 |
commit | b2ae5298a765f83dd142564adfdcaf5b2d34ff52 (patch) | |
tree | 0005bc6ceb72c43bfa2a28e385cf7ae10fed9bda /src/archive | |
parent | 17dd21ac7fc0667121f72e6ddc0a2b90d33b28ad (diff) |
archive/iso9660: implement seeking
Diffstat (limited to 'src/archive')
-rw-r--r-- | src/archive/plugins/Iso9660ArchivePlugin.cxx | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/archive/plugins/Iso9660ArchivePlugin.cxx b/src/archive/plugins/Iso9660ArchivePlugin.cxx index f81f6fd98..be319d2a7 100644 --- a/src/archive/plugins/Iso9660ArchivePlugin.cxx +++ b/src/archive/plugins/Iso9660ArchivePlugin.cxx @@ -198,12 +198,20 @@ public: lsn(_lsn) { size = _size; + seekable = true; SetReady(); } /* virtual methods from InputStream */ bool IsEOF() noexcept override; size_t Read(void *ptr, size_t size) override; + + void Seek(offset_type new_offset) override { + if (new_offset > size) + throw std::runtime_error("Invalid seek offset"); + + offset = new_offset; + } }; InputStreamPtr |