do these methods really need these types in the name? Don't we get enough distinction from having the type in the params?

Seems like setSetting(const char* settingName, float value); would be sufficient?

Also, these methods should be const;