You may have already looked at freevo or mythtv frameworks. They have plugin system developed which is clean and real simple. Just always better to use good ideas in the beginning and make them even better.
My 2c.
Ok from this thread which we hijacked I said I would make up
some notes:
RFC: new car pc app (sanity check ?!) :)
Here is what I have so far.
FrodoCode:Main App/Framework | \ | \ | -------------------------Plugin Exposes: 2 Types (Generic & Graphical) |Volume Class | | \Master/Wave/Line/CD |Generic (always running) | \\Mute/Up/Down | | | \Max/Min | |Exposes | | |Start/Init |Window Functions | |Terminate/End | \ \Position/Size | | \ \Width/Height/Left/Top | | \Window State |Graphical (Called from Menu) | \Minimize/Maximize | | |Exposes |Generic Error Logger (Not Handler |Start/Init | |Terminate/End | | |Events | \AutoInsert Notification | | |Some Objects | \Background Picture Handle | | | |Command Sound Handler | \ \Default Sound Library | \ \Async/Sync | \Voice Library (Say "Hello") | \Async/Sync | |
[H]4 Life
My next generation Front End is right on schedule.
It will be done sometime in the next generation.
I'm a lesbian too.
I am for hire!
You may have already looked at freevo or mythtv frameworks. They have plugin system developed which is clean and real simple. Just always better to use good ideas in the beginning and make them even better.
My 2c.
How is the event notification going to work ? Is the main app going to process the events or is it just going to pass the events around to the plugins ?!
Migrane
Originally Posted by migrane
I'm not sure I understand the question.
[H]4 Life
My next generation Front End is right on schedule.
It will be done sometime in the next generation.
I'm a lesbian too.
I am for hire!
I love the idea of an open module system. Everyone has different programs, and different applications that they want their software to run, and currently many programs don't let you easily add/delete programs from the interface.
ie. i have a hu, and don't want fm/xm in my car app, but want a rearview cam, etc.
I am working on a similar project.
Right now, all plugins must implement a COM interface that lets them recieve events. They can also trigger actions in the main program. Right now, I am using WMP to playback video/audio, and hosting it at the main program level rather than having a MP3 plugin and a Video plugin and a DVD plugin that all host their own copy of WMP.
One important thing to think about is language independance. I'm pretty sure that just about every language that compiles or runs in Windows can export a COM component, so that is why I am using COM.
Skinning is also somewhat difficult, as you need to have a way to skin for arbitrary plugins.
I'm not all that far from some sort of release, maybe you want to collaborate?
Twostep
well it looks like you guys just jumped up and started a new thread while i was gone on my camping trip
Frodo: it sounds good, but complicated. I'm just gonna develop my app and make it open source. If you need any help and i think i may be of assistance I will try. In case you haven't checked that other thread lately:
Quote:
Originally Posted by Grayscale
we just need to set up our own protocol of commands the client and parents send between each other. of course we need start, terminate, interrupt...but what others? I think most of the data passed between application and plugin would mostly be string data. should the audio from say the xm plugin have to go through to the parent application? if it does it would make it more complicated but it would also allow more control...that is the main application would have say an equalizer or volume control that every plugin might not have.
to be honest, i actually don't know how the data from say an xm radio plugin would do that. the only client / server stuff i deal with uses strings. any more experienced programmers have any suggestions on this? i think i'm just confusing myself...
what i'm saying is i'm not sure whether there will be more complicated data like audio data being sent back to the parent application from the plugin or will it just be string data controlling the plugin. I think I just figured it out: the plugin can send string data telling the app to change the volume or to adjust the equalizer...probably all of this should be disregarded but I'm just trying to get it all straight in my head.
twostep: i'm interested in this release. also is it going to be open source?
I would suggest a more encapsulated approach to this.
When a plugin is started by the parent, say the XM module, one of the parameters is whether this module will need the audio device, or not, so GPS maybe not, XM yes. The container will stop playing whatever it is currently playing and hand over to the plugin. There isnt much need for multiple plugins running concurrently, after all, you cannot listen to XM and watch a DVD...
You guys that want to design this should take a look at the way DirectX works, the various components that make up this media framework is actually well thought out.
I say to hell with too much design. Build something that works, and then hack it to work the way everyone is happy with later. Design by committe is seldom very effective. If the code is well written it will survive the bashing around it will get when everyone gets their hands on it.
.//Daren
(Epia M10000/C134) (C137/MII 10000) Liliput /Opus 150W/DVD/512MB/80GB/Hummer H1
MediaCar/CoPilot7/Routis
Originally Posted by mobileh1
Basically, I plan to write the initial framework. I will release it with examples
on how to use it. Then I will kind of step back and everyone can take it from
there. When everyone gets the concept, we can get a more final framework
and suitable development can begin.
Frodo
[H]4 Life
My next generation Front End is right on schedule.
It will be done sometime in the next generation.
I'm a lesbian too.
I am for hire!
I should have probably prefaced this with another question. Will there be multiple plugins running concurrently or just one ?!Originally Posted by frodobaggins
If there are multiple plugins running concurrently then the need for an inter-plugin messaging arises.
If you have an OBD II plugin and a mp3 plugin running concurrently. There is a critical event happeing in the OBD II plugin that you need to be informed about. There should be a way for the OBD II plugin to message either its main app (parent app) or its peers that is the other plugins to request access to resources like sound and video in order for it to be able to notify you of that event.
hope this makes more sense.
Migrane
Bookmarks