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/common/artsmodulescommon.idl

168 lines
4.4 KiB

/*
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., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, 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 <artsgui.idl>
#include <artsflow.idl>
#include <artsmidi.idl>
#include <artsmodulessynth.idl>
module Arts {
module Environment {
interface Context {
void addEntry(string name, object obj);
string lookupEntry(object obj);
void removeEntry(object obj);
};
interface Item;
interface Container {
attribute string dataDirectory;
attribute Context context;
readonly attribute sequence<Item> items;
sequence<string> saveToList();
void loadFromList(sequence<string> strlist);
void addItem(Item item);
Item createItem(string name);
void removeItem(Item item);
};
interface Item {
/**
* true if item resides inside a container
*/
readonly attribute boolean active;
/**
* the container the item lives in
*/
readonly attribute Container parent;
/**
* called by the container to insert/remove item from/to the
* environment
*/
void setContainer(Container container);
/**
* called by the container to save the item
*/
sequence<string> saveToList();
/**
* called by the container to restore the item
*/
void loadFromList(sequence<string> strlist);
};
interface InstrumentItem : Item {
readonly attribute Arts::MidiPort port;
attribute string filename;
attribute string busname;
};
interface InstrumentItemGuiFactory : Arts::GuiFactory {
};
interface StereoEffectItem : Item {
attribute Arts::SynthModule effect;
attribute Arts::StereoEffectStack stack;
};
interface MixerChannel : Arts::StereoEffect {
attribute string name;
};
interface MixerItem : Item {
readonly attribute sequence<MixerChannel> channels;
attribute long channelCount;
attribute string name;
attribute string type;
};
interface EffectRackItem : Item {
Arts::StereoEffect createEffect( string type, string name );
void delEffect( long pos );
void routeToMaster( long pos, boolean tomaster );
readonly attribute sequence<Arts::StereoEffect> effects;
readonly attribute long effectCount;
attribute string name;
};
};
interface MixerItemGui {
/*writeonly*/ attribute boolean active;
/*writeonly*/ attribute long channelCount;
/*writeonly*/ attribute string type;
// builds a MixerItemGui for a specific MixerItem (call this exactly once)
Widget initialize(Environment::MixerItem item);
};
interface EffectRackSlot;
interface EffectRackItemGui {
void removeSlot( EffectRackSlot slot );
void routeToMaster( EffectRackSlot slot, boolean tomaster );
attribute boolean active;
attribute string type;
/*writeonly*/ attribute boolean addeffect;
// builds a EffectRackItemGui for a specific EffectRackItem (call this exactly once)
Widget initialize(Environment::EffectRackItem item);
};
interface EffectRackSlot {
void constructor( Widget parent, Widget effect, EffectRackItemGui effectrackgui );
/*writeonly*/ attribute boolean removeslot;
/*writeonly*/ attribute boolean tomaster;
};
// creates: Environment::MixerItem, SimpleMixerChannel
interface MixerGuiFactory : GuiFactory {
};
// creates: Environment::EffectRackItem
interface EffectRackGuiFactory : GuiFactory {
};
};