2004 to 2020 Mazda 3 Forum and Mazdaspeed 3 Forums banner

1 - 3 of 3 Posts

·
Registered
Joined
·
71 Posts
Discussion Starter #1
Hi all,

I have been working on my own modifications to the base USB audio app in the CMU; details below in the change log. The biggest things I wanted to do was add long press play (click hold) which I did! The long press play mod uses existing functionality within the List2Ctrl. I have been running it for the last few days without issue and I consider it complete (unless a critical bug rears its head or I decide I want some other feature).

This was all done on v59.00.441A NA so keep that in mind if you want to use these. If you are on a different version, you will want to compare the base files to your version to see if you can just drop in and go. Otherwise, you will need to modify them yourself. Most of my changes in the files are denoted by the string "---MZDMOD---" to help you find my changes. It is possible I missed some of the changes which is why you should do a file compare against the base file. I might consider creating a set of files for other firmware versions if there is demand and people ask nicely. :)

Finally, if you decide to use any of these, YOU DO SO AT YOUR OWN RISK. I would advise a few things:

1. Change your root password (if new CMU user)
2. Restore SSH (if disabled)
3. Ensure the watchdog is disabled

Messing with the USB audio app is dangerous if you don't do the above. If you break the USB audio app in some way, the GUI will freeze every time you plug in a USB drive. If you do all 3 of those (which most of you have/should if you are on this forum), then you can recover via USB tweaks or SSH if you broke something (like I did once when I forgot a semi-colon).

Change Log

  1. Long press (click hold) folders/all songs to play
  2. Add new icon for USB root menu on the UMP control
  3. Removed "More like this" button from UMP control
  4. Added folders button to UMP control
  5. Set folders and song list icons correctly (were switched) on UMP control
  6. Removed "/" character from folder names for list control and title of now playing control
  7. Workarounds implemented for now playing control title issue and song list issue (for long press)
  8. Add folder and song icons to the list control
  9. Add folder and playlist icons to now playing control
  10. Updated list control for shorter scroll and long press timeouts
  11. Removed beeps for scrolling and long press for list control
  12. Larger album artwork

Additional Notes and Musings

  • The song list play bug where the view changes (list to tree) is still present and not worth trying to workaround IMO due to context issues.
  • I removed the "More like this" button because it doesn't work well or at all in my experience. It happens a lot with USB drives with large libraries like my main drive. The button could easily be swapped back in instead of the folders button.
  • I learned a lot from doing this in how the MMUI and the JS apps work. Sadly, the available websocket events from the MMUI leaves a lot to be desired and with how context is handled and used in the JS apps, it makes it very difficult to implement new features. You can workaround them like I did but it is really bad to do so.
  • I'm also working on adding marquee (scrolling text) features to the list and now playing controls. I actually had it working for both but the marquee plugin I was using seemed to have performance issues. I think it was related to the plugin itself. Now I'm in the process of updating the CSS files and creating my own plugin which will use Velocity for animation. I'm hoping this will address the performance issues otherwise I'm going to scrap this and live with it. I will not sacrifice stability and performance for something which is basically aesthetic.
  • I spent some time looking at the USB audio binaries in radare2 and noticed a lot of interesting things. I'm a general n00b in this arena so it was mainly to find events I could potentially use (and it was fun because I rarely work with assembly). For example, shuffle by artist or album are there but they appear to not be tied to the shuffle mode event (or any event for that matter). Anyone out there good with reverse engineering want to take a look at the binaries and see if they can enable some of these features?
  • I did find something pretty hilarious while I was exploring the USB audio binaries. It looks like someone at JCI doesn't like Siri and has a sense of humor.
 

Attachments

·
Registered
Joined
·
11 Posts
It seems like a great job, congratulations !!!

Let's see if I update and try
 

·
Treveloper
Joined
·
534 Posts
Hi all,

I have been working on my own modifications to the base USB audio app in the CMU; details below in the change log. The biggest things I wanted to do was add long press play (click hold) which I did! The long press play mod uses existing functionality within the List2Ctrl. I have been running it for the last few days without issue and I consider it complete (unless a critical bug rears its head or I decide I want some other feature).

This was all done on v59.00.441A NA so keep that in mind if you want to use these. If you are on a different version, you will want to compare the base files to your version to see if you can just drop in and go. Otherwise, you will need to modify them yourself. Most of my changes in the files are denoted by the string "---MZDMOD---" to help you find my changes. It is possible I missed some of the changes which is why you should do a file compare against the base file. I might consider creating a set of files for other firmware versions if there is demand and people ask nicely. :)
Hey man, awesome work. I wanted to let you know something I found while making AIO. Almost all the newer core js files are backward-compatible with earlier FW but the earlier are not forward-compatible (which is often the cause of bootloops). List2Ctrl.js is definitely one that is backward-compatible at least back to v55 (Just adds some styles and some small additions) and NowPlaying4Ctrl.js is not only backward-compatible but has a major improvement that is also backward-compatible (the '_setInnerTextOrHTML' method). And since the newest known FW is 59.00.443 I'm pretty confident that you don't need to make any more FW specific installs to have this work on all FW from 55-59.

Also I found an error in your installer. You reference the last 3 files to copy with the path '$DIR/files/usbaudio/' but the files are actually located at '$DIR/files/'
 
1 - 3 of 3 Posts
Top