No announcement yet.

Change Log

This topic is closed.
This is a sticky topic.
  • Filter
  • Time
  • Show
Clear All
new posts

  • Change Log

    Download it from here.

    Ok. I finally got tired of *****ing about the things that I don't like about what is currently available and have started doing something about it.

    CarFrontEnd (no, i'm not to creative with names ) takes it's inspiration from AMP and TatraApp/QCar. I was going for the look and feel of AMP/FrontRow, but I wanted the expandability of the TatraApp/QCar plugin model.

    I have been running various versions of this in my car for a few weeks now, though I haven't loaded this version (performance, a few UI tweaks) yet (but it works on my PB). These by no means a final product, just what I believe is a stable-ish Alpha build.

    Currently the only support it has is for music via iTunes. I plan to add some other support, but it will only be for things that my wife and I want. If there is something you want, feel free to ask but I made the plugin support so that someone else can add features that i'm not interested in. I'm not trying to be a PITA about it, but this is primarily for my wife and I and I just hope someone else finds it useful and that others want to expand it to fit their needs.

    So first I will explain the screen shots that I have, what i'm planning, explain how to install it, then show an "example" (my iTunes player) plugin that will hopefully get others started.

    The UI:

    It is sized for 800x480 full screen, but it will expand for higher res displays. I do not recommend using it for a lower resolution.

    This is the screen you see when you start CFE.
    In the upper right is the date/time. You can control the format with the international preferences it uses the separate date and time configurations rather than requiring you to combine both into a time setting (like the menubar trick).

    Between the date/time and the "Menu" button are the Quick Slot buttons. The Quick Slots are used to access plugins that you use on a frequent basis. There are a total of 3 buttons, but they are only visible if there are plugins available for them. If there are more than 3 plugins loaded, you can select which plugins are accessed by the Quick Slots from the Menu screen.

    The Menu button will load the menu content (see below) into the content area.

    The last two buttons bring up the volume window (see below) and (un)mute the audio respectively.

    The area to the right of all the buttons is the content area. This is where the plugins content is displayed (see the iTunes plugin for an example).

    This is the volume window and it will appear in the center of the screen when you click the button with the speaker and +/- image. This window will disappear ~3 seconds after you use any of the windows functions (including spawning it).

    The left button reduces the current volume by one level (0 - 100) while the right button raises it by one level. These buttons are to assist in fine tuning the volume while the slider allows you to make more drastic changes.

    This is the "Menu" view. These buttons need image replacements.

    The "Hide" button hides the App so you can access your Desktop and other applications.

    The "Quit" button is hopefully obvious

    The "R Drv" button swaps the position of the main controls to the opposite side of the screen. This is for users in areas that use right hand drive vehicles. This button will then change to "L Drv" to allow you to switch back. (Go on. Play with it. You know you want to ). Here is an example of the swapped UI:

    The Plugins area contains a button for each plugin that is loaded. Click the desired button and it will load the plugin's content view.

    If there are more than 3 plugins loaded a button will become visible that will put the buttons in a mode to update the Quick Slots. To modify the Quick Slots:
    1. Click the Modify button.
    2. Click the OK button on the popup window that describes what you need to do (the following steps).
    3. Click the Plugin button that you would like to assign to a Quick Slot.
    4. Click the Quick Slot button that you would like to assign it to.
    5. Repeat for additional plugins if desired.
    6. Click the Done button (the Modify button with different text) when you are finished.

    This is the content for the iTunes plugin.

    And here it is when you have the driver side swapped.

    When you load the plugin, it will start (if it isn't already) iTunes and start playing the currently selected playlist. When you switch to another plugin (the Menu), it will stop updating the UI but will not pause iTunes.

    Across the top is the playlist control. The "<<" and ">>" buttons select the previous and next playlists respectively. These buttons will cause the playlist name in the big button to change. Click the big button to change to the given playlist. It should show your Library, iPods, CDs, and the Radio playlist (I haven't seen what it does with an mp3 CD) and all their playlists. Finally you have the "Eject" button, if you have a source selected that can be ejected (iPod, CD, etc..) this will eject it for removal.

    The center area is track info (art, artist, album, track name, time slider, current time, duration). You can use the time slider to skip around in the track.

    The bottom set of buttons controls iTunes. The "<<" and ">>" are previous and next track accordingly. The ">" will change to "||" when a track is playing and visa-versa. The last two buttons are for shuffling and repeat modes respectively and work like they do in iTunes.

    What i'm planning (in no specific order):
    *) Build a sysinfo plugin. CPU, Memory, network, etc.. graphs. I want to do this to show off that the graphics on the plugin buttons are being updated regularly (e.g. the button will show the CPU utilization) and because I care about these sorts of things

    *) Write my own Music player rather than using iTunes and AppleScript.

    *) Add AppleRemote support.

    *) Make it AppleScriptable/support non-TouchScreen control. (11/28/07 - Partially done with Key Binding support).

    How to install it:
    1) Download the CarFrontEnd Installer, uncompress it, and run it.


    Change Log:
    08/12/2007 - 1.0a2
    1) Moved the plugin buttons to the Menu view and added Quick Slot functionality to the Main screen in place of the original plugin buttons.

    2) Modified the CarFrontEndButton (CarFrontEndAPI.framework) to require the programmer to do less setup to make the buttons display correctly.

    3) Change the previous track button functionality in iTunesMusicPlayer. It now will advance to the beginning of the current track if more than 10 seconds of the track have elapsed. Otherwise it moves to the previous track.

    4) Created an installer!!

    08/02/2007 - 1.0a1
    1) Now open sourced at
    If you would like to contribute to the codebase, please email me at iamgnat at gmail dot com with your Google username and how you would like to contribute (have a plugin idea, what to do graphics, fixing bugs, etc..).

    07/27/2007 - 1.0a1
    1) Fix to timer being fired when a device (iPod, CD, HDD, etc..) is mounted. An infinite loop was possible that would cause the available playlists to not be updated when changes occurred.

    2) If two consecutive tracks had the same duration, the track info would not not change when the track changed. Corrected by using the id from iTunes rather than the duration.
    My pathetic worklog.
    CarFrontEnd (now it's own sub-forum!!!!)

  • #2

    FYI: I have updated the CarFrontEnd application to fix a couple of bugs. You can use the link in the first page, but here it is for connivence. You only need to replace the application for this update, the framework is unchanged at this point.

    Once installed, you can verify you are running the correct version by looking at the version id on the first screen at startup (should say v1.0a1).

    1) Fix to timer being fired when a device (iPod, CD, HDD, etc..) is mounted. An infinite loop was possible that would cause the available playlists to not be updated when changes occurred.

    2) If two consecutive tracks had the same duration, the track info would not not change when the track changed. Corrected by using the id from iTunes rather than the duration.

    My pathetic worklog.
    CarFrontEnd (now it's own sub-forum!!!!)


    • #3

      I checked in and tagged a new version of the code on Wed night, but I haven't gotten a new compiled version up yet (sorry, tied up with Beckham-mania last night (as an aside, it's good to see that even he can't save that sorry *** team )). I apparently have some more debugging to do though It works fine on my PowerBook (10.5, G4) and my MacPro (10.4, Intel), but the iTunes plugin (thus making it pretty useless) isn't loading on the Mini (10.4, Intel) I should have time to track the issue down tonight though.

      This update will require a new version of CarFrontEnd AND CarFrontEndAPI.framework to be loaded (an installer is next on my list). This change includes the "previous track" navigation changes I mentioned previously, but is mainly focused on Plugin management.

      What you are used to seeing is one small button with the iTunes icon on the main screen (there are actually 6 buttons total in 3 rows of 2, but the others are disabled due to lack of plugins) and just the Hide and Quit buttons in the Menu view.

      What you will see now (I will update the screen shots when it is working on my Mini) is a button a little over twice as wide (there are now 3) on the main screen. These will now be referred to as Quick Slots. On the Menu view, the area below the Hide and Quit buttons (they are now CarFrontEndButtons) is given over to Plugin management. You will see a button for each loaded plugin on this screen. If there are more than 3 plugins available, you will have the ability to assign which plugin you wish a Quick Slot to launch.

      The idea is that there will be plugins that you access on a common basis, but you might have other plugins loaded that you don't use as frequently. You would assign the common ones to the Quick Slots, then no matter what you should be able to get to it with a single click. For the plugins that aren't in the Quick Slots, it should be two clicks to launch them (the Menu button, then the Plugin).

      Things I need to do before I "release" it:
      1) Figure out why it isn't working on my Mini.
      2) Like an idiot, I used NSRunAlertPanel() for part of the plugin management (lazy ). The result is that it pops the window below CFE so you can't see it, but CFE is stuck waiting on your input.

      Hopefully I will have something tonight or tomorrow for everyone (nothing like having a Mother-in-law staying with you to make you go hide and write code ).

      My pathetic worklog.
      CarFrontEnd (now it's own sub-forum!!!!)


      • #4
        1.0a2 released

        I have released the 1.0a2 version of CFE. This version includes changes to both the application and framework.

        I have updated the first comment in this thread with the new screen shots, download/install instructions, and full change log.

        It now has an Installer!!!! So no more forgetting to install the framework

        Warning: It still isn't working on my Mini, but it is working on every other PPC or Intel box i've tried it on (it's OS and iTunes are a little out of date though, so i'm going to try to bring it in and get that updated to see if it helps).

        Let me know if anyone has issues.


        P.S. One of the memory slots on my PB died this weekend (2nd time in 2 years ), so I probably won't do too much on CFE until i'm back up to my full amount (hopefully this week sometime).
        My pathetic worklog.
        CarFrontEnd (now it's own sub-forum!!!!)


        • #5
          1.0a3 released

          I have released the next version of CarFrontEnd and it is available from the usual place.

          1. Right sided driver support -
            There is now a new button on the Menu screen that changes between "L Drv" and "R Drv" and swaps the main view controls (date/time, QuickSlots, Menu, and Volume/Mute buttons) from the left side to the right (and vis-a-versa).
          2. Volume window location -
            Moved the volume window so that it appears at the bottom of the screen rather than the middle. It will pop to the corner associated with the driver side setting (e.g. left for left and right for right).
          3. (for developers) Title bar for window in Debug mode -
            If you build CarFrontEnd in Debug mode, there is now a title bar for the window. This lets you move it around which should make using the debugger a bit easier

          Please post any issues that you have.

          My pathetic worklog.
          CarFrontEnd (now it's own sub-forum!!!!)


          • #6
            1.0a4 released

            Two bug fixes in this release. If you already upgraded to 1.0a3 it is highly recommend that you upgrade to this version.

            1. AppleScript corrected for the Next Track button in the iTunes plugin so that it will not blank the screen (was trying to launch iTunes visuals).
            2. IB action links fixed for the Quick Slot buttons so they actually work.
            My pathetic worklog.
            CarFrontEnd (now it's own sub-forum!!!!)


            • #7
              1.0a5 released

              Two more bug fixes:
              1. Unable to click any buttons.
                Due to bad placement bindings in the NIB, the buttons could appear under the NSView for the splash/intro view in some resolutions and therefore not receive user input. Fixed the placement bindings.
              2. Button image artifacting when swapping driver side.
                Added a setNeedsDisplay: call to the mainView after the swap.

              My pathetic worklog.
              CarFrontEnd (now it's own sub-forum!!!!)


              • #8
                1.0a6 released

                I have updated CFE to 1.0a6.

                The major change with this release is that those damnable vertical lines on the buttons should be gone now!!!
                I'm still not generating the buttons like I want, but i'l take no lines over nothing.

                The other change I have made is clean up CarFrontEndButton in the CarFrontEndAPI framework to behave a bit more like a Cocoa button (responding to correct messages, etc..). I also added support for it to respond to NSNotifications to change it's colors (a feature for developers).

                Enjoy and let me know if anyone has issues.

                My pathetic worklog.
                CarFrontEnd (now it's own sub-forum!!!!)


                • #9
                  1.0a7 released

                  I have released 1.0a7 with the following changes:
                  • Messaging support for plugins to communicate with CarFrontEnd and each other.
                  • Driver side swap (via messaging) throughout the UI and the iTunes plugin.

                  Enjoy and let me know if anyone finds any issues.

                  My pathetic worklog.
                  CarFrontEnd (now it's own sub-forum!!!!)


                  • #10
                    1.0a8 released

                    I'm sorry for the insane delay on getting this next version out, but here it is finally. It turns out that being laid off from my job was a good thing as I don't think I would have ever gotten to re-doing these buttons without the dedicated time I spent on it

                    This is by far the largest change since the initial release, but I hope it doesn't come with a relative number of bugs

                    This release also marks the first contribution to CFE from someone else. The new button images were supplied by bpwnd (so yell at him if you don't like them ). Hopefully there will be more to follow.

                    Change Log:
                    • Added images to the iTunes plugin.
                    • Added images for Volume control.
                    • Added Key Bindings support.
                    • Updated the volume window to span the entire width of the screen to make fine tuning with large fingers easier.
                    • Updated the volume window controls to be volume up/down vs mute/max.
                    • Added CFEApplication sub-class of NSApplication.
                    • Added Key Bindings methods to PluginManager.
                    • Fixed typo in the changeRepeatMode: method of iTunesViewController.
                    • The main window no longer is a shielding window (e.g. always on top) when using a Debug build.
                    • Added Key Binding protocol to PluginManager.h
                    • Changed CarFrontEndButton images to be dyanmically generated!!!

                    If anyone has comments/questions/bugs, please start a new thread for it.

                    I'm gonna go read Tai-pan and Gai-jin now, so unless it's a critical bug i'm not touching the code for awhile

                    Next on my list will be to have the UI be navigable by a keyboard (tab/space) for finer control with something like the Power Mate.

                    My pathetic worklog.
                    CarFrontEnd (now it's own sub-forum!!!!)


                    • #11
                      1.0a9 Released

                      As mentioned in the "Status of CFE" thread, i'm taking a hiatus from active development on CFE. As with this update, if bugs are found or something is needed to make developing plugins easier (and isn't too involved to add) i'm happy to do what needs to get done.

                      This update was to fix a minor bug as well as add some support for Plugin development.

                      Change Log:
                      1. Fixed placement of elapsed time and track length fields in the iTunes plugin when the height of the screen is greater than 480.
                      2. Added -mainWindow method to the PluginManager to provide a pointer to the main CarFrontEnd window.
                      3. Added support for Plugins to respond to -viewWasMadeVisible and -viewWillBeRemovedFromView. See the Plugin Development thread for more details.

                      If you find bugs or have any other problems, please open a new thread with as many details as possible and i'll do my best to help you out.

                      My pathetic worklog.
                      CarFrontEnd (now it's own sub-forum!!!!)


                      • #12
                        1.0a10 Released

                        Nothing much here, but I wanted to get it out.

                        As always, let me know if you find anything.

                        Change Log:
                        1) Fixed play/pause bug in iTunesMusicPlayer where it could not start playing a track after the next or prev track buttons were used while the current track was paused.
                        2) Added Current Track Index and Playlist track count to iTunesMusicPlayer.

                        My pathetic worklog.
                        CarFrontEnd (now it's own sub-forum!!!!)


                        • #13
                          Version 2008-03-19 released

                          A few changes for this build.
                          1. The source repository and tagging have been completely reworked.
                          2. Added a script to build and package CFE to make release builds easier.
                          3. Minor fix to iTunes key bindings (next & previous track were using the wrong arrow keys).
                          4. I'm no longer using the CFE version for the installer name, instead it uses the release date.
                          5. There is a new plugin!!!!!!!

                          Yes, you read that correctly! There is indeed a new plugin in this release. Even better, i'm not the developer! Yes, someone else from the forum has contributed to CFE!!! I'm not going to describe it here, I will let the developer start a new thread for it and then i'll sticky it for him.

                          Unfortunately right now there is no option to not install the plugin, so if you install this version of CFE you will get it. If you don't like it, nuke the /Library/PlugIns/CarFrontEnd directory (or just it's contents). I'm experimenting with automated building and packaging and haven't gotten the kinks out yet. Hopefully i'll be able to get that fixed up so you can better pick and choose what and where to install.

                          As always, if you have a question or find a problem please start a thread about it and i'll look into it.

                          My pathetic worklog.
                          CarFrontEnd (now it's own sub-forum!!!!)