|
|
@ -307,18 +307,13 @@ auto TrackBrowser::GetRecordByIndex(std::size_t index) |
|
|
|
} |
|
|
|
} |
|
|
|
ESP_LOGI(kTag, "total tracks %u, getting index %u", total_tracks, index); |
|
|
|
ESP_LOGI(kTag, "total tracks %u, getting index %u", total_tracks, index); |
|
|
|
|
|
|
|
|
|
|
|
std::size_t current_index = 0; |
|
|
|
|
|
|
|
for (const auto& page : current_pages_) { |
|
|
|
for (const auto& page : current_pages_) { |
|
|
|
if (index > current_index + page->values().size()) { |
|
|
|
for (int i = 0; i < page->values().size(); i++) { |
|
|
|
current_index += page->values().size(); |
|
|
|
if (index == 0) { |
|
|
|
continue; |
|
|
|
return page->values().at(i); |
|
|
|
} |
|
|
|
} |
|
|
|
if (index < current_index) { |
|
|
|
index--; |
|
|
|
// uhhh
|
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
std::size_t index_in_page = index - current_index; |
|
|
|
|
|
|
|
return page->values().at(index_in_page); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
return {}; |
|
|
|
return {}; |
|
|
|
} |
|
|
|
} |
|
|
|