ITAStreamYJunction.h 1.9 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-2018
 *
 * ----------------------------------------------------------------
 *				    ____  __________  _______
 *				   //  / //__   ___/ //  _   |
 *				  //  /    //  /    //  /_|  |
 *				 //  /    //  /    //  ___   |
 *				//__/    //__/    //__/   |__|
 *
 * ----------------------------------------------------------------
 *
 */
Jonas Stienen's avatar
Jonas Stienen committed
18
19
20
21
22

#ifndef INCLUDE_WATCHER_ITA_STREAM_Y_JUNCTION
#define INCLUDE_WATCHER_ITA_STREAM_Y_JUNCTION

#include <ITADataSourcesDefinitions.h>
Dipl.-Ing. Jonas Stienen's avatar
Style    
Dipl.-Ing. Jonas Stienen committed
23

Jonas Stienen's avatar
Jonas Stienen committed
24
25
26
27
28
29
30
31
32
33
#include <ITATypes.h>

class ITADatasource;
class ITAStreamPatchbay;

//! 1:n-Verzweigung fr Audiodatenstrme
/**
 * Die Klasse ITAStreamYJunction realisiert eine 1:n-Verzweigung fr Audiodatenstrme.
 * Hierbei wird eine Eingangsdatenquelle auf n Ausgnge repliziert.
 */
Dipl.-Ing. Jonas Stienen's avatar
Style    
Dipl.-Ing. Jonas Stienen committed
34
35
class ITA_DATA_SOURCES_API ITAStreamYJunction
{
Jonas Stienen's avatar
Jonas Stienen committed
36
public:
Dipl.-Ing. Jonas Stienen's avatar
Style    
Dipl.-Ing. Jonas Stienen committed
37
	ITAStreamYJunction( unsigned int uiOutputs, ITADatasource* pdsInput = NULL );
Jonas Stienen's avatar
Jonas Stienen committed
38
39
40
41
42
43
44
45
46

	virtual ~ITAStreamYJunction();

	//! An den Eingang angeschlossene Datenquelle zurckgeben
	ITADatasource* GetInputDatasource();

	//! Eingangsdatenquelle setzen
	/**
	 * Setzt die eingangsseitige Datenquelle.
Dipl.-Ing. Jonas Stienen's avatar
Style    
Dipl.-Ing. Jonas Stienen committed
47
	 *
Jonas Stienen's avatar
Jonas Stienen committed
48
49
50
51
52
53
	 * \important Die Methode darf nicht mit dem Nullzeiger als Parameter aufgerufen werden.
	 *            Ferner muss die neue Datenquelle die gleichen Eigenschaften wie die zuvor
	 *            zugeordnete Datenquelle aufweisen, falls letztere zugeordnet war.
	 *
	 * \note Im Fehlerfall lst die Methode ein ITAException aus
	 */
Dipl.-Ing. Jonas Stienen's avatar
Style    
Dipl.-Ing. Jonas Stienen committed
54
	void SetInputDatasource( ITADatasource* pdsInput );
Jonas Stienen's avatar
Jonas Stienen committed
55
56
57
58
59

	//! Anzahl der Ausgnge zurckgeben
	unsigned int GetNumberOfOutputs();

	//! Eine Ausgangsdatenquelle zurckgeben
Dipl.-Ing. Jonas Stienen's avatar
Style    
Dipl.-Ing. Jonas Stienen committed
60
	ITADatasource* GetOutputDatasource( unsigned int uiIndex );
Jonas Stienen's avatar
Jonas Stienen committed
61
62
63
64
65
66

protected:
	ITAStreamPatchbay* m_pImpl;
};

#endif // INCLUDE_WATCHER_ITA_STREAM_Y_JUNCTION