set_pattern() calls _init(0) whereas the other commands call _init(1). I've only inspected this (haven't run the code) but the initialisation check on _bus variable in _init() looks like it prevents the i2c "led mode change command" being executed more than once? That would prevent mixing of set_pattern with other commands.
If this is a bug it can be fixed with some rejigging of activity inside _init(). If it was intentional then the behaviour/restriction could be documented perhaps?
set_pattern() calls _init(0) whereas the other commands call _init(1). I've only inspected this (haven't run the code) but the initialisation check on _bus variable in _init() looks like it prevents the i2c "led mode change command" being executed more than once? That would prevent mixing of set_pattern with other commands.
If this is a bug it can be fixed with some rejigging of activity inside _init(). If it was intentional then the behaviour/restriction could be documented perhaps?