kwave
18.07.70
|
#include <Writer.h>
Public Slots | |
void | input (Kwave::SampleArray data) |
Signals | |
void | sigSamplesWritten (sample_index_t) |
void | proceeded () |
![]() | |
void | attributeChanged (const QVariant value) |
Public Member Functions | |
Writer () | |
Writer (Kwave::InsertMode mode, sample_index_t left=0, sample_index_t right=0) | |
virtual | ~Writer () Q_DECL_OVERRIDE |
virtual Writer & | operator<< (const Kwave::SampleArray &samples) |
virtual Writer & | operator<< (const sample_t &sample) |
Writer & | operator<< (Writer &(*modifier)(Writer &)) |
Writer & | operator<< (Kwave::SampleReader &reader) |
virtual bool | write (const Kwave::SampleArray &buffer, unsigned int &count)=0 |
bool | flush () |
virtual bool | eof () const |
virtual bool | done () const Q_DECL_OVERRIDE |
sample_index_t | first () const |
sample_index_t | last () const |
sample_index_t | position () const |
Kwave::InsertMode | mode () const |
![]() | |
SampleSink (QObject *parent=Q_NULLPTR) | |
virtual | ~SampleSink () |
![]() | |
StreamObject (QObject *parent=Q_NULLPTR) | |
virtual | ~StreamObject () |
virtual unsigned int | tracks () const |
virtual Kwave::StreamObject * | operator[] (unsigned int track) |
virtual unsigned int | tracksOfPort (const char *port) const |
virtual Kwave::StreamObject * | port (const char *port, unsigned int track) |
virtual unsigned int | blockSize () const |
void | setAttribute (const char *attribute, const QVariant &value) |
Protected Attributes | |
sample_index_t | m_first |
sample_index_t | m_last |
Kwave::InsertMode | m_mode |
sample_index_t | m_position |
Kwave::SampleArray | m_buffer |
unsigned int | m_buffer_size |
unsigned int | m_buffer_used |
Additional Inherited Members | |
![]() | |
static void | setInteractive (bool interactive) |
Kwave::Writer::Writer | ( | ) |
default constructor
Definition at line 35 of file Writer.cpp.
|
explicit |
Constructor. Creates an input stream for writing.
mode | specifies where and how to insert |
left | start of the input (only useful in insert and overwrite mode) |
right | end of the input (only useful with overwrite mode) |
Definition at line 43 of file Writer.cpp.
|
virtual |
Destructor
Definition at line 52 of file Writer.cpp.
References m_buffer_used, m_first, m_last, m_mode, m_position, Kwave::Overwrite, and sigSamplesWritten().
|
inlinevirtual |
the same as eof(), needed for the Kwave::SampleSink interface
Reimplemented from Kwave::SampleSink.
Definition at line 105 of file Writer.h.
|
virtual |
Returns true if the end of the writeable area has been reached if the writer has been opened in "overwrite" mode. Note that this does not make sense in append or insert mode, so in these cases the return value will always be false.
Definition at line 139 of file Writer.cpp.
References m_last, m_mode, m_position, and Kwave::Overwrite.
Referenced by operator<<().
|
inline |
Returns the index of the first sample of the range.
Definition at line 108 of file Writer.h.
Referenced by Kwave::MultiTrackWriter::init(), and Kwave::MultiWriter::proceeded().
|
inline |
Shortcut for flush(m_buffer, m_buffer_used)
Definition at line 94 of file Writer.h.
Referenced by Kwave::MultiWriter::flush(), flush(), operator<<(), Kwave::ReversePlugin::reverseSlice(), and Kwave::TrackWriter::~TrackWriter().
|
slot |
Interface for the signal/slot based streaming API.
data | sample data to write |
Definition at line 152 of file Writer.cpp.
References Kwave::SampleArray::size().
|
inline |
Returns the current index of the last sample in range or the index of the last written sample when in insert/append mode.
Definition at line 114 of file Writer.h.
References Kwave::Append.
Referenced by Kwave::MultiTrackWriter::init(), Kwave::MultiWriter::last(), and Kwave::MultiWriter::proceeded().
|
inline |
Returns the insert mode
Definition at line 125 of file Writer.h.
Referenced by Kwave::MultiWriter::proceeded().
|
virtual |
operator for inserting an array of samples
Definition at line 68 of file Writer.cpp.
References flush(), m_buffer, m_buffer_size, m_buffer_used, MEMCPY, MIN_DIRECT_IO_BLOCK_SIZE, Kwave::SampleArray::size(), and write().
|
virtual |
operator for inserting a single sample
Definition at line 96 of file Writer.cpp.
References flush(), m_buffer, m_buffer_size, and m_buffer_used.
Kwave::Writer & Kwave::Writer::operator<< | ( | Kwave::SampleReader & | reader | ) |
Fill the Writer with data from a SampleReader. If the reader reaches EOF the writer will be filled up with zeroes.
Definition at line 104 of file Writer.cpp.
References Kwave::SampleReader::eof(), eof(), flush(), m_buffer, m_buffer_size, m_buffer_used, m_last, m_mode, m_position, Kwave::Overwrite, Kwave::SampleReader::read(), and Kwave::toUint().
|
inline |
Returns the current position
Definition at line 122 of file Writer.h.
Referenced by Kwave::MultiWriter::proceeded().
|
signal |
Emitted when the internal buffer is flushed or the writer is closed
Referenced by Kwave::TrackWriter::write().
|
signal |
Is emitted once immediately before the writer gets closed and tells the receiver the total number of written samples.
Referenced by ~Writer().
|
pure virtual |
Flush the content of a buffer. Normally the buffer is the internal intermediate buffer used for single-sample writes. When using block transfers, the internal buffer is bypassed and the written block is passed instead.
buffer | reference to the buffer to be flushed |
count | number of samples in the buffer to be flushed, will be internally set to zero if successful |
Implemented in Kwave::TrackWriter, and Kwave::StreamWriter.
Referenced by Kwave::RecordPlugin::flushPrerecordingQueue(), and operator<<().
|
protected |
intermediate buffer for the input data
Definition at line 161 of file Writer.h.
Referenced by operator<<().
|
protected |
for speedup: cached buffer size
Definition at line 164 of file Writer.h.
Referenced by operator<<().
|
protected |
number of used elements in the buffer
Definition at line 167 of file Writer.h.
Referenced by operator<<(), Kwave::StreamWriter::~StreamWriter(), and ~Writer().
|
protected |
|
protected |
last sample
Definition at line 152 of file Writer.h.
Referenced by eof(), operator<<(), Kwave::TrackWriter::write(), and ~Writer().
|
protected |
mode for input (insert, overwrite, ...)
Definition at line 155 of file Writer.h.
Referenced by eof(), operator<<(), Kwave::TrackWriter::write(), and ~Writer().
|
protected |
current position within the track
Definition at line 158 of file Writer.h.
Referenced by eof(), operator<<(), Kwave::TrackWriter::write(), and ~Writer().