Well, I've been thinking about my scripting idea further. I've decided to 
experiment with ECL, too - Embedded Common Lisp. What's the big idea? Well, ECL 
provides a FFI. So, I could interface ECL with Cinelerra. But it goes further 
than that in 2 ways:
* the FFI that you use with ECL could be combined with a back-end to generate 
the FFI for a different language. FICL interface code is hard-coded at the 
moment, for example. It would be interesting to see if I could use the ECL FFI 
to generate FICL glue code. Of course, you'd still have to write the back end 
in terms of specified primitives (as the joke goes: my car's an automatic, but 
I still have to be there).
* if what I think is right, then it also means that one can generate pluggable 
language scripts - and generated in a way that's much much easier for the 
plugin programmer. How's that, you wonder? Well, the generated interface file 
could be compiled to fasl - which is a compiled Lisp code. Cinelerra, combined 
with ECL, could search the script plugin directory, and load those fasls. And 
those fasls, which were generated by ECL, contain the information required to 
interface with the scripting language.

So potentially, it's quite a powerful approach. And you get a separability 
between Cinelerra and the scripting language. People are free to write language 
extensions independently of the main development, and don't need to combine it 
with the source tree. What they will do is implement an API (they don't have to 
implement the whole gamut of functions that we want Cinelerra to export, just a 
base API), and use a binary (which will basically be some ECL proggy that needs 
to be written once) on their written API to produce a fasl. They then offer up 
this fasl to the world -  pycine.fasl, for example. Someone sees the 
pycine.fasl, puts it in their scripting dir, starts Cinelerra, and as if by 
magic, python interface.

A certain amount of ECL will need to be hard-coded in with Cinelerra, because 
it's the mechanism that will do the connecting. It's also why I'm trying to 
convince people to stop using C++ - C is just easier to interface with.




      ___________________________________________________________
Yahoo! Answers - Got a question? Someone out there knows the answer. Try it
now.
http://uk.answers.yahoo.com/ 

Reply via email to