On 2009/03/27 03:51, Jeffrey Middleton jefr...@gmail.com wrote:
I thought it was worth clarifying part of the move range command: it moves
the first song in the given range to the destination position, and the rest
of the range follows it. (This much is said in the commit message)
This is not what your code does. Imagine move 0:10 1, if you'd move
this one by one, you would interchange swap the first two songs over
and over.
This can be counterintuitive; for example, to move the range to the
end of the playlist, the destination is the length of the range
short of the end of the playlist. Similar trickiness to move to a
desired position between two existing songs. This will mean some
work on the client side, unfortunately. However, the alternative -
having the block move to just after (or before) the song in the
indicated position - makes things as simple as moving the block down
one difficult - you have to specify a position one after the end of
the range, rather simply the position one greater than the starting
position. To sum up, I think this is the method that makes the most
sense, but am quite open to suggestions.
I believe the approach you chose in your code was the best: the
destination position is the new position of the first item in the
range. Everything else will be more complicated (to understand and to
implement), because of overlapping ranges and possible playlist
corruption if you do it wrong...
Max
--
___
Musicpd-dev-team mailing list
Musicpd-dev-team@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/musicpd-dev-team