BUG FIX - multiple binds for a given event were created when many windows wanted it

This commit is contained in:
2026-03-14 21:45:50 +00:00
parent 7caad7149e
commit f50fc7a87b
+10 -1
View File
@@ -127,7 +127,16 @@ func (i *IRacing) Subscribe(requestFields map[int16]telem.FieldID) {
i.data.ActiveBinds = make([]telem.BoundField, 0, len(requestFields))
boundCheck := make(map[telem.FieldID]bool)
for winID, id := range requestFields {
i.data.Values[id].IDs = append(i.data.Values[id].IDs, winID)
// Check if we already bound this FieldID
if boundCheck[id] {
continue
}
// Translate the UI FieldIDs to this provider's field names
sdkKey, ok := internalToSDKFieldNames[id]
if !ok {
@@ -189,8 +198,8 @@ func (i *IRacing) Subscribe(requestFields map[int16]telem.FieldID) {
}
}
i.data.Values[id].IDs = append(i.data.Values[id].IDs, winID)
i.data.ActiveBinds = append(i.data.ActiveBinds, binding)
boundCheck[id] = true
}
i.logger.Debug(fmt.Sprintf("Subscribed: %+v\n", i.data.ActiveBinds))