/* This file is part of the KDE project Copyright (C) 2002 Arnold Krille This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License version 2 as published by the Free Software Foundation. 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* * DISCLAIMER: The interfaces in envmixer.idl (and the derived .cpp/.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 #include #include module Arts { interface StereoToMono : Arts::SynthModule { attribute float pan; // From -1(left) to +1(right) in audio stream inleft, inright; out audio stream outmono; }; interface MonoToStereo : Arts::SynthModule { attribute float pan; // Same as StereoToMono in audio stream inmono; out audio stream outleft, outright; }; interface StereoBalance : Arts::StereoEffect { attribute float balance; }; interface StereoBalanceGuiFactory : Arts::GuiFactory {}; interface FiveBandMonoComplexEQ : Arts::StereoEffect { readonly attribute StereoToMono s2m; attribute float lowfreq, lowq, lowgain; attribute float mid1freq, mid1q, mid1gain; attribute float mid2freq, mid2q, mid2gain; attribute float mid3freq, mid3q, mid3gain; attribute float highfreq, highq, highgain; readonly attribute MonoToStereo m2s; }; interface FiveBandMonoComplexEQGuiFactory : Arts::GuiFactory {}; interface Synth_VOICE_REMOVAL : StereoEffect { attribute float position, frequency; }; interface VoiceRemovalGuiFactory : GuiFactory { }; interface Synth_STEREO_COMPRESSOR : StereoEffect { attribute float attack, release, threshold, ratio, output; attribute boolean thru; }; interface StereoCompressorGuiFactory : GuiFactory { }; interface Synth_STEREO_PITCH_SHIFT : StereoEffect { attribute float speed, frequency; }; interface Synth_STEREO_PITCH_SHIFT_FFT : StereoEffect { attribute float speed, scaleFactor; attribute long frameSize, oversample; }; interface Synth_STEREO_FIR_EQUALIZER : StereoEffect { attribute sequence frequencies; attribute long taps; }; interface StereoFirEqualizerGuiFactory : GuiFactory { }; interface Synth_FREEVERB : StereoEffect { attribute float roomsize, damp, wet, dry, width, mode; }; interface FreeverbGuiFactory : GuiFactory { }; interface Effect_WAVECAPTURE : StereoEffect { attribute string filename; }; interface StereoVolumeControlGui : LayoutBox { /** Creates a Gui for a StereoVolumeControl. This should be the most often used function. */ void constructor( Arts::StereoVolumeControl svc ); /* The direction from min to max for all elements. The elements will be order 90 degree clockwise to it. */ //attribute Direction direction; // Is already in LayoutBox /// The title of this volumecontrol attribute string title; /// the minimum and maximum value for levelmeter(only min, max is 0dB) and volumecontrol attribute float dbmin, dbmax; /** The elements separate: - the two levelmeter - the volumefader - the tickmarks for levelmeter and volumefader - the Label showing the title of the VolumeControl Use this only if you want to connect them to own devices. */ readonly attribute LevelMeter left, right; readonly attribute VolumeFader fader; readonly attribute Tickmarks levelmetertickmarks, volumefadertickmarks; readonly attribute Label label; /** Couples the two VolumeSlider Is currently useless since StereoVolumeControl::scaleFactor is only one value for both channels. */ attribute boolean couple; }; interface StereoVolumeControlGuiFactory : Arts::GuiFactory {}; };