Skip to content
Snippets Groups Projects
Select Git revision
  • develop
  • master default protected
  • feature/triangulation-qhull
  • jst
  • ti_lab_build
  • features/splines_and_piecewise_polynomials
  • ma_2018/erraji
  • fabian
  • ITABase_v2025a
  • ITABase_v2024a
  • VA_v2023b
  • VA_v2023a
  • VA_v2022a
  • before_cmake_rework
  • v2021.a
  • v2020.a
  • v2019.a
  • v2018.b
  • v2018.a
  • v2017.d
  • v2017.c
  • v2017.b
  • v2017.a
  • v2016.a
24 results

ITABufferedAudioFileWriter.h

  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    ITABufferedAudioFileWriter.h 2.13 KiB
    /*
     * ----------------------------------------------------------------
     *
     *		ITA core libs
     *		(c) Copyright Institute of Technical Acoustics (ITA)
     *		RWTH Aachen University, Germany, 2015-2025
     *
     * ----------------------------------------------------------------
     *				    ____  __________  _______
     *				   //  / //__   ___/ //  _   |
     *				  //  /    //  /    //  /_|  |
     *				 //  /    //  /    //  ___   |
     *				//__/    //__/    //__/   |__|
     *
     * ----------------------------------------------------------------
     *
     */
    
    #ifndef INCLUDE_WATCHER_ITA_BUFFERED_AUDIO_FILE_WRITER
    #define INCLUDE_WATCHER_ITA_BUFFERED_AUDIO_FILE_WRITER
    
    #include <ITAAudiofileWriter.h>
    #include <ITABaseDefinitions.h>
    
    //! Audio file writer that first buffers samples and exports on demand or destruction
    /**
     * Klasse welche Schreiber von Audiodateien um Pufferung erweitert.
     * Dies ist u.A. wichtig in der Echtzeit-Verarbeitung, wobei keine
     * OS-Dateizugriffe innerhalb eines Audio-Streaming-Kontextes auftreten
     * sollten. Die Klasse verwendet die normalen AudiofileWriter mittels
     * uses-Beziehung und schaltet ihm eine Pufferung der Samples voraus.
     * Jeder Aufruf einer write-Methode wird dann nicht mehr zu einem
     * Dateisystem-Zugriff führen. Alle Daten werden erst mit dem Aufruf
     * des Destruktors geschrieben. Die initiale Puffergröße kann festgelegt
     * werden. Wird diese Aufgebraucht, wird der Puffer automatisch um die
     * angegebene Wachstumsgröße erweitert.
     */
    class ITA_BASE_API ITABufferedAudiofileWriter : public ITAAudiofileWriter
    {
    public:
    	//! Factory method. Erzeugt einen gepufferten Schreiber.
    	static ITABufferedAudiofileWriter* create( const ITAAudiofileProperties& props, double dInitialBufferSizeSeconds = 60, double dGrowBufferSizeSeconds = 20 );
    
    	//! Returns current file path or empty string
    	/**
    	 * @return Current file path or empty string
    	 *
    	 */
    	virtual std::string GetFilePath( ) const = 0;
    
    	//! Sets the export file path (without any checks)
    	/**
    	 * @param[in] sFilePath File path (make sure base folder exists)
    	 *
    	 */
    	virtual void SetFilePath( const std::string& sFilePath ) = 0;
    };
    
    #endif // INCLUDE_WATCHER_ITA_BUFFERED_AUDIO_FILE_WRITER