Announcement

Collapse
No announcement yet.

High performance RR like frontend - Alpha testversion

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • High performance RR like frontend - Alpha testversion

    Hi!

    Today i provide you my quick hack of a new frontend. It is based partialy on the rr concept and it only exists, cause changing rr for my needs would take the same time, i think. There is another frontend "velocity", which i wanted 2 use, but unfortunately there is no source available.

    This frontend is 6 times faster then rr and probably one of the fastest possible frontend in a "high" programming language (C#). This means: cpu load with rr: 60% -> now 10%. Why fastest possible? In the whole program there is no loop and no timer - everything is event based, also in the flash skin. So the framerate of the skin does not affect performance, as it does with rr.

    In this version you can test the music playback - main skin and audio browser are included.

    If you have a small hardware (like me) or want 2 use heavier flash skins or you want a cooler cpu, then try it out.

    How 2 run it?
    You need:

    Winamp 5.x
    ActiveWinamp http://sourceforge.net/projects/activewinamp/
    .Net 2.xx
    Flash Player 9.x

    Please note: In the file audiobrowser.skin you must change the line
    O,FB1,Carmen.FileBrowser,t:\sound,10,1
    and replace t:\sound with the path 2 your music files...

    Have fun
    Reflex


    Edit:
    I've attached an update - this includes a new build with internal gps support and external application support (tested with destinator)...
    Just extract the files from CarmenAlpha02.rar over the old ones from the first release.
    Please check .skin files 4 com port, path and so on.

    Edit2:
    minor update - some bugfixes, main menu changed 2 slow it down *g*
    Edit3:
    major update - audio skin, winamp media library skin, bugfixes, transparent skin - etc
    please note to configure now also "carmen.ini"
    Edit4:
    Possible crash @ start and gps reading fixed - log file added.
    Edit5:
    major update - video browser (based on media player 9), big cover art (in audio skin press "Cover"),
    OSK integration (you need autoit installed 2 use the osk...)
    Edit6:
    Beta version released
    monschein.org

  • #2
    This looks interesting and has potential for Epia-M 500 users like me.

    Comment


    • #3
      if there is some interest, i could post a new version with:

      - internal gps support (automatic volume adaption)
      - external application support (destinator 6 for example)

      if you want 2 do your own skin (or you can adapt an rr flash skin - its very easy), i can give you a short how-to...
      monschein.org

      Comment


      • #4
        Please do !

        If this turns out well, maybe my SP13000 can live a while longer

        Comment


        • #5
          @HaPe: did you already tested, if it runs on your machine?
          Please post some test results (CPU load, Hibernation ok, etc)...

          I have a Celeron 500 MHz and i have 10% load - Hibernation (also during playback) runs perfect -> continues to play and normal screen update...
          monschein.org

          Comment


          • #6
            Hey Reflex

            I'm guessing the event based model is a very similar one to the one in Velocity. Which is not a problem, since I put my thoughts and designs for others to benefit from.

            As I said in our conversations on MSN, I'm happy to share the source code with co-developers. But the project isn't open source project. It's free for everyone to use, and free for developers to develop for. The only time I wanted to charge someone, is if they used the framework to make some money themselves, by selling a plug-in for example.

            I guess this didn't appeal to you and therefore you started this new project. Please don't get me wrong, I have nothing against you starting your own project, and it can be an exact replica of Velocity without bothering me at all. I would wish you all the best with it genuinely.

            It's just that with two minds, and two sets of complementing skills (Java/C#), a lot more can be achieved. I've already solved many of the design-problems you have/will face, and no doubt you have done/will do the same.


            You have my msn if you want to talk about that, but that aside, I'm interested to know the mechanism you're using to talk to/from Flash to .net?

            Sama
            Current:
            [BMW E46 ///M3 Convertible]

            Previous:
            [BMW E31 850CSi]|[BMW E39 535i]|[BMW HVAC Research]|[IBUS Scrolling Text]|[BMPuter]|[Velocity]|[TomTom]|[Vision]|[Space Navigator Driver]|[Super Fast Boot]

            Comment


            • #7
              Hi sama,

              i think it was a missunderstanding, cause i thought you wont share the source. I still can help you with some code (maybe the destinator wrapper). But thats not the only reason i've started a new project...

              - in C# its easier to access controls and dlls
              - in C# its easier to embedd and host external applications
              - i dont need any other plattform then windows
              - my main focus is on music playback, not video
              - i wanted 2 use activewinamp, cause of media library support

              The mechanism of the flash communication:
              C# -> Flash:
              Code:
              moForm.axShockwaveFlash.CallFunction("<invoke name=\"" + sName + "\" returntype=\"xml\"><arguments><string>" + sValue + "</string></arguments></invoke>");
              in Flash you have to register callbacks like:
              Code:
              ExternalInterface.addCallback("VOLUME", this, Volume);
              Flash -> C#:
              in Flash you call fscommand(command, parameter)
              and in C# i have a command dispatcher based on a hashtable of available commands, who calls the registered callback(s). Every component can register itself by the dispatcher - for example the audioplayer registers the command "PLAY" to his callback "PlayMusic"...

              Thanks 4 your inspiration with velocity and i wish you also the best with it. It has a great potential! I hope you find the time to finish it!

              Best regards
              Reflex

              PS: I will call you later on msn...
              monschein.org

              Comment


              • #8
                Thanks for the help with the destinator plugin, I may well take you up on that offer!

                Interesting comms approach. I wonder how it would handle a large volume of data from C#->Flash, such as a huge list of files? (if the user searches for * for instance).
                Current:
                [BMW E46 ///M3 Convertible]

                Previous:
                [BMW E31 850CSi]|[BMW E39 535i]|[BMW HVAC Research]|[IBUS Scrolling Text]|[BMPuter]|[Velocity]|[TomTom]|[Vision]|[Space Navigator Driver]|[Super Fast Boot]

                Comment


                • #9
                  Originally posted by sama View Post
                  Interesting comms approach. I wonder how it would handle a large volume of data from C#->Flash, such as a huge list of files? (if the user searches for * for instance).
                  *ggggg* nice try...

                  There is no huge list of files, cause the backend only transfers what the user can see. If you take a look @ the ini files you can see some numbers behind the filebrowser and audioplaylist objects - they indicate how many items the object sends to the frontend. Just make a test...
                  monschein.org

                  Comment


                  • #10
                    for file lists or playlists.. in rr you just pass a single variable to flash, which is made up of every track seperated by chr(13). Then the flash takes care of the splitting and arranging. If you then want to load / play anything in that list, you just send two commands ie.. goto;13 (goes to number 13 in the array).. then play.

                    Just passing a single variable is lots easier than trying to pass some sort of array list. Its very easy to code for in flash as well.
                    Follow me on Twitter

                    http://www.FreeICE.co.uk

                    Comment


                    • #11
                      @cdrskull:

                      RR transfers the whole filelist, as sama speculated...
                      I transfer only the files who are "visible" to the user, but that does not mean i send something else then a string...its the same string as rr transfers.

                      Play and goto command exist like in rr.
                      As i wrote in the title its "rr like"...

                      You have great skins, maybe you give it a try and adapt one (or only the main menu for testing)? Its easy...
                      monschein.org

                      Comment


                      • #12
                        hehe, I'm not trying anything I'm just interested in how you solved that part. As you know, I decided not to use fscommand and went for a TCP/IP approach, which has implications for Flash 8's primitive tcp handling. Flex which I'm currently working on upgrading the code to, doesn't have these issues.

                        I used pagination to solve it, which is more or less what you're doing. Only showing part of the data as required.
                        Current:
                        [BMW E46 ///M3 Convertible]

                        Previous:
                        [BMW E31 850CSi]|[BMW E39 535i]|[BMW HVAC Research]|[IBUS Scrolling Text]|[BMPuter]|[Velocity]|[TomTom]|[Vision]|[Space Navigator Driver]|[Super Fast Boot]

                        Comment


                        • #13
                          i cant download this the links dont seem to work?

                          Comment


                          • #14
                            @sama: i thought fscommand is only working, when you have control over the flash container - so you must use something other, or i am wrong with this?

                            @astrapc: its posted directly in the forum, there is no link
                            monschein.org

                            Comment


                            • #15
                              you can use exec on fscommand to launch a command, and using that, pass params to an external app if you want using a custom command line. too hacky for my liking.
                              Current:
                              [BMW E46 ///M3 Convertible]

                              Previous:
                              [BMW E31 850CSi]|[BMW E39 535i]|[BMW HVAC Research]|[IBUS Scrolling Text]|[BMPuter]|[Velocity]|[TomTom]|[Vision]|[Space Navigator Driver]|[Super Fast Boot]

                              Comment

                              Working...
                              X