The following is a proposal for a specification for MSP Displayport fonts.
A dpfont package shall be a folder of .png images of font pages for various flight-controller glyph maps with the following accompanying dpfont.json metadata file:
{
"name": "My Cool Font",
"version": "1.0.0",
"author": "Your Name <email@example.com>",
"license": "ISC",
"homepage": "https://github.com/awesomeuser/awesomefont",
"supports": [
{
"identifier": "BTFL",
"min_version": "4.4",
"files": {
"24x36": ["bf44_hd_1.png", "bf44_hd_2.png"],
"36x54": ["bf44_sd_1.png", "bf44_sd_2.png"]
}
},
{
"identifier": "BTFL",
"min_version": "4.0",
"max_version": "4.3", //optional
"files": {
"36x54": ["bf40_sd.png"]
}
}
]
}
- rename to .osdfont?
- kill the ZIP packaging? unnecessary complexity?
- elaborate on .png dimensions, glyph indexing and pages
An implementation should always pick the font with the biggest valid min_version
for a given FC identifier and version if multiple versions are available.
max_version
is optional and can be used to restrict a font from being used with newer incompatible versions when a newer compatible version isn't available (as the prior min_version
rule would take precedence regardless of max_version if a newer version is available).
Both min_version
and max_version
can be a partial semver string in order to allow for matching against minor patch releases that are released after the font update. This means for example that a max_version
of "4.4.0" should not match against an FC version of "4.4.1", however a max_version
of "4.4" should match against "4.4.1".
For the purpose of manual installation, dpfont folders should be distributed and installable as a ZIP file with the extension .dpfont with all files present in the root of the ZIP archive.