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