kwave  18.07.70
Kwave::RepairVirtualAudioFile Class Reference

#include <RepairVirtualAudioFile.h>

Inheritance diagram for Kwave::RepairVirtualAudioFile:
Inheritance graph
Collaboration diagram for Kwave::RepairVirtualAudioFile:
Collaboration graph

Public Member Functions

 RepairVirtualAudioFile (QIODevice &device, QList< Kwave::RecoverySource *> *repair_list)
 
virtual ~RepairVirtualAudioFile () Q_DECL_OVERRIDE
 
virtual qint64 read (char *data, unsigned int nbytes) Q_DECL_OVERRIDE
 
virtual qint64 length () Q_DECL_OVERRIDE
 
virtual qint64 write (const char *data, unsigned int nbytes) Q_DECL_OVERRIDE
 
virtual qint64 seek (qint64 offset, bool is_relative) Q_DECL_OVERRIDE
 
virtual qint64 tell () Q_DECL_OVERRIDE
 
- Public Member Functions inherited from Kwave::VirtualAudioFile
 VirtualAudioFile (QIODevice &device)
 
virtual ~VirtualAudioFile ()
 
virtual void open (Kwave::VirtualAudioFile *x, AFfilesetup setup)
 
virtual void close ()
 
AFfilehandle & handle ()
 
AFvirtualfile * file ()
 
long int lastError ()
 
QString lastErrorText ()
 
virtual void destroy ()
 

Private Attributes

qint64 m_position
 
QList< Kwave::RecoverySource * > * m_repair_list
 

Additional Inherited Members

- Static Public Member Functions inherited from Kwave::VirtualAudioFile
static Kwave::VirtualAudioFileadapter (AFvirtualfile *vfile)
 

Detailed Description

Definition at line 31 of file RepairVirtualAudioFile.h.

Constructor & Destructor Documentation

◆ RepairVirtualAudioFile()

Kwave::RepairVirtualAudioFile::RepairVirtualAudioFile ( QIODevice &  device,
QList< Kwave::RecoverySource *> *  repair_list 
)

Constructor

Parameters
deviceQIODevice used as source
repair_listlist of RecoverySource objects for building the new file

Definition at line 27 of file RepairVirtualAudioFile.cpp.

30  m_repair_list(repair_list)
31 {
32 }
QList< Kwave::RecoverySource * > * m_repair_list

◆ ~RepairVirtualAudioFile()

Kwave::RepairVirtualAudioFile::~RepairVirtualAudioFile ( )
virtual

Destructor

Definition at line 35 of file RepairVirtualAudioFile.cpp.

References m_repair_list.

36 {
37  if (m_repair_list) {
38  while (!m_repair_list->isEmpty()) {
39  Kwave::RecoverySource *src = m_repair_list->takeLast();
40  if (src) delete src;
41  }
42  delete m_repair_list;
43  }
44 }
QList< Kwave::RecoverySource * > * m_repair_list

Member Function Documentation

◆ length()

qint64 Kwave::RepairVirtualAudioFile::length ( )
virtual

returns the length of the file

Reimplemented from Kwave::VirtualAudioFile.

Definition at line 74 of file RepairVirtualAudioFile.cpp.

References Kwave::RecoverySource::length(), m_repair_list, and Kwave::RecoverySource::offset().

Referenced by seek().

75 {
76  Q_ASSERT(m_repair_list);
77  if (!m_repair_list) return 0;
78  Kwave::RecoverySource *last = m_repair_list->last();
79  Q_ASSERT(last);
80  if (!last) return 0;
81 
82  return static_cast<qint64>(last->offset() + last->length());
83 }
virtual quint64 length() const
virtual quint64 offset() const
QList< Kwave::RecoverySource * > * m_repair_list
Here is the call graph for this function:
Here is the caller graph for this function:

◆ read()

qint64 Kwave::RepairVirtualAudioFile::read ( char *  data,
unsigned int  nbytes 
)
virtual

reads a block of data

Reimplemented from Kwave::VirtualAudioFile.

Definition at line 47 of file RepairVirtualAudioFile.cpp.

References m_position, m_repair_list, and Kwave::RecoverySource::read().

48 {
49  Q_ASSERT(m_repair_list);
50  Q_ASSERT(data);
51  if (!m_repair_list) return 0;
52  if (!nbytes) return 0;
53  if (!data) return 0;
54 
55  bzero(data, nbytes);
56  qint64 read_bytes = 0;
57  foreach (Kwave::RecoverySource *src, *m_repair_list) {
58  Q_ASSERT(src);
59  if (!src) continue;
60  qint64 len = src->read(m_position, data, nbytes);
61  Q_ASSERT(len <= nbytes);
62  nbytes -= len;
63  m_position += len;
64  data += len;
65  read_bytes += len;
66 
67  if (!nbytes) break;
68  }
69 
70  return read_bytes;
71 }
virtual qint64 read(quint64 offset, char *data, unsigned int bytes)=0
QList< Kwave::RecoverySource * > * m_repair_list
Here is the call graph for this function:

◆ seek()

qint64 Kwave::RepairVirtualAudioFile::seek ( qint64  offset,
bool  is_relative 
)
virtual

seek to a file position

Reimplemented from Kwave::VirtualAudioFile.

Definition at line 96 of file RepairVirtualAudioFile.cpp.

References length(), and m_position.

97 {
98  if (is_relative)
99  m_position += offset;
100  else
101  m_position = offset;
102 
103  return (m_position < length()) ? m_position : -1;
104 }
virtual qint64 length() Q_DECL_OVERRIDE
Here is the call graph for this function:

◆ tell()

qint64 Kwave::RepairVirtualAudioFile::tell ( )
virtual

returns the file position

Reimplemented from Kwave::VirtualAudioFile.

Definition at line 107 of file RepairVirtualAudioFile.cpp.

References m_position.

108 {
109  return m_position;
110 }

◆ write()

qint64 Kwave::RepairVirtualAudioFile::write ( const char *  data,
unsigned int  nbytes 
)
virtual

writes a block of data

Reimplemented from Kwave::VirtualAudioFile.

Definition at line 86 of file RepairVirtualAudioFile.cpp.

88 {
89  Q_UNUSED(data);
90  Q_UNUSED(nbytes);
91  qWarning("RepairVirtualAudioFile::write() is forbidden !");
92  return 0;
93 }

Member Data Documentation

◆ m_position

qint64 Kwave::RepairVirtualAudioFile::m_position
private

position within the virtual file

Definition at line 65 of file RepairVirtualAudioFile.h.

Referenced by read(), seek(), and tell().

◆ m_repair_list

QList<Kwave::RecoverySource *>* Kwave::RepairVirtualAudioFile::m_repair_list
private

list of sources for the recovered files

Definition at line 68 of file RepairVirtualAudioFile.h.

Referenced by length(), read(), and ~RepairVirtualAudioFile().


The documentation for this class was generated from the following files: