You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdemultimedia/arts/modules/effects/artsmoduleseffects.idl

148 lines
4.3 KiB

/* This file is part of the KDE project
Copyright (C) 2002 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 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 .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 <artsgui.idl>
#include <artsmodulescommon.idl>
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<GraphPoint> 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 {};
};