File indexing completed on 2024-05-12 04:06:03
0001 /* 0002 SPDX-FileCopyrightText: 2019 Alexander Potashev <aspotashev@gmail.com> 0003 0004 SPDX-License-Identifier: LGPL-2.0-only 0005 */ 0006 0007 #ifndef LIBKDEGAMES_VIRTUALFILEQT_OPENAL_H 0008 #define LIBKDEGAMES_VIRTUALFILEQT_OPENAL_H 0009 0010 // Qt 0011 #include <QFile> 0012 // sndfile 0013 #include <sndfile.hh> 0014 0015 class VirtualFileQt 0016 { 0017 public: 0018 explicit VirtualFileQt(const QString &path); 0019 ~VirtualFileQt() = default; 0020 0021 bool open(); 0022 0023 int64_t getFileLen() const; 0024 int64_t seek(int64_t offset, int whence); 0025 int64_t read(void *ptr, int64_t count); 0026 int64_t write(const void *ptr, int64_t count); 0027 int64_t tell(); 0028 0029 static SF_VIRTUAL_IO &getSndfileVirtualIO(); 0030 static VirtualFileQt *get(void *user_data); 0031 0032 private: 0033 QFile m_file; 0034 }; 0035 0036 #endif // LIBKDEGAMES_VIRTUALFILEQT_OPENAL_H