30 static QMap<AFvirtualfile*, Kwave::VirtualAudioFile*> *
_adapter_map = Q_NULLPTR;
48 qDebug(
"libaudiofile error %ld: '%s'", error, str);
61 if (err == AF_BAD_MALLOC) err = -1;
71 static_cast<ssize_t
>(adapter->
read(
72 static_cast<char *>(data),
81 return (adapter) ?
static_cast<AFfileoffset
>(adapter->
length()) : -1;
90 static_cast<ssize_t
>(adapter->
write(
91 static_cast<const char *>(data),
102 static AFfileoffset
af_file_seek(AFvirtualfile *vfile, AFfileoffset offset,
107 static_cast<AFfileoffset
>(adapter->
seek(
108 static_cast<qint64>(offset),
117 return (adapter) ?
static_cast<AFfileoffset
>(adapter->
tell()) : -1;
131 return static_cast<AFvirtualfile *
>(calloc(
sizeof(AFvirtualfile), 1));
137 :m_device(device), m_file_handle(Q_NULLPTR), m_virtual_file(Q_NULLPTR),
138 m_last_error(-1), m_last_error_text()
165 const char *mode = Q_NULLPTR;
166 if (
m_device.isWritable()) mode =
"w";
167 else if (
m_device.isReadable()) mode =
"r";
170 AFerrfunc old_handler;
183 afSetErrorHandler(old_handler);
224 return m_device.write(data, nbytes);
235 qint64 abs_pos = (is_relative) ? (
m_device.pos() + offset) : offset;
253 new QMap<AFvirtualfile*,VirtualAudioFile*>();
258 return _adapter_map->contains(vfile) ? (*_adapter_map)[vfile] : Q_NULLPTR;
virtual qint64 read(char *data, unsigned int nbytes)
AFfilehandle m_file_handle
QString m_last_error_text
static void af_file_destroy(AFvirtualfile *)
static AFfileoffset af_file_seek(AFvirtualfile *vfile, AFfileoffset offset, int is_relative)
static AFfileoffset af_file_length(AFvirtualfile *vfile)
static Kwave::VirtualAudioFile * adapter(AFvirtualfile *vfile)
virtual void open(Kwave::VirtualAudioFile *x, AFfilesetup setup)
static ssize_t af_file_read(AFvirtualfile *vfile, void *data, size_t nbytes)
static long _lastAudiofileError()
static ssize_t af_file_write(AFvirtualfile *vfile, const void *data, size_t nbytes)
virtual ~VirtualAudioFile()
static long _last_audiofile_error
static void _handle_audiofile_error(long int error, const char *str)
AFvirtualfile * m_virtual_file
virtual qint64 write(const char *data, unsigned int nbytes)
VirtualAudioFile(QIODevice &device)
static QString _last_audiofile_error_text
static QMap< AFvirtualfile *, Kwave::VirtualAudioFile * > * _adapter_map
static AFfileoffset af_file_tell(AFvirtualfile *vfile)
static AFvirtualfile * __af_virtual_file_new(void)
virtual qint64 seek(qint64 offset, bool is_relative)