2012-03-05 9 views
0

私はlibspotifyで遊んでいて、少し奇妙なことに遭遇しました。 sp_playlistcontainer_move_playlistのインデックスパラメータは0ベースか1ベースですか?libspotify APIインデックスパラメータ。 0ベースまたは1ベース?

sp_playlistcontainer_move_playlist(ハンドル、0、3、偽)

インデックス0でプレイリストを成功し、移動(:彼らは両方、または多分どちらも:)私は、私は次のような結果に気づく3つのプレイリストを持っている。具体的場合のように見えますプレイリストのリストの最初のもの)をプレイリストのリストの最後に追加します。

sp_playlistcontainer_move_playlist(偽のハンドル、0、1、)

APIの仕様に応じて、私は「自分自身の中にフォルダを移動しようとしている」午前示しているようだSP_ERROR_INVALID_INDATAを返し、失敗しました。それで、入力(オリジナル)インデックスは0ベースで、ターゲットインデックスは1ベースであると推測しました。これは奇妙ですが、この

sp_playlistcontainer_move_playlist(偽、2、0を扱う)

は、私がどうなるかで、プレイリストのリスト(第二のスロットに(インデックス0からの)最初のプレイリストを動くように見えるんコールインデックス1、しかし明らかにlibspotifyによると2)。もちろん

これも

sp_playlistcontainer_move_playlist(偽、0、、2を扱う)

はので、多分、ターゲットインデックスは1ベースではありません...または多分0同棲だけの特別なものです動作します。思考?

答えて

0

0ベースです。それは実際には、OPませんので、操作は常に

  • が1に0を移動何が行われる前に、リストの状態でインデックスを取り、そう...

    移動は、拒否されます。

  • は、第二の位置(インデックス1)に最初の(インデックス0)プレイリストを移動するにはあなたはそれがインデックス1で、現在だプレイリストの後になりたいので、あなたが実際にインデックス2、に移動します。 libSpotifyは、インデックス0をインデックス1の後に移動し、すべてを1スロット下に移動してインデックス0にある空きギャップを埋めるようにトランザクションを「コミット」します。

+0

ターゲットインデックスはあなたが前にしたいリスト内のアイテムです。したがって、0から1への移動は、0が既に1より前にあるので意味をなさないが、0から2への移動は、スロット1のアイテムがスロット0の場合、スロット0の以前の項目はスロット1(2の前)に移動します。私はまだ奇妙なことだと思いますが、もし私がスロット3に移動すれば(つまり、リストの最後にインデックス2が最後の '有効な'インデックスです)、newPositionが3であると言った移動コールバックを取得します。現実は2です。 –

関連する問題