Rémi Bernon (@rbernon) commented about dlls/dmband/bandtrack.c:
+ MUSIC_TIME prev = -1, next = time;
- TRACE("(%p, %s, %ld, %p, %p)\n", This, debugstr_dmguid(type), time, next, param); + TRACE("(%p, %s, %ld, %p, %p)\n", This, debugstr_dmguid(type), time, out_next, param);
if (!type) return E_POINTER; if (!IsEqualGUID(type, &GUID_BandParam)) return DMUS_E_GET_UNSUPPORTED;
- FIXME("GUID_BandParam not handled yet\n"); + bandparam = param;
+ LIST_FOR_EACH_ENTRY(band, &This->bands, struct band_entry, entry) + { + if (band->head.lBandTimeLogical <= time && band->head.lBandTimeLogical >= prev) Adding a few more tests you'll see that this should return the first band even if `lBandTimeLogical >= time`.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/5040#note_60318