Page 1 of 2 12 LastLast
Results 1 to 10 of 12

Thread: Framework - Open Source Module Driven

  1. #1
    I'm sorry, and you are....? frodobaggins's Avatar
    Join Date
    Jan 2003
    Location
    Ruston, LA
    Posts
    8,846

    Framework - Open Source Module Driven

    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.

    Code:
    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
          |          
          |
    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!

  2. #2
    FLAC jbors's Avatar
    Join Date
    Nov 2003
    Posts
    957
    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.

  3. #3
    Low Bitrate migrane's Avatar
    Join Date
    Apr 2004
    Location
    Windsor, Ontario
    Posts
    95
    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

  4. #4
    I'm sorry, and you are....? frodobaggins's Avatar
    Join Date
    Jan 2003
    Location
    Ruston, LA
    Posts
    8,846
    Quote Originally Posted by migrane
    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

    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!

  5. #5
    Variable Bitrate vcbb5's Avatar
    Join Date
    Aug 2002
    Location
    Kansas
    Posts
    400
    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.
    My Mazda 3s

    My Mazda 3s on Car Domain

    [||||||||||||||||||--] (90%)

  6. #6
    Constant Bitrate
    Join Date
    Feb 2001
    Location
    Somerville, MA
    Posts
    149
    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

  7. #7
    Clover Grayscale's Avatar
    Join Date
    May 2004
    Location
    Arkansas
    Posts
    1,549
    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?

  8. #8
    Maximum Bitrate mobileh1's Avatar
    Join Date
    Apr 2004
    Location
    San Francisco
    Posts
    454
    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

  9. #9
    I'm sorry, and you are....? frodobaggins's Avatar
    Join Date
    Jan 2003
    Location
    Ruston, LA
    Posts
    8,846
    Quote Originally Posted by mobileh1
    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.

    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!

  10. #10
    Low Bitrate migrane's Avatar
    Join Date
    Apr 2004
    Location
    Windsor, Ontario
    Posts
    95
    Quote Originally Posted by frodobaggins
    I'm not sure I understand the question.
    I should have probably prefaced this with another question. Will there be multiple plugins running concurrently or just one ?!

    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

Page 1 of 2 12 LastLast

Similar Threads

  1. I think we should have an open source interface
    By Seraph in forum Software & Software Development
    Replies: 20
    Last Post: 10-01-2003, 07:01 PM
  2. Questions for developers
    By SuperG35 in forum ME Archive
    Replies: 28
    Last Post: 08-26-2003, 11:12 AM
  3. Is ME open source?
    By SuperG35 in forum ME Archive
    Replies: 2
    Last Post: 08-22-2003, 03:42 PM
  4. still open source?
    By SilverJester in forum ME Archive
    Replies: 3
    Last Post: 03-03-2003, 10:52 PM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •