3 |
* LinuxSampler - modular, streaming capable sampler * |
* LinuxSampler - modular, streaming capable sampler * |
4 |
* * |
* * |
5 |
* Copyright (C) 2003, 2004 by Benno Senoner and Christian Schoenebeck * |
* Copyright (C) 2003, 2004 by Benno Senoner and Christian Schoenebeck * |
6 |
|
* Copyright (C) 2005 Christian Schoenebeck * |
7 |
* * |
* * |
8 |
* This program is free software; you can redistribute it and/or modify * |
* This program is free software; you can redistribute it and/or modify * |
9 |
* it under the terms of the GNU General Public License as published by * |
* it under the terms of the GNU General Public License as published by * |
33 |
#include "../../common/LinuxSamplerException.h" |
#include "../../common/LinuxSamplerException.h" |
34 |
#include "../Device.h" |
#include "../Device.h" |
35 |
#include "../DeviceParameter.h" |
#include "../DeviceParameter.h" |
36 |
#include "../../engines/common/Engine.h" |
#include "../../engines/common/EngineChannel.h" |
37 |
#include "AudioChannel.h" |
#include "AudioChannel.h" |
38 |
|
|
39 |
namespace LinuxSampler { |
namespace LinuxSampler { |
40 |
|
|
41 |
// just symbol prototyping |
// just symbol prototyping |
42 |
class Engine; |
class EngineChannel; |
43 |
|
|
44 |
/** Abstract base class for audio output drivers in LinuxSampler |
/** Abstract base class for audio output drivers in LinuxSampler |
45 |
* |
* |
189 |
* device and the engine will also automatically be informed |
* device and the engine will also automatically be informed |
190 |
* about the connection. |
* about the connection. |
191 |
* |
* |
192 |
* @param pEngine - sampler engine |
* @param pEngineChannel - sampler engine channel |
193 |
*/ |
*/ |
194 |
void Connect(Engine* pEngine); |
void Connect(EngineChannel* pEngineChannel); |
195 |
|
|
196 |
/** |
/** |
197 |
* Disconnect given sampler engine from this audio output device. |
* Disconnect given sampler engine from this audio output device. |
198 |
* Removes given sampler engine reference from the Engines |
* Removes given sampler engine reference from the Engines |
199 |
* container of this audio device. |
* container of this audio device. |
200 |
* |
* |
201 |
* @param pEngine - sampler engine |
* @param pEngineChannel - sampler engine channel |
202 |
*/ |
*/ |
203 |
void Disconnect(Engine* pEngine); |
void Disconnect(EngineChannel* pEngineChannel); |
204 |
|
|
205 |
/** |
/** |
206 |
* Returns audio channel with index \a ChannelIndex or NULL if |
* Returns audio channel with index \a ChannelIndex or NULL if |
234 |
std::map<String,DeviceCreationParameter*> DeviceParameters(); |
std::map<String,DeviceCreationParameter*> DeviceParameters(); |
235 |
|
|
236 |
protected: |
protected: |
237 |
std::set<Engine*> Engines; ///< All sampler engines that are connected to the audio output device. |
std::set<EngineChannel*> EngineChannels; ///< All sampler engine channels that are connected to the audio output device. |
238 |
std::vector<AudioChannel*> Channels; ///< All audio channels of the audio output device. This is just a container; the descendant has to create channels by himself. |
std::vector<AudioChannel*> Channels; ///< All audio channels of the audio output device. This is just a container; the descendant has to create channels by himself. |
239 |
std::map<String,DeviceCreationParameter*> Parameters; ///< All device parameters. |
std::map<String,DeviceCreationParameter*> Parameters; ///< All device parameters. |
240 |
|
|