ITASoundSample.h 2.09 KB
Newer Older
Jonas Stienen's avatar
Jonas Stienen committed
1 2 3 4 5
/*
* ----------------------------------------------------------------
*
*		ITA core libs
*		(c) Copyright Institute of Technical Acoustics (ITA)
6
*		RWTH Aachen University, Germany, 2015-2017
Jonas Stienen's avatar
Jonas Stienen committed
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
*
* ----------------------------------------------------------------
*				    ____  __________  _______
*				   //  / //__   ___/ //  _   |
*				  //  /    //  /    //  /_|  |
*				 //  /    //  /    //  ___   |
*				//__/    //__/    //__/   |__|
*
* ----------------------------------------------------------------
*
*/
/*
 *      +------------------+
 *  --->| ITA Sampler      |--->
 *  --->| o o o o      /// |--->
 *      +------------------+
 *
 *  ITASampler ist eine C++ Bibliothek die einen Sound sampler zur wavetable-basierten
 *  Klangsynthese bereitstellt. Der Begriff "sampler" bezieht sich hier auf den Terminus
 *  aus der Musikproduktion und nicht auf Abtastwerte.
 *
 *  Datei:		ITASoundSample.h
 *  Zweck:		Schnittstellendefinition fr sound samples
 *  Autoren:	Frank Wefers (Frank.Wefers@akustik.rwth-aachen.de)
 *  CVS-Datum:	$Id: ITASoundSample.h,v 1.1 2008-12-10 14:15:03 fwefers Exp $
 *
 *  (c) Copyright Institut fr Technische Akustik (ITA) RWTH Aachen, 2008
 */

#ifndef INCLUDE_WATCHER_ITA_SOUND_SAMPLE
#define INCLUDE_WATCHER_ITA_SOUND_SAMPLE

#include <string>
#include <vector>

/**
 * Diese abstrakte Klasse definiert die Zugriffsschnittstelle
 * zu einzelnen Samples im SamplePool.
 */

class ITASoundSample
{
public:
	//! Destruktor
	inline virtual ~ITASoundSample() {};

	//! Gibt zurck ob dieses Sample aus einer Datei geladen wurde
	virtual bool OriginFile() const=0;

	//! Name zurckgeben
	virtual std::string GetName() const=0;

	//! Name setzen
	void SetName(const std::string& sName);

	//! Dateiname zurckgeben (nur bei Samples die aus Dateien geladen wurden)
	virtual std::string GetFilename() const=0;

	//! Anzahl Kanle zurckgeben
	virtual int GetNumberOfChannels() const=0;

	//! Lnge [Anzahl Samples]
	virtual int GetLength() const=0;

	// Zeiger auf die Daten eines Kanals zurckgeben
	virtual const float* GetChannelData(int iChannel) const=0;
};

#endif // INCLUDE_WATCHER_ITA_SOUND_SAMPLE