HOW TO INSTALL the Kodi QQ Logo mod for Aeon Nox: Silvo skin:
(Last Updated: 8 April 2024) - XML files are now for Kodi 21 (Omega) only. I've removed all files for earlier versions of Kodi.
The skin modification to show source logos is based on the Kodi official skin: Aeon Nox: Silvo as released with Kodi v21.
NOTE: You must first install that skin from the Kodi Repository (in Look and Feel).
I have modified three Aeon Nox Silvo skin files:
MusicVisualisation.xml
Variables.xml
Fonts.xml
This latest mod has the same QQ logo files as Kodi 20 (created and/or modified codec logos in previous mods)
You can download the two modified three xml files and all the logos from these links:
Logos (unzip the files after download):
https://reva.blob.core.windows.net/kodimods/Kodi21/QQLogos.zip
Thanks to those members here on QQ that provide and tweaked some logos!
XML files:
For Kodi 21 Omega Release (Aeon Nox Silvo 9) use these XML files:
https://reva.blob.core.windows.net/kodimods/Kodi21/XMLfiles.zip
EDIT: (Removed all previous Kodi version files)
The Kodi addons folder location will depend on your Kodi device's operating system:
FOR WINDOWS:
Its in the current user folder (usually C: drive):
C:\Users\[USER NAME]\AppData\Roaming\Kodi\addons
NOTE: You may need to check 'Hidden Items' in the Windows Explorer Details tab to see these folders
For Linux:
Its in:
/usr/share/.kodi/addons
FOR LINUX (LibreElec and CoreElec):
The folder is:
storage/.kodi/addons
You can access the Linux device's
storage folder from a Windows PC by following this post:
https://www.quadraphonicquad.com/fo...nux-libreelec-coreelec-etc.26972/#post-442128
In the
addons folder (from your device above) look for a folder named:
skin.aeon.nox.silvo
Within the skin.aeon.nox.silvo folder there are two folders:
16x9 - copy the three files: MusicVisualisation.xml, Variables.xml and Fonts.xml into that folder (overwrite or rename the original files prior)
media - Create a new sub-folder within named '
QQLogos', now copy all the QQLogos files from the zip file you downloaded into the new
QQLogos folder
NOTE: Linux and Android are case sensitive. QQLogos is not the same as qqlogos
You can restart/reboot, its ready to use!
WARNING: By default the Aeon Nox Silvo skin will auto update if your Kodi is connected to the internet and the skin is updated by the developer. It likely the two XML files modified will get overwritten. So if this mod suddenly disappears just re-copy XMLs again (as above) and you also need to recreate the
QQLogos folder and copy the QQ Logos. You can also set the Aeon Nox Silvo skin NOT to auto-update in Kodi's System, Addons, MyAddons section - select the Aeon Nox Silvo skin and you can turn off its auto update.
How does this work:
This mod will display logos by reading certain user defined text from the album folder name. Examples for Pink Floyd albums:
Atom Heart Mother (
Quad Q8)
Dark Side of the Moon (
SACD)
Dark Side of the Moon (
Atmos)
Wish You Were Here (
Quad BDA)
So no need to re-tag any music files, just add a ‘codec/format’ to the folder name as shown above. Valid Codecs are in the Rules section below and are user definable. You will need to rescan your Music Library in Kodi for it to see the any albums with changed folder names.
Users can modify the 'rules' I've defined and/or modify/add new logo files to the QQ Logos folder (named QQLogos ):
The
Variables.xml file contains the rules for selecting the desired logo based on a user defined string (text) in the rule condition. This is just a simple xml text file that can be edited easily. (you must restart Kodi for any changes to be applied).
This is what the current variable definition is for '
QQCodecFromPathvar' is:
Code:
<variable name="QQLogoFromPathvar">
<value condition="String.Contains(Player.Folderpath,SACD)">QQLogos/SACD.png</value>
<value condition="String.Contains(Player.Folderpath,DVDA)">QQLogos/mlp.png</value>
<value condition="String.Contains(Player.Folderpath,DVD-A)">QQLogos/mlp.png</value>
<value condition="String.Contains(Player.Folderpath,DTS 9624)">QQLogos/dts9624.png</value>
<value condition="String.Contains(Player.Folderpath,DTS9624)">QQLogos/dts9624.png</value>
<value condition="String.Contains(Player.Folderpath,ADVD)">QQLogos/DVDV.png</value>
<value condition="String.Contains(Player.Folderpath,DVDV)">QQLogos/DVDV.png</value>
<value condition="String.Contains(Player.Folderpath,DVD-V)">QQLogos/DVDV.png</value>
<value condition="String.Contains(Player.Folderpath,360)">QQLogos/360.png</value>
<value condition="String.Contains(Player.Folderpath,Quad BDA)">QQLogos/BDA.png</value>
<value condition="String.Contains(Player.Folderpath,Quad SQ)">QQLogos/QuadSQ.png</value>
<value condition="String.Contains(Player.Folderpath,Quad Q8)">QQLogos/QuadQ8.png</value>
<value condition="String.Contains(Player.Folderpath,Quad QR)">QQLogos/QuadQR.png</value>
<value condition="String.Contains(Player.Folderpath,Quad Reel)">QQLogos/QuadQR.png</value>
<value condition="String.Contains(Player.Folderpath,Quad QS)">QQLogos/QuadQS.png</value>
<value condition="String.Contains(Player.Folderpath,Quad CD4)">QQLogos/QuadCD4.png</value>
<value condition="String.Contains(Player.Folderpath,Quad Q4)">QQLogos/QuadQ4.png</value>
<value condition="String.Contains(Player.Folderpath,Quadradisc)">QQLogos/quadradisc.png</value>
<value condition="String.Contains(Player.Folderpath,Penteo)">QQLogos/penteo.png</value>
<value condition="String.Contains(Player.Folderpath,Upmix)">QQLogos/upmix.png</value>
<value condition="String.Contains(Player.Folderpath,Quad)">QQLogos/quadraphonic.png</value>
<value condition="String.Contains(Player.Folderpath,BDA)">QQLogos/BDA.png</value>
<value condition="String.Contains(Player.Folderpath,BDV)">QQLogos/BDA.png</value>
<value condition="String.Contains(Player.Folderpath,Multitrack)">QQLogos/multitrack.png</value>
<value condition="String.Contains(Player.Folderpath,Atmos)">QQLogos/dolbyatmos.png</value>
<value condition="String.Contains(Player.Folderpath,DTSX)">QQLogos/dtsx.png</value>
<value condition="String.Contains(Player.Folderpath,DTS-CD)">QQLogos/dtssurround.png</value>
<value condition="String.Contains(Player.Folderpath,DTSCD)">QQLogos/dtssurround.png</value>
<value condition="String.Contains(Player.Folderpath,DTS CD)">QQLogos/dtssurround.png</value>
<value condition="String.Contains(Player.Folderpath,DTSDVD)">QQLogos/dtssurround.png</value>
<value condition="String.Contains(Player.Folderpath,Dolby DVD)">QQLogos/dolbydigital.png</value>
<value condition="String.Contains(Player.Folderpath,DTS DVD)">QQLogos/dtssurround.png</value>
<value condition="String.Contains(Player.Folderpath,DSF)">QQLogos/dsd.png</value>
<value condition="String.Contains(Player.Filename,.flac)">QQLogos/flac.png</value>
<value condition="String.Contains(Player.Filename,.dsf)">QQLogos/dsd.png</value>
<value condition="String.Contains(Player.Filename,.dff)">QQLogos/dsd.png</value>
<value condition="String.Contains(Player.Filename,.mp3)">QQLogos/mp3.png</value>
</variable>
This works as a ‘stacked’ rule list, when run, each rule is sequentially tested (top down), and if its condition is True the value is returned and no further rules below the last rule are tested.
In the first rule:
<value condition="String.
Contains(
Player.Folderpath,
SACD)">
QQLogos/SACD.png</value>
The condition (test) means: If the current
playing file's folder path contains the word '
SACD' then return the logo file name '
SACD.png' from the
QQLogos folder.
So its easy to add a new rule (copy a line and modify) or to change a rule to check for different text value or use a different logo file.
NOTE: In Linux and Android filenames are case sensitive (Example: FileName.png is not the same as filename.png). In Windows they are seen as the same file.
I have also added a new variable used in this mod named 'QQNoOfChannelsFromPathvar'. This variable is used to update the Number Of Channels based on rules. This enables the use of the word 'Quad' instead of '4' and 'Stereo' instaed of 2 etc and to use immersive codec names like 'Atmos' instead of '8' (the Core channel count).
The new variable basically returns 'Quad' for any album path with the word 'Quad' in it, likewise 'Atmos' and 'DTS:X', otherwise it looks at the number of channels and returns it converted to MCH naming:
Code:
<variable name="QQNoOfChannelsFromPathvar">
<value condition="String.IsEqual(MusicPlayer.Channels,4)">Quad</value>
<value condition="String.Contains(Player.Filename,Quad) + String.Contains(Player.Folderpath,Penteo)">4.1</value>
<value condition="String.Contains(Player.Folderpath,Quad) + !String.Contains(Player.Folderpath,Quad Penteo)">4.1</value>
<value condition="String.Contains(Player.Folderpath,Quad)">Quad</value>
<value condition="String.Contains(Player.Folderpath,Atmos) + String.Contains(MusicPlayer.Codec,eac3)">Atmos EAC3</value>
<value condition="String.Contains(Player.Folderpath,Atmos) + String.Contains(MusicPlayer.Codec,truehd)">Atmos TrueHD</value>
<value condition="String.Contains(Player.Folderpath,DTSX)">DTS:X</value>
<value condition="String.IsEqual(MusicPlayer.Channels,5)">5.0</value>
<value condition="String.IsEqual(MusicPlayer.Channels,6)">5.1</value>
<value condition="String.IsEqual(MusicPlayer.Channels,8)">7.1</value>
<value condition="String.IsEqual(MusicPlayer.Channels,2)">stereo</value>
<value condition="String.IsEqual(MusicPlayer.Channels,1)">mono</value>
<value>$INFO[MusicPlayer.Channels]</value>
</variable>
Thanks for all the logos supplied.
I encourage all users to continue to modify these rules and logos, create new rules and logos and share them here for all QQers using Kodi.
If anyone has any ideas on 'Quadifying' Kodi further please post your ideas!!
THX
Garry