Announcement

Collapse
No announcement yet.

Update 02/'09 - some more detail

Collapse
This topic is closed.
X
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Update 02/'09 - some more detail



    Hi all!

    There's a huge amount of work to do yet, but still we're making big
    steps towards a really nice application.
    In this post I'll try to tell something about its features (in a more technical way).

    CarMa is built towards low-end hardware, but still with all modern features
    and a responsive and eye-pleasing user interface.

    It is ready for multi-core cpu's. Most parts are split up into background
    threads already. This allows the CarMa framework to scale up seamless
    to high-end hardware and make use of it efficiently.


    I'll sum up a couple of my own design and coding-rules to clear up a couple
    of design related-questions ahead:
    keep the UI responsive (user should have the highest priority, instead of the OS f.i.),
    try to keep the software low on resource/memory usage and don't fear technical
    workarounds to optimize slow implementations..


    Core
    The core manages all subsystems like audio, database,
    skinning, external events, file- and imagecache and more. It is based
    on a plugin-like architecture, which allows us to change, replace or
    extend certain parts easily.

    The core doesn't handle external (dll) plugins as of yet. We haven't started
    coding this part. Also, there's no external API yet. These are planned
    for a later version, shortly after launch


    Application Skins
    The application allows total freedom of skinning.
    A skin contain a bunch of images (PNG preferred due to alphablending),
    and a bunch of XML files to describe the individual screens and popups.
    Images can be any format, although the preferred format is PNG.

    Each object is a separate layer, all blended nicely with each other.
    It can render 100's of layers without any noticeable performance loss.
    Individual layers are updated if changed only.

    The skin-developer has the option to use truetype or bitmapped fonts.
    Bitmapped fonts are drawn faster but fixed sized,
    TrueType fonts are scalable and support anti-aliasing but slow to draw.

    Note: The documentation of the available objects will be found on our Wiki pages after launch


    Scripting
    CarMa is completely based on scripting. If a skin doesn't contain any scripts,
    it won't run either. It will probably show a nice picture, but it doesn't take
    you anywhere.

    We've chosen for a lightweight script interpreter based on very
    simplistic Pascal language. It can process scripts simultaneous and fast.
    Don't worry, it is really simple and easy to learn. Scripts to perform basic
    actions will be single commands anyway.

    Almost all aspects of CarMa are accessible through scripting.
    Volume/sound control, file handling, GPS handling, playlist control, etc.

    Note: scripting documentation will be found on our Wiki pages.


    GPS
    CarMa supports GPS's out of the box. It enables skins to use the
    realtime GPS parameters to update screen controls.

    Only serial and NMEA based GPS devices are supported.
    Most consumer GPS devices output NMEA,
    and almost all of the USB-based devices provide a virtual COM port to use.
    You probably shouldn't worry.

    Note: multiple apps accessing a single GPS device is a problem.
    When an application does, it locks the COM-port exclusively.
    No other application can connect or use it.
    There is a solution, however. XPort can be used to share a
    single GPS device to multiple applications.


    Music database
    This is probably one of the most complex parts of CarMa.
    Due to our experiences with some of the popular front-ends,
    we had a couple of important requirements. To name a couple:
    it has to be crash-proof, redundant, auto-recovery,
    fast loading/saving/indexing, must support huge amounts of data, etc.

    We evaluated and tested a handful of database engines, but in the end,
    We chose memory-tables, and implemented the extra requirements.
    The DB is fast, extremely compact, secure and crash-proof.
    If there's a power-outage, an application crash or a Win-crash,
    no data will be lost- and will resume from the last state before the crash.


    Library browsing
    CarMa provides a couple of filters to browse through the music collection.
    These filters allow the user to browse the library in a logical way - Via ID3 tags
    E.g.: by artists, by albums, by genre or year, etc.


    Playlist selections
    No-Tec already wrote some about the playlists.
    These playlists are user-selected or dynamically chosen by the system.
    If the user wants, CarMa can try to select music based on the listening
    statistics and ratings.



    As you can see, a lot of work has already been done, but a lot of work
    still needs to be done. In the end, it will be a very nice addition to
    your CarPC we think!

    And of course we're open to questions and suggestions!
    We are more than happy to answer them.
    Suggestions and requests can be left at the other topic.


    Thanks for your patience!
    jsn

  • #2
    wow that looks nice! I'd love to be in the beta if possible!
    Planning {[][][][][][][][][][]} 100%
    Funding {[][][][][][][][][][]} 100%
    Construction {[][][][][][][][][][]} 60%

    Comment


    • #3
      Hi tominated,
      Thank you for your reply!

      A bit about beta testing.
      The application is not ready for testing yet. We will announce this when we think it is up to it.
      Unfortunately this will take another couple of weeks, but as said before, it's more of a moving target.
      Some problems/solutions still have to be researched.

      We're thinking about a beta qualification test.
      You probably shouldn't worry, a very small amount of technical knowledge is a big plus. (f.i. editing xml, looking into log-files, etc)
      We just want the first group to give clear reports if there is something wrong.
      The exact requirements, or procedures, for beta testing will be put online when we're ready.


      We want to give you the best experience ofcourse!

      Comment


      • #4
        mark me on that list also, been following this project when you first announced it was in C# because im a C# developer... still looks great even tho you switched. but id be very happy to help test!

        Comment


        • #5
          Hi dhantiflag!

          Cool, more and more people tracking this project.
          We will make notice of ppl wanting to test, but details come later.

          C# was indeed a candidate. We carefully looked at the pro's and con's of each
          development environment. Both can be easily applied, but in the end, Delphi won.

          The reason was simple; we already have a very developed 2D rendering engine,
          fast databases and it just starts way faster after a clean system boot.
          Although Delphi is slowly fading away from the development scene, we still think
          it provides us the best solution for this particular project.

          Comment


          • #6
            obdII support would be soo nice

            Comment


            • #7
              Put me down as well. Using rr at the moment but I'm very interested in this and have a pretty heavy programming background so I'd be interested in testing and giving input. Never used Delphi before but reading through some documentation on it, I may switch a couple of my custom apps over to it.

              Comment


              • #8
                Digg Guy, that's great news. We're definitely going to be looking for contributors for plugins once we release a public build. We will add you to the list.
                My CarPC

                Comment


                • #9
                  can't wait for more pics!!

                  Comment


                  • #10
                    Delphi is not really needed to interface with CarMa!
                    We will try to implement a couple of methods to interface with the application.

                    One viable method could be using a built-in webservice.
                    This is compatible with the .NET framework.
                    A plugin can be an application consuming this webservice to control a lot of aspects.

                    Another viable method is using DLLs and interfaces.
                    These plugins conform to a certain interface which the application knows how to access.
                    A special callback interface will then be available from within the plugin.

                    A third method under consideration will be using 01d-sch001 API calls.
                    Although the 2 mentioned before will be prefered. (Personally, I don't think there is any need
                    for this, but who knows)

                    And ofcourse, we will listen to your suggestions too!


                    Anyway; I should get back to work

                    Comment


                    • #11
                      I'm really liking this skin...You guys are doing a great job.
                      When you get through with the beta testing with the guys that have experience with programming and scripting ect....Are you going to open it up to non tech guys for a smoke test? I've been told with enough time I can destroy an anvil. I'd like to help though. When you start the open beta I'd love to try it out as a non tech user. I might be able to look at it from a different perspective. All I need is HD radio, GPS, and MP'3 to be happy
                      Keep it up this skin is really looking professional.

                      TJ

                      Comment


                      • #12
                        tjbrewster, for sure we are going to open it up for public beta. audio, video and gps are at the top of our list but radio, xm, serius, and all that stuff isn't quite just yet. We will definitely have it down the road though. Thank you for the compliments though, we appreciate it.
                        My CarPC

                        Comment


                        • #13
                          sugestion: dont forge to suport mkv extension for videos

                          Comment


                          • #14
                            How's it looking guys??

                            Comment


                            • #15
                              We have finished all of the audio/playlist/music portion of CarMa but now we are just spending the next week or so picking out all of the bugs and trying to get all of the kinks we can find in just this area. This is the biggest application that JSN and I have ever worked on so there is a bit of a learning curve and rewriting to do.

                              So yes it is taking a bit longer than originally anticipated but in the end it will be for the better and help progression move more smoothly.

                              We appreciate the continued interest though mate.
                              My CarPC

                              Comment

                              Working...
                              X