Initialize controller in two steps

There is a dependency cycle in the initialization order:
 - keyboard depends on controller
 - controller depends on acksync
 - acksync depends on keyboard initialization

To break this cycle, bind the async instance to the controller in a
second step.
This commit is contained in:
Romain Vimont 2024-02-24 22:33:48 +01:00
parent ea96552751
commit a96e222dab
5 changed files with 19 additions and 12 deletions

View file

@ -25,8 +25,11 @@ struct sc_controller {
};
bool
sc_controller_init(struct sc_controller *controller, sc_socket control_socket,
struct sc_acksync *acksync);
sc_controller_init(struct sc_controller *controller, sc_socket control_socket);
void
sc_controller_set_acksync(struct sc_controller *controller,
struct sc_acksync *acksync);
void
sc_controller_destroy(struct sc_controller *controller);