So I'm starting to wrap my head around what LMCE is. Here's my concept of LMCE, correct me if I am wrong.
The core of LMCE is the DCErouter that is basically a "post office". Open source applications like Xine, Myth, Asterisk, etc have a LMCE "wrapper" that interfaces them to the DCERouter.
This wrapper can do multiple things:
- create messages to be passed into DCErouter
- register for messages that it is interested in receiving
- respond to messages it receives by making the wrapped application do something
So LMCE at its simplest is a framework for automating the interaction of various standalone open source applications. Asterisk and Xine were never designed to work together to pause a movie when the phone rings. But that can happen through LMCE. LMCE creates wrappers for both applications. The Xine wrapper registers with DCERouter and says he wants to know when a phone call message is received by DCERouter. The wrapper for Asterisk registers with DCERouter and says I am going to create phone call messages. When the phone call happens, the wrapper around asterisk creates a message that is passed to DCERouter and then to the Xine Wrapper. The Xine Wrapper then makes Xine pause the movie. Is that roughly correct?
So in theory, D-Bus could provide a lot of this functionality if the "wrapped" applications built in support correct? Could / does DCERouter interact over D-Bus? Probably would be PITA to handle the registration process.
So what are the pros and cons of LMCE versus D-Bus for this type of event driven message passing? I know LMCE was up and working before D-Bus was mature so it had mature functionality first. Plus D-Bus support has to be built into the application where the wrapper model can be applied after the fact. But the wrapper model means LMCE has to lag behind upstream development to make sure the integration is correct, right? Plus D-Bus is application specific where LMCE is more "event driven", you can send messages directly to xine or asterisk using D-bus but there is not a generic D-Bus API for registering for all home security events?
I want to play with some of this home automation stuff but I'm really not a big media consumer (at least not TV / Movies anyway) and I'm trying to figure out which framework makes more sense. LMCE is much more mature but if I want a new wrapper, I write it or pay someone to write it. If I use something like D-Bus then it becomes more likely that hardware and software will be supported out of the box in the future. Or maybe a middle path of building a D-Bus plug-in for DCERouter where the two protocols could interact?