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