/*

    Copyright (C) 2000-2001 Stefan Westerfeld
                                stefan@space.twc.de
                  2001-2003 Matthias Kretz
                            kretz@kde.org
                  2002-2003 Arnold Krille
                            arnold@arnoldarts.de

     This library is free software; you can redistribute it and/or
     modify it under the terms of the GNU Library General Public
     License as published by the Free Software Foundation; either
     version 2 of the License, or (at your option) any later version.

     This library is distributed in the hope that it will be useful,
     but WITHOUT ANY WARRANTY; without even the implied warranty of
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     Library General Public License for more details.

     You should have received a copy of the GNU Library General Public License
     along with this library; see the file COPYING.LIB.  If not, write to
     the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
     Boston, MA 02111-1307, USA.

*/

/*
* DISCLAIMER: The interfaces in artsmodules.idl (and the derived .cc/.h files)
*             DO NOT GUARANTEE BINARY COMPATIBILITY YET.
*
* They are intended for developers. You shouldn't expect that applications in
* binary form will be fully compatibile with further releases of these
* interfaces.
*/

#include <artsflow.idl>

#include <artsmodulessynth.idl>
#include <artsmodulescommon.idl>

module Arts {

interface SimpleMixerChannel : Environment::MixerChannel {
	readonly attribute Synth_STD_EQUALIZER equalizerLeft, equalizerRight;
	readonly attribute StereoEffectStack insertEffects;
	attribute float gainLeft, gainRight;
	attribute float pan;
	attribute float volumeLeft, volumeRight;
};

// creates: SimpleMixerChannel
interface SimpleMixerChannelGuiFactory : GuiFactory {
};

interface MonoSimpleMixerChannel : Environment::MixerChannel {
	readonly attribute Synth_STD_EQUALIZER equalizer;
	readonly attribute StereoEffectStack insertEffects;
	attribute float gain;
	attribute float pan;
	attribute float volume;
};

// creates: MonoSimpleMixerChannel
interface MonoSimpleMixerChannelGuiFactory : GuiFactory {
};

interface Synth_AUX_BUS : SynthModule {
	attribute float level;
	attribute long channel;
	in audio stream invalue;
};

interface LittleStereoMixerChannel : Environment::MixerChannel {
	attribute float volume;
	attribute float balance;
};
interface LittleStereoMixerChannelGuiFactory : GuiFactory {
};

};

