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/