I think I miss when this was introduced, but I’ve discovered that in multiple place of Haiku code, near some code returning a vector icon data (cf B_GET_VECTOR_ICON ioctl implemented in multiple drivers for instance), there is also this other B_GET_ICON_NAME ioctl which returns a “icon name” string instead.
Only in the storage kit I could find some userland code that actually call it to try to load a vector icon data from an external resource, by its name, by looking for a file under the followed root directories:
/boot/home/config/non-packaged/data/icons/<icon name>
/boot/home/config/data/icons/<icon name>
/boot/system/non-packaged/data/icons/<icon name>
/boot/system/data/icons/<icon name>
Except by default there is nothing there. And it then fallback to use B_GET_VECTOR_ICON to retrieve the HVIF icon raw data.
But there are many icons files under /boot/system/data/icons/haiku/*, but all are in SVG format, not HVIF.
I guess this icon name concept is to allow end user to customized its set of icons (and slowly prepare the whole Haiku to support this possibility) ?
Or to move all currently hardcoded HVIF raw bytes out of source code files, but something get lost since?
I’m wondering because recently I added support in midi_server for MIDI devices to expose their own custom vector icons, and I was wondering if I should also support, then, this concept of icon name too.