[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-multimedia
Subject:    Re: More MSOP stuff: dynamic casting and aliasing
From:       Nicolas Brodu <nicolas.brodu () free ! fr>
Date:       2000-05-16 13:35:38
[Download RAW message or body]

Stefan Westerfeld wrote:
> > Object o;
> > alias(o,"a_port",another_object,"another_port");
> >
> > In that case, since o doesn't exist, you cannot call _alias^H^H^H^H^H^H
> > _virtualize on it. So I created a foo AliasedObject to serve as a support.
> > How did you solve this one?
> 
> Not at all ;-)
> 
> But basically, a "dynamic skeleton object" should even be able to create
> a port for itself, and use it to transfer real data (without virtualization),
> as it should be able to implement methods, and attributes.
> 
> A good example for this is LADSPA support (another simple plugin interface
> for linux), which we could have some day have in aRts/MCOP. It should work
> like this:
> 
> You say
> 
> SynthModule m("Foo");
> 
> If Foo is a LADSPA plugin (which provides some entry points for processing
> float data), it should be dlopened, and a LADSPAGate object should be created
> that adds to itself (and to the flowsystem) the required ports. It then
> reimplements calculateBlock, where it calls the "real" LADSPA calculation
> function.
> 
> So basically, dynamically implemented modules should be capable of
> implementing interfaces with any kinds of ports, methods and attributes
> without the author knowing the exact types and count before.

OK, so what's really missing there is the dynamic skeleton system.
I think I'll make a virtualize() and devirtualize() functions like the connect
one (that is, a global function that takes Objects and port names as arguments
and does the necessary job). That should solve the 'ugly syntax' problem, and
after another look at the source code, the virtualize system is great.
However, since we don't have dynamic skeletons now, I propose the following. If
virtualize() is called on a null object, create locally an empty object
(inherited from SynthModule) and then use it for the virtualizing operation.
Would it work, then?

Cheers,
Nicolas
-- 
A shortcut is the longest distance between two points. (unknown author)
_______________________________________________
Kde-multimedia mailing list
Kde-multimedia@master.kde.org
http://master.kde.org/mailman/listinfo/kde-multimedia

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic