If you read my previous post on the subject, you are aware of the neat possibilities of the Mazda Infotainment system on 2015+ vehicles. I’ve been pretty busy with other things to dig too deeply unfortunately but I did get a chance to dig a little deeper into the audio UI code.
Jason commented about how he’d like to look more into the Audio controls, which makes a tons of sense to address first because I’m pretty sure all of us use the audio player more than anything else in the vehicle.
I looked in the gui/apps/ folder to see what was there. A few things of interest:
- usbaudioApp – Handles talking to your USB stick, playing and indexing the audio files there.
- btaudio – Bluetooth audio obviously.
- audiosettings – This is Jason’s interest I assume.
- amradio – take a guess
- fmradio – yep. am’s best buddy.
- cd – maybe a silver disk type thing.
- pandora – music service
- satradio – satellite radio controls if you have installed.
- stitcher – stitcher’s app. (uhg.. could be so much better.)
- aharadio – the aha app
- dvd – DVD? huh? This deserves more investigation.
There are a few other apps that peaked my interest as well, but that’s another post probably. Let’s look at the audiosettings App.
Most of the app folders seem to consist of a js/ folder, a css/ folder and maybe an images/ folder. Makes sense for a web app. I dug into the JS folder which had just a single
audiosettingsApp.js file. Here’s the header:
/* Copyright 2012 by Johnson Controls __________________________________________________________________________ Filename: audiosettingsApp.js __________________________________________________________________________ Project: JCI-IHU Language: EN Author: aalangs Date: 25-July-2012 __________________________________________________________________________ Description: IHU GUI Audiosettings App Revisions: v0.1 (31-Jul-2012) New message handlers have been added to handle AudioSettingsStatus and VolumeSettingsStatus - aalangs v0.2 (02-Aug-2012) New message handlers have been removed to handle AudioSettingsStatus and VolumeSettingsStatus Control title is updated as per the payload data - aalangs v0.3 (07-Aug-2012) AudioSettingsStatus and VolumeSettingsStatus are updated in audio title instead of control title - aalangs v0.4 (03-Sep-2012) Merged to match the SCR framework related changes - aalangs v0.5 (12-Sep-2012) Merged ump control changes as per SCR - SCR00098475 - aalangs v0.6 (24-Sep-2012) Generated English dictionary using dictionary compiler. Closed GENERAL COMMENTS ACROSS APPS given by Arun - arsu v0.7 (01-Oct-2012) Updated with sliders & toggle button as per latest doc - arsu v0.8 (03-Oct-2012) Review comments closed by Petar - arsu v0.9 (12-Oct-2012) AutoVolume Range is changed to 0 to 7 - arsu v1.0 (30-Oct-2012) Updated to close SCR SW00100965 as per notes from Douglas & Chris - aalangs, arsu v1.1 (31-Oct-2012) Added upadte from Alexander for hiding HUD tab - aalangs v1.2 (06-Nov-2012) Updated to - support removing the menu optons if Bose unavalable or not & removed diagnostic Activation - aalangs v1.3 (08-Nov-2012) Added support for App Name in Status Bar - aalangs v1.4 (15-Nov-2012) Added volume display patch on Status Bar - aalangs v1.5 (20-Nov-2012) Updated to match new common design - aalangs v1.6 (26-Nov-2012) Updated to use slider methods as per new ListCtrl design - aalangs v1.7 (13-Dec-2012) Updated as per new UI spec changes - aalangs v1.8 (07-Jan-2013) Updated to use List2Ctrl - text truncation - aalangs Removed VolumeTab - aalangs v1.9 (29-Jan-2013) Added support to remove auto volume when bose is detected - amanthma v1.10(29-Jan-2013) Removed check for finalAdjustment in _listMainSlideCallback - amanthma v1.10(08-Feb-2013) Added left button style as Go Back - amanthma v1.11(27-Feb-2013) Added context validity checks & helper functions - aalangs v1.12(21-Mar-2013) Volume requirement change SBN implementation - aalangs v1.13(10-Apr-2013) Clock Settings moved to Clock Tab - amanthma v1.14(12-Apr-2013) Support removal of HUD tab using shared data - aalangs v1.15(19-Apr-2013) Update gui audiosettings app to use string ids of common dictionary - 3.80 (latest) - aalangs v1.16(13-May-2013) Support removal of HUD tab using shared data corrections - aalangs v1.17(13-May-2013) Implement Global GoBack - aalangs v1.18(15-May-2013) Correction added to HUDStatus check - aalangs v1.19(22-May-2013) Convert Amplifier Volume to String when sending to sbnctrl - aalangs v1.20(31-May-2013) use registered and trademark symbols for Bose features - aalangs v1.21(05-June-2013) GUI App must specify tabsGroup - aalangs v1.22(07-June-2013) Use string ids for left and right labels instead of just strings - aalangs v1.23(17-June-2013) Max Volume on the GUI is set to 63 instead of 64 for SBNs - aalangs v1.24(18-June-2013) GUI_AUDIOSETTINGS Truncation Ideation Updates - aalangs v1.25(08-July-2013) Changed the list item style for Fade and Balance to pivot - aalangs v1.25(22-July-2013) Updated toggle API for styleOnOff - aalangs v1.26(26-July-2013) Updated to show tick marks on sliders - aalangs v1.27(26-July-2013) Updated to include missing conditions for Beep etc - aalangs v1.28(30-June-2014) Updated to include J03K Bose Configuration ________________________________________________________________________ */
Sum it up..
There’s lots of code to setup the interface. Nothing too exciting there, but I noticed there seems to be support for two audio systems, the factory standard (which is what I have) and the Bose audio system. Not a lot different between the two, notably a ‘audioPilotValue’ variable for the Bose system, which I have no idea what that is. Also Bose seems to support an ‘audioCenterPoint’ function, which I can’t really play with either.
framework.sendEventToMmui() which I assume is the interface to the hardware. Unfortunately it seems all the magic happens there. This application just is an interface for the UI to that. Boring.