GNU Radio 3.6.1 C++ API
gr_wavfile_sink Class Reference

Write stream to a Microsoft PCM (.wav) file. More...

#include <gr_wavfile_sink.h>

Inheritance diagram for gr_wavfile_sink:
gr_sync_block gr_block gr_basic_block gr_msg_accepter gruel::msg_accepter

Public Member Functions

 ~gr_wavfile_sink ()
bool open (const char *filename)
 Opens a new file and writes a WAV header. Thread-safe.
void close ()
 Closes the currently active file and completes the WAV header. Thread-safe.
void set_sample_rate (unsigned int sample_rate)
 Set the sample rate. This will not affect the WAV file currently opened. Any following open() calls will use this new sample rate.
void set_bits_per_sample (int bits_per_sample)
 Set bits per sample. This will not affect the WAV file currently opened (see set_sample_rate()). If the value is neither 8 nor 16, the call is ignored and the current value is kept.
int work (int noutput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items)
 just like gr_block::general_work, only this arranges to call consume_each for you
- Public Member Functions inherited from gr_sync_block
void forecast (int noutput_items, gr_vector_int &ninput_items_required)
 Estimate input requirements given output request.
int general_work (int noutput_items, gr_vector_int &ninput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items)
 compute output items from input items
int fixed_rate_ninput_to_noutput (int ninput)
 Given ninput samples, return number of output samples that will be produced. N.B. this is only defined if fixed_rate returns true. Generally speaking, you don't need to override this.
int fixed_rate_noutput_to_ninput (int noutput)
 Given noutput samples, return number of input samples required to produce noutput. N.B. this is only defined if fixed_rate returns true. Generally speaking, you don't need to override this.
- Public Member Functions inherited from gr_block
virtual ~gr_block ()
unsigned history () const
void set_history (unsigned history)
bool fixed_rate () const
 Return true if this block has a fixed input to output rate.
virtual bool start ()
 Called to enable drivers, etc for i/o devices.
virtual bool stop ()
 Called to disable drivers, etc for i/o devices.
void set_output_multiple (int multiple)
 Constrain the noutput_items argument passed to forecast and general_work.
int output_multiple () const
bool output_multiple_set () const
void set_alignment (int multiple)
 Constrains buffers to work on a set item alignment (for SIMD)
int alignment () const
void set_unaligned (int na)
int unaligned () const
void set_is_unaligned (bool u)
bool is_unaligned () const
void consume (int which_input, int how_many_items)
 Tell the scheduler how_many_items of input stream which_input were consumed.
void consume_each (int how_many_items)
 Tell the scheduler how_many_items were consumed on each input stream.
void produce (int which_output, int how_many_items)
 Tell the scheduler how_many_items were produced on output stream which_output.
void set_relative_rate (double relative_rate)
 Set the approximate output rate / input rate.
double relative_rate () const
 return the approximate output rate / input rate
uint64_t nitems_read (unsigned int which_input)
 Return the number of items read on input stream which_input.
uint64_t nitems_written (unsigned int which_output)
 Return the number of items written on output stream which_output.
tag_propagation_policy_t tag_propagation_policy ()
 Asks for the policy used by the scheduler to moved tags downstream.
void set_tag_propagation_policy (tag_propagation_policy_t p)
 Set the policy by the scheduler to determine how tags are moved downstream.
gr_block_detail_sptr detail () const
void set_detail (gr_block_detail_sptr detail)
- Public Member Functions inherited from gr_basic_block
virtual ~gr_basic_block ()
long unique_id () const
std::string name () const
gr_io_signature_sptr input_signature () const
gr_io_signature_sptr output_signature () const
gr_basic_block_sptr to_basic_block ()
virtual bool check_topology (int ninputs, int noutputs)
 Confirm that ninputs and noutputs is an acceptable combination.
template<typename T >
void set_msg_handler (T msg_handler)
 Set the callback that is fired when messages are available.
- Public Member Functions inherited from gr_msg_accepter
 gr_msg_accepter ()
 ~gr_msg_accepter ()
void post (pmt::pmt_t msg)
 send msg to msg_accepter
- Public Member Functions inherited from gruel::msg_accepter
 msg_accepter ()
virtual ~msg_accepter ()

Friends

GR_CORE_API gr_wavfile_sink_sptr gr_make_wavfile_sink (const char *filename, int n_channels, unsigned int sample_rate, int bits_per_sample)

Additional Inherited Members

- Public Types inherited from gr_block
enum  { WORK_CALLED_PRODUCE = -2, WORK_DONE = -1 }
 Magic return values from general_work. More...
enum  tag_propagation_policy_t { TPP_DONT = 0, TPP_ALL_TO_ALL = 1, TPP_ONE_TO_ONE = 2 }
- Protected Types inherited from gr_basic_block
enum  vcolor { WHITE, GREY, BLACK }
- Protected Member Functions inherited from gr_sync_block
 gr_sync_block (void)
 gr_sync_block (const std::string &name, gr_io_signature_sptr input_signature, gr_io_signature_sptr output_signature)
- Protected Attributes inherited from gr_basic_block
std::string d_name
gr_io_signature_sptr d_input_signature
gr_io_signature_sptr d_output_signature
long d_unique_id
vcolor d_color

Detailed Description

Write stream to a Microsoft PCM (.wav) file.

Values must be floats within [-1;1]. Check gr_make_wavfile_sink() for extra info.

Constructor & Destructor Documentation

gr_wavfile_sink::~gr_wavfile_sink ( )

Member Function Documentation

void gr_wavfile_sink::close ( )

Closes the currently active file and completes the WAV header. Thread-safe.

bool gr_wavfile_sink::open ( const char *  filename)

Opens a new file and writes a WAV header. Thread-safe.

void gr_wavfile_sink::set_bits_per_sample ( int  bits_per_sample)

Set bits per sample. This will not affect the WAV file currently opened (see set_sample_rate()). If the value is neither 8 nor 16, the call is ignored and the current value is kept.

void gr_wavfile_sink::set_sample_rate ( unsigned int  sample_rate)

Set the sample rate. This will not affect the WAV file currently opened. Any following open() calls will use this new sample rate.

int gr_wavfile_sink::work ( int  noutput_items,
gr_vector_const_void_star input_items,
gr_vector_void_star output_items 
)
virtual

just like gr_block::general_work, only this arranges to call consume_each for you

The user must override work to define the signal processing code

Implements gr_sync_block.

Friends And Related Function Documentation

GR_CORE_API gr_wavfile_sink_sptr gr_make_wavfile_sink ( const char *  filename,
int  n_channels,
unsigned int  sample_rate,
int  bits_per_sample 
)
friend

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