Я играл с libspotify и столкнулся с чем-то странным. Параметры индекса для sp_playlistcontainer_move_playlist 0 основаны или 1 основаны? Кажется, они оба, а может и нет :). В частности, если у меня есть три плейлиста, я замечаю следующие результаты:
sp_playlistcontainer_move_playlist (дескриптор, 0, 3, false)
завершается успешно и перемещает список воспроизведения с индексом 0 (первый в списке списков воспроизведения) в конец списка списков воспроизведения.
sp_playlistcontainer_move_playlist (дескриптор, 0, 1, false)
завершается неудачно, возвращая SP_ERROR_INVALID_INDATA, который в соответствии со спецификациями API, по-видимому, указывает на то, что я «пытаюсь переместить папку в себя». Исходя из этого, я догадался, что входной (исходный) индекс равен 0, а целевой индекс равен 1. Это странно, но это
sp_playlistcontainer_move_playlist (дескриптор, 0, 2, false)
действительно перемещает первый список воспроизведения (из индекса 0) во второй слот в списке списков воспроизведения (в том, что я назвал бы индексом 1, но, по-видимому, равен 2 в соответствии с libspotify).
Конечно, это также работает
sp_playlistcontainer_move_playlist (дескриптор, 2, 0, ложь)
так что, возможно, целевой индекс не основан на 1 ... или 0 - только в специальном регистре. Мысли?