Page 1 of 3 123 LastLast
Results 1 to 10 of 28

Thread: Road Runnner needs Rework?

  1. #1
    Maximum Bitrate bes51659's Avatar
    Join Date
    Sep 2005
    Location
    Vasastaden, Stockholms Län, Sweden, Sweden
    Posts
    852

    Road Runnner needs Rework?

    Hi RoadRunners.

    I have had a look at RoadRunner to deside if that is what I should use in my system.

    I've made a few observations, and I think that RR can be greatly improved with small means.

    * Don't take this wrong, I'm not trying to be worldchampion *

    Seems to me its getting too big. And programmers are not easily invited to add support for a different mediaplayer etc. And there is a lot of logic with dependencies between applications. That is easily observed when trying to remove Map Point support or temperature awareness to release com port 1 for another device.

    Instead of includeing everything anyone would ever possibly like to have into one binary it would be better to include just the components required.

    If the skindriver (rrr.exe?) parameterized from ini file is separated it will never have to be updated again. Only bug fixed. Forget about heavy upgrades.

    If a new controll like a hardware USB volume control or a windows widget such as a dropdownlist or what ever was added that extra dll could be loaded and suddenly be avalible from .skin files read by the rrr.exe.

    If support for a new application was added a new skin files had to be created specifying that app and how to translate events and that's it! In some cases no skin at all is required, and that is then specified by the skin file.

    What I mean is that one rr.exe (rrr.exe?) shoulf be spawn for every skinframe. If two frames relates to the same app, like mediaplayer, the second one detects that the mediaplayer is allready up and does not start a second one.

    If there was a dependency between apps like turning down volume when answering a call that could be done by calling every rr.exe instance with event "ANSWER_CALL" and each and every skin would act apone that event if recognized.

    Data like temperature etc can be written into a .dat file for every app to read.

    What do you think?
    Have I lost it?
    I think the concept with the four jpg files etc. is great, or I would not bother!

    Regards,
    Blof

    I four one would be happy to participate in such a rework.

  2. #2
    Constant Bitrate m-ruiter's Avatar
    Join Date
    Jul 2005
    Location
    Kortenhoef
    Posts
    168
    It sounds to good to be true. It will be one hell of a big job.
    Also I think when the rework is being done a feature / release freeze needs to be placed.

    So you don't have to rework your rework with the updates done.

    When there just a few people doing the rework I think that the freeze will a be for a few months. Maybe shorter when somebody works his *** off (which would be greatly appreciated). But the main programmer is always Guino. I guess his opinion will be decisive.

    Apps always tend to get slow when al kinds of extra features are build in ad-hoc. You will get a eight headed dragon with a slower reaction time.

  3. #3
    RoadRunner Mastermind
    Auto Apps:loading...
    guino's Avatar
    Join Date
    Nov 2004
    Location
    Toronto, Canada
    Posts
    9,818
    I've thought of a modular concept in the past, mainly for audio players.. to allow using Winamp/WMP/iTunes etc using plugin/DLLs that would not have to be compiled with RR. But in order to recompile the entire project all the supported components must be present (Mappoint etc), so it was not much of any help. I wish VB6 had some sort of #define-alike compiler directives so we could allow it to be compiled with more specific support, saddly there's no such thing.

    But I disagree on the size issue, MC was 1.8Mb on it's latest version and RR is less than 2.1Mb or so (uncompressed), uses less memory and a has ****-load of extra things in it that MC didn't. So I think it's about the right size (plus I don't know what option was used to compile MC), then even if you compare to the size of other FEs (like ME) it still not bad at all..

    When it comes to interfacing, writing and reading data to files on disk are the biggest "jerry-rig" that we could possibly think of. The SDK interface in RR allows you to send commands and quickly receive any data you'd like to obtain from RR (like temperatures/voltages/song info etc).

    I would be 100% in favor of for instance making a standard "Plugin Class interface" that could take skin commands and execute them in different ways, as well as provide interface to display labels/sliders etc.. this would be fairly easy to add, just a public class, with a few standard methods and bam!.. all done -- you could even port some of the current features into DLLs, but some things like Mappoint support are so deeply inside RR that would be quite complex to modularize in that fashion. In any way, I like the idea so much that I may just put something together for the next release and start to "slowly" modularize the current features that could be done that way. But I'd still defend the idea that the most common components should always be built-in in order to provide better performance.

    I do appreciate the suggestion and the offer to help and I would gladly try to coordinate with you and discuss further development in that respect.
    Ride Runner RR's Myspace

    "Being happy is not about having what you want, it's about wanting what you have."
    "The best things in life are always free - but that doesn't mean money can't buy you good things."

  4. #4
    Maximum Bitrate bes51659's Avatar
    Join Date
    Sep 2005
    Location
    Vasastaden, Stockholms Län, Sweden, Sweden
    Posts
    852
    Thanks for your reply. First I'd like to say that with 'big' I mean that the functionality is getting to be so vast, that updating it and testing it is getting less and less manageable. (I'd imagine). Sorry.

    I think that starting little by little is a great idee. Prove concept without too much effort. (calculator skin? Or existing small app)

    This is how I think a generic interface would look like. (And remember I have not yet got more than maybe 10 hours looking into this)

    -----------------------------------

    - the same skin file format. (At least backwards compatible) This is important.

    - To every my.skin there is a my.dll.

    - commandline (from within rr.exe that reads a config.ini file):
    rrr.exe my.skin

    - rrr.exe will load my.dll and my.skin.

    - my.dll has a cmd(STRING) function for receiveing commands defined in skin file and the knowledge on how to interpret them. Like vol_up is the same as {F9} thrown on MediaPlayer. If a nonsens string is sent it is just disregarded.

    - Sometimes action is required when events are thrown on fellow applications when not in focus. Like turning down the volume when answering the phone. For that reason every command is sent to every skin allways. This (I think) will make it unessessary to put logic in rr.exe about application specifics.

    - rr will manage all skins and control focus, hypernation, etc.

    - rrr will do the graphics. All controls are implemented here.

    - my.dll will contain the cmd(STRING) wich is basically a switch case. Probably a state machine. This binary can be made by anyone (together with the .skin file) who wants to add a plug in and is not a part of roadrunner release.

    - my.dll is also required to have a destroy() method.

    --------------------------------

    I think that putting together the rrr.exe is a matter of stripping down rr. To someone familiar with the design not that much work?

    I can make the first dll.

  5. #5
    RoadRunner Mastermind
    Auto Apps:loading...
    guino's Avatar
    Join Date
    Nov 2004
    Location
    Toronto, Canada
    Posts
    9,818
    While it may sound good at first the concept of loading a dll with each .skin is just very limiting. I was thinking in terms of defining which modules should be loaded to support the desired features. This should probably done at the skin level since the skin authors know what features they need to use. If those DLLs are not loaded all up-front, then it's possible that a function for another screen (not yet loaded) would not work on a different screen -- if that other screen hasn't yet been loaded. So this has to be at a more global level. Plus, this has to be optional in many levels because I'd never force anyone to have programming skills in order to just make a skin, so yeah, backwards compatible.
    Ride Runner RR's Myspace

    "Being happy is not about having what you want, it's about wanting what you have."
    "The best things in life are always free - but that doesn't mean money can't buy you good things."

  6. #6
    Maximum Bitrate bes51659's Avatar
    Join Date
    Sep 2005
    Location
    Vasastaden, Stockholms Län, Sweden, Sweden
    Posts
    852
    All should be loaded at start-up. I agree. There is no need to do that dynamically. One flat hierachy. rr on top managing all rrr's. No contradiction here, so I'm not quite sure I get what you mean. Maybe its something I don't quite understand.

    Off cause everyone should be able to do there own skin, without having to make a dll. As long as they are makeing a skin for an already supported app that is that already has a RR dll.

    The dll is only done once for each plug-in application. It defines what controlles that should be on that skin frame. But not position and design. All .skin files today could be used without change.

    I don't understand why a dll should be limiting. And I think that is possible to keep applications apart. For instance navigation speed from car. That could go into all apps, its only at one place that the music volume is decrease because of that.

    I see your point though. That there will always be an mp3 player, the only question is which. It will be easier to have an mp3 generic interface. I think it would make sense to go a bit further though...

    Take winamp and mediaplayer for instance. mediaplayes has not got an equalizer, but it has got the ability to rip a CD automatically when first inserted. There will allways be differencies even between mp3 players.

    (Love the RX-8 btw :-) )

  7. #7
    Variable Bitrate NeoMatrixJR's Avatar
    Join Date
    Aug 2004
    Location
    Arround Des Moines, IA
    Posts
    258
    my 2 cents...modular vb is a pain...I attempted it in .net briefly. Unless someone out there has good code for this already, I doubt it would be worth halting the development of new functionality just to reinvent the wheel so to speak.

  8. #8
    RoadRunner Mastermind
    Auto Apps:loading...
    guino's Avatar
    Join Date
    Nov 2004
    Location
    Toronto, Canada
    Posts
    9,818
    Quote Originally Posted by NeoMatrixJR
    my 2 cents...modular vb is a pain...I attempted it in .net briefly. Unless someone out there has good code for this already, I doubt it would be worth halting the development of new functionality just to reinvent the wheel so to speak.
    Yeah, it can be a pain, but I've got just the right way to make it very simple and painless..

    @bes51659: I think we're on the same page, I just misinterpreted what you said before. Right now I'm trying to figure out some flash integration issues, then I can probably look into that.. most likely make everything basic enough so the dll can be made in any language (not just vb6).. I have a pretty good idea in my mind of how to do it, but feel free to tip in or code something yourself..
    Ride Runner RR's Myspace

    "Being happy is not about having what you want, it's about wanting what you have."
    "The best things in life are always free - but that doesn't mean money can't buy you good things."

  9. #9
    Maximum Bitrate bes51659's Avatar
    Join Date
    Sep 2005
    Location
    Vasastaden, Stockholms Län, Sweden, Sweden
    Posts
    852
    Glad to here we are on speaking terms and understand eachother :-)

    Yes, if I make a windows media player dll I would like to use c++ (I think)

    I've worked a bit with interfacing dll's. And DCOM (that's when it gets really painful). It is possible to use even a Borland application with a MS dll. Yes, it could be some suffering, but its only done once.

    about languages... hrmm... the languages we speek... that is another thing that would be nice to have as a resource :-) (I did not dare mension that before) A simple enumeration of strings a language dll that returns the real content? Or just encapsulated in the .skin files? I bet a lot of people would love a "hello world" feature! A "kilroy was here" thing :-)

    I will hold my horses now, and wait until you feel its time. I think the best thing is if you do the basics first. I wouldn't mind, but its a fundamental thing that I myself would have liked to do it in your position.

    If there is something you trust me to get started with, please tell me!

    Cheers.

  10. #10
    RoadRunner Mastermind
    Auto Apps:loading...
    guino's Avatar
    Join Date
    Nov 2004
    Location
    Toronto, Canada
    Posts
    9,818
    well, it'd be very helpful to have a DLL structure with all (or most) of the functions present in the Winamp Control module.. then the current module could be pretty much used for a Winamp Player Plugin (DLL), then we could make the same for WMP, iTunes etc.. of course not all players have the same functions but would still be a cool user choice. The best one (IMHO) would be one based on FMOD which supports pretty much all the basic functions winamp does, but it's even lighter. Just an idea.. the basic DLL could be in VB6 (for winamp), then we could switch out the functions in RR to use the DLL, make it into a generic "Object" type and create it with CreateObject using only of the name of the public class. That would allow to even switch players on the fly (if ever desired), and should be version and language independent.

    In regards to language, there are really just a few lines of text in RR itself, for the loader screen only. If the skin authors would like to have different languages on their skins, all they have to do is pretty much make new .skin files and use dynamic text labels on the buttons. Of course buttons with text pre-drawn on them look nicer (with effects and such), but even if somebody wanted to make a hot-swap of language it's possible with the variables support now. So I really don't see much of the point in that.
    Ride Runner RR's Myspace

    "Being happy is not about having what you want, it's about wanting what you have."
    "The best things in life are always free - but that doesn't mean money can't buy you good things."

Page 1 of 3 123 LastLast

Similar Threads

  1. Road RUnner and Navi Voice
    By cdevelasco in forum PowerVoice
    Replies: 23
    Last Post: 07-20-2007, 12:40 PM
  2. Road runner Ideas (BIG LIST)
    By sephiroth7 in forum Road Runner
    Replies: 9
    Last Post: 04-01-2007, 09:50 AM
  3. Iguidance 2.0 font size is killing me
    By djtrickee in forum GPS
    Replies: 448
    Last Post: 08-26-2005, 07:51 AM
  4. Road Runner Facts...
    By guino in forum Road Runner
    Replies: 13
    Last Post: 02-21-2005, 11:16 AM
  5. Iguidance reroute problem?
    By samc in forum GPS
    Replies: 17
    Last Post: 10-02-2004, 10:49 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
  •