diff --git a/.gitignore b/.gitignore index 7adfd53..df2458d 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ gdigi *.orig *.swp images/gdigi_icon.h +core diff --git a/gdigi.c b/gdigi.c index fe8441d..aff2f59 100644 --- a/gdigi.c +++ b/gdigi.c @@ -388,6 +388,8 @@ MessageID get_message_id(GString *msg) #define HEX_WIDTH 26 +static guint modifier_linkable_list_request_pending; + void push_message(GString *msg) { MessageID msgid = get_message_id(msg); @@ -484,7 +486,11 @@ void push_message(GString *msg) "id %d changed", (str[9] << 8) | (str[10])); - send_message(REQUEST_MODIFIER_LINKABLE_LIST, "\x00\x01", 2); + if (!modifier_linkable_list_request_pending) { + send_message(REQUEST_MODIFIER_LINKABLE_LIST, "\x00\x01", 2); + modifier_linkable_list_request_pending = 1; + } + break; } default: @@ -526,6 +532,8 @@ void push_message(GString *msg) case RECEIVE_MODIFIER_LINKABLE_LIST: + + modifier_linkable_list_request_pending = 0; unpack_message(msg); tot = (unsigned char)msg->str[9]; @@ -536,6 +544,7 @@ void push_message(GString *msg) printf("\n"); } + update_modifier_linkable_list(msg); g_string_free(msg, TRUE);