Allow waiting for specific track counts with specific timeouts

This commit is contained in:
Thulinma 2021-01-27 17:23:55 +01:00
parent 4e48896237
commit 10b134d062

View file

@ -318,11 +318,20 @@ namespace Mist{
if (!isInitialized){initialize();}
meta.reloadReplacedPagesIfNeeded();
if (getSupportedTracks().size()){
size_t minTracks = 2;
size_t minMs = 5000;
if (targetParams.count("waittrackcount")){
minTracks = JSON::Value(targetParams["waittrackcount"]).asInt();
minMs = 120000;
}
if (targetParams.count("maxwaittrackms")){
minMs = JSON::Value(targetParams["maxwaittrackms"]).asInt();
}
if (!userSelect.size()){selectDefaultTracks();}
size_t mainTrack = getMainSelectedTrack();
if (mainTrack != INVALID_TRACK_ID){
DTSC::Keys keys(M.keys(mainTrack));
if (keys.getValidCount() >= 2 || M.getLastms(mainTrack) - M.getFirstms(mainTrack) > 5000){
if (keys.getValidCount() >= minTracks || M.getLastms(mainTrack) - M.getFirstms(mainTrack) > minMs){
return true;
}
HIGH_MSG("NOT READY YET (%zu tracks, main track: %zu, with %zu keys)",