1
#ifndef INCLUDED_AUDIOIO_NULL_H
2
#define INCLUDED_AUDIOIO_NULL_H
4
#include "audioio-buffered.h"
7
* Audio object that endlessly consumes and produces audio data.
8
* And is incredibly fast. :)
10
class NULLFILE : public AUDIO_IO_BUFFERED {
13
virtual std::string name(void) const { return("Null audio object"); }
15
virtual void open(void) throw (AUDIO_IO::SETUP_ERROR &) { AUDIO_IO::open(); }
16
virtual void close(void) { AUDIO_IO::close(); }
18
virtual long int read_samples(void* target_buffer, long int samples) {
19
for(long int n = 0; n < static_cast<long int>(samples * frame_size()); n++) ((char*)target_buffer)[n] = 0;
22
virtual void write_samples(void* target_buffer, long int samples) { }
24
virtual bool finished(void) const { return false; }
25
virtual bool supports_seeking(void) const { return true; }
26
virtual bool finite_length_stream(void) const { return false; }
27
virtual SAMPLE_SPECS::sample_pos_t seek_position(SAMPLE_SPECS::sample_pos_t pos) { return pos; }
29
NULLFILE(const std::string& name = "null");
30
virtual ~NULLFILE(void);
31
NULLFILE* clone(void) const { return new NULLFILE(*this); }
32
NULLFILE* new_expr(void) const { return new NULLFILE(); }