ITADataSourceUtils.h 2.97 KB
Newer Older
Jonas Stienen's avatar
Jonas Stienen committed
1
/*
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
 * ----------------------------------------------------------------
 *
 *		ITA core libs
 *		(c) Copyright Institute of Technical Acoustics (ITA)
 *		RWTH Aachen University, Germany, 2015-2017
 *
 * ----------------------------------------------------------------
 *				    ____  __________  _______
 *				   //  / //__   ___/ //  _   |
 *				  //  /    //  /    //  /_|  |
 *				 //  /    //  /    //  ___   |
 *				//__/    //__/    //__/   |__|
 *
 * ----------------------------------------------------------------
 *
 */
Jonas Stienen's avatar
Jonas Stienen committed
18

19 20
#ifndef INCLUDE_WATCHER_ITA_DATA_SOURCES_UTILS
#define INCLUDE_WATCHER_ITA_DATA_SOURCES_UTILS
Jonas Stienen's avatar
Jonas Stienen committed
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43

#include <ITADataSourcesDefinitions.h>

#include <string> // Strings der Standard Template Library (STL)

// Vorwärtsdeklarationen
class ITADatasource;

/**
 * \defgroup utilfuncs Hilfsfunktionen
 */
/*@{*/

//! Daten einer Datenquelle in einen Puffer schreiben
/**
 * Holt eine gewissen Anzahl Samples von einer Datenquelle und
 * schreibt diese in eine Puffer.
 *
 * \param pSource Zeiger auf die Datenquelle
 * \param ppfDest Zeiger auf das Array der Puffer (jeweils für die Kanäle)
 * \param uiNumberOfSamples Anzahl der Samples
 * \param dGain Verstärkungsfaktor (optional)
 * \param bOnline Echtzeit-Modus verwenden? (d.h. reale Dauern zwischen den
44
 *                Datenanforderungen verwenden). Falls false, werden die
Jonas Stienen's avatar
Jonas Stienen committed
45 46 47
 *                Daten direkt hintereinander angefordert (Maximaler Datendurchsatz)
 * \param bDisplayProgress Fortschritt auf der Konsole ausgeben? (Optional, Standard: Nein)
 *
48
 * \note Gibt die Datenquelle den Nullzeiger zurück, wird für
Jonas Stienen's avatar
Jonas Stienen committed
49 50 51
 *       den betreffenden Block Stille in den Puffer geschrieben
 * \note Ausnahmebehandlung mittels der Klasse ITAException
 */
52
ITA_DATA_SOURCES_API void WriteFromDatasourceToBuffer( ITADatasource* pSource, float** ppfDest, unsigned int uiNumberOfSamples, double dGain = 1.0, bool bOnline = true, bool bDisplayProgress = false );
Jonas Stienen's avatar
Jonas Stienen committed
53 54 55 56 57 58 59 60 61 62 63

//! Daten einer Datenquelle in eine Datei schreiben
/**
 * Holt eine gewissen Anzahl Samples von einer Datenquelle und
 * schreibt diese in eine Audiodatei.
 *
 * \param pSource Zeiger auf die Datenquelle
 * \param sFilename	Dateiname der Zieldatei
 * \param uiNumberOfSamples Anzahl der Samples
 * \param dGain Verstärkungsfaktor (optional)
 * \param bOnline Echtzeit-Modus verwenden? (d.h. reale Dauern zwischen den
64
 *                Datenanforderungen verwenden). Falls false, werden die
Jonas Stienen's avatar
Jonas Stienen committed
65 66 67
 *                Daten direkt hintereinander angefordert (Maximaler Datendurchsatz)
 * \param bDisplayProgress Fortschritt auf der Konsole ausgeben? (Optional, Standard: Nein)
 *
68
 * \note Gibt die Datenquelle den Nullzeiger zurück, wird für
Jonas Stienen's avatar
Jonas Stienen committed
69 70 71
 *       den betreffenden Block Stille in die Datei geschrieben
 * \note Ausnahmebehandlung mittels der Klasse ITAException
 */
72
ITA_DATA_SOURCES_API void WriteFromDatasourceToFile( ITADatasource* pSource, std::string sFilename, unsigned int uiNumberOfSamples, double dGain = 1.0, bool bOnline = true, bool bDisplayProgress = false );
Jonas Stienen's avatar
Jonas Stienen committed
73

74
#endif // INCLUDE_WATCHER_ITA_DATA_SOURCES_UTILS