~ruther/qmk_firmware

59657355d22cd6f661fda307675c6f712b5542ec — Fred Sundvik 9 years ago f7275f0
Master mode remains active

It remains active even if the USB link is suspended or otherwise
temporarilly goes down.
1 files changed, 3 insertions(+), 1 deletions(-)

M serial_link/system/system.c
M serial_link/system/system.c => serial_link/system/system.c +3 -1
@@ 88,11 88,13 @@ static THD_FUNCTION(serialThread, arg) {
        EVENT_MASK(2),
        CHN_INPUT_AVAILABLE);
    bool need_wait = false;
    bool is_master = false;
    while(true) {
        if (need_wait) {
            chEvtWaitAnyTimeout(ALL_EVENTS, MS2ST(1000));
        }
        bool is_master = usbGetDriverStateI(&USBD1) == USB_ACTIVE;
        // Always stay as master, even if the USB goes into sleep mode
        is_master |= usbGetDriverStateI(&USBD1) == USB_ACTIVE;
        router_set_master(is_master);

        need_wait = true;