![]()  | 
  
    The Open Master Hearing Aid (openMHA)
    openMHA
    
   Open community platform for hearing aid algorithm research 
   | 
 

Public Member Functions | |
| acwriter_t (bool active, unsigned fifosize, unsigned minwrite, const std::string &varname, double sampling_rate, output_file_t *outfile, uint32_t stream_id) | |
| Constructor allocates fifo and disk output buffer.  More... | |
| acwriter_t (const acwriter_t &)=delete | |
| acwriter_t (acwriter_t &&)=delete | |
| virtual | ~acwriter_t ()=default | 
| Deallocates memory but does not terminate the write_thread.  More... | |
| void | process (comm_var_t &s) override | 
| void | exit_request () override | 
| Terminate output thread.  More... | |
| const char * | get_varname () const override | 
  Public Member Functions inherited from ac2xdf::acwriter_base_t | |
| virtual | ~acwriter_base_t ()=default | 
Private Member Functions | |
| void | write_thread () | 
| Main method of the disk writer thread.  More... | |
Private Attributes | |
| std::atomic< bool > | close_session | 
| cross-thread-synchronization.  More... | |
| const bool | active | 
| The writer thread and the output file will only be created when active is true.  More... | |
| std::unique_ptr< mha_fifo_lf_t< T > > | fifo | 
| Fifo for decoupling signal processing thread from disk writer thread.  More... | |
| const unsigned int | disk_write_threshold_min_num_samples | 
| Minimum number of samples that need to be waiting in the fifo before the disk writer thread writes them to disk.  More... | |
| std::thread | writethread | 
| The thread that writes to disk.  More... | |
| std::unique_ptr< T[]> | diskbuffer | 
| Intermediate buffer to receive data from fifo and store on disk.  More... | |
| output_file_t * | outfile | 
| Ouput file.  More... | |
| unsigned | num_channels = 0U | 
| Number of channels of AC variable using stride.  More... | |
| bool | is_num_channels_known = false | 
| The number of channels is determined during the first process callback.  More... | |
| bool | is_complex = false | 
| If the AC variable is of complex valued type or not.  More... | |
| unsigned int | data_type = MHA_AC_UNKNOWN | 
| Data type of the ac variable. Used to protect against data type change during processing.  More... | |
| const std::string | varname | 
| The name of the ac variable to publish.  More... | |
| const uint32_t | stream_id | 
| bool | is_stream_initialized =false | 
| double | sampling_rate | 
| ac2xdf::acwriter_t< T >::acwriter_t | ( | bool | active, | 
| unsigned | fifosize, | ||
| unsigned | minwrite, | ||
| const std::string & | varname, | ||
| double | sampling_rate, | ||
| output_file_t * | outfile, | ||
| uint32_t | stream_id | ||
| ) | 
Constructor allocates fifo and disk output buffer.
It spawns a new thread for writing data to disk when active==true. In order to terminate the thread, method exit_request must be called before this object is destroyed.
| active | Only write data to disk when this is true. | 
| fifosize | Capacity of both the fifo pipeline and of the disk buffer. | 
| minwrite | Wait for a fifo fill count of at least minwrite doubles before flushing the contents of the fifo to disk. Fifo is also flushed before this object is destroyed. | 
| varname | Name of AC variable to save into file. Can be accessed through getter method get_varname(). Stored here to avoid races between processing thread and configuration thread. | 
| outfile | Handle to the output file | 
| stream_id | Numerical id of the stream. | 
      
  | 
  delete | 
      
  | 
  delete | 
      
  | 
  virtualdefault | 
Deallocates memory but does not terminate the write_thread.
write_thread must be terminated before the destructor executes by calling exit_request.
      
  | 
  overridevirtual | 
Implements ac2xdf::acwriter_base_t.
      
  | 
  overridevirtual | 
Terminate output thread.
Implements ac2xdf::acwriter_base_t.
      
  | 
  inlineoverridevirtual | 
Implements ac2xdf::acwriter_base_t.
      
  | 
  private | 
Main method of the disk writer thread.
Periodically wakes up and checks if data needs to be written to disk.
      
  | 
  private | 
cross-thread-synchronization.
write_thread() terminates after this is set to true by exit_request().
      
  | 
  private | 
The writer thread and the output file will only be created when active is true.
      
  | 
  private | 
Fifo for decoupling signal processing thread from disk writer thread.
      
  | 
  private | 
Minimum number of samples that need to be waiting in the fifo before the disk writer thread writes them to disk.
      
  | 
  private | 
The thread that writes to disk.
      
  | 
  private | 
Intermediate buffer to receive data from fifo and store on disk.
      
  | 
  private | 
Ouput file.
      
  | 
  private | 
Number of channels of AC variable using stride.
If the number of channels changes during processing, an exception is thrown.
      
  | 
  private | 
The number of channels is determined during the first process callback.
is_num_channels_known is set to true after the first process callback.
      
  | 
  private | 
If the AC variable is of complex valued type or not.
If this changes during processing, then an exception is thrown.
      
  | 
  private | 
Data type of the ac variable. Used to protect against data type change during processing.
      
  | 
  private | 
The name of the ac variable to publish.
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private |