implmented ID functions, need to implemented id commands
git-svn-id: https://svn.musicpd.org/mpd/trunk@1407 09075e82-0dd4-0310-85a5-a0d7c8717e4f
This commit is contained in:
parent
1ca828c49d
commit
304639c9a6
@ -463,6 +463,32 @@ int playlistInfo(FILE * fp, int song) {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# define checkSongId(id) { \
|
||||||
|
if(id < 0 || id >= PLAYLIST_HASH_MULT*playlist_max_length || \
|
||||||
|
playlist.idToNum[id] == -1 ) \
|
||||||
|
{ \
|
||||||
|
commandError(fp, ACK_ERROR_NO_EXIST, \
|
||||||
|
"song id doesn't exist: \"%i\"", id); \
|
||||||
|
return -1; \
|
||||||
|
} \
|
||||||
|
}
|
||||||
|
|
||||||
|
int playlistId(FILE * fp, int id) {
|
||||||
|
int i;
|
||||||
|
int begin = 0;
|
||||||
|
int end = playlist.length;
|
||||||
|
|
||||||
|
if(id>=0) {
|
||||||
|
checkSongId(id);
|
||||||
|
begin = playlist.idToNum[id];
|
||||||
|
end = begin+1;
|
||||||
|
}
|
||||||
|
|
||||||
|
for(i=begin; i<end; i++) printPlaylistSongInfo(fp, i);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
void swapSongs(int song1, int song2) {
|
void swapSongs(int song1, int song2) {
|
||||||
Song * sTemp;
|
Song * sTemp;
|
||||||
int iTemp;
|
int iTemp;
|
||||||
@ -634,7 +660,6 @@ int swapSongsInPlaylist(FILE * fp, int song1, int song2) {
|
|||||||
"song doesn't exist: \"%i\"", song2);
|
"song doesn't exist: \"%i\"", song2);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if(playlist_state==PLAYLIST_STATE_PLAY) {
|
if(playlist_state==PLAYLIST_STATE_PLAY) {
|
||||||
if(playlist.queued>=0) {
|
if(playlist.queued>=0) {
|
||||||
@ -673,6 +698,14 @@ int swapSongsInPlaylist(FILE * fp, int song1, int song2) {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int swapSongsInPlaylistById(FILE * fp, int id1, int id2) {
|
||||||
|
checkSongId(id1);
|
||||||
|
checkSongId(id2);
|
||||||
|
|
||||||
|
return swapSongsInPlaylist(fp, playlist.idToNum[id1],
|
||||||
|
playlist.idToNum[id2]);
|
||||||
|
}
|
||||||
|
|
||||||
#define moveSongFromTo(from, to) { \
|
#define moveSongFromTo(from, to) { \
|
||||||
playlist.idToNum[playlist.numToId[from]] = to; \
|
playlist.idToNum[playlist.numToId[from]] = to; \
|
||||||
playlist.numToId[to] = playlist.numToId[from]; \
|
playlist.numToId[to] = playlist.numToId[from]; \
|
||||||
@ -748,6 +781,12 @@ int deleteFromPlaylist(FILE * fp, int song) {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int deleteFromPlaylistById(FILE * fp, int id) {
|
||||||
|
checkSongId(id);
|
||||||
|
|
||||||
|
return deleteFromPlaylist(fp, playlist.idToNum[id]);
|
||||||
|
}
|
||||||
|
|
||||||
void deleteASongFromPlaylist(Song * song) {
|
void deleteASongFromPlaylist(Song * song) {
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
@ -839,6 +878,16 @@ int playPlaylist(FILE * fp, int song, int stopOnError) {
|
|||||||
return playPlaylistOrderNumber(fp,i);
|
return playPlaylistOrderNumber(fp,i);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int playPlaylistById(FILE * fp, int id, int stopOnError) {
|
||||||
|
if(id == -1) {
|
||||||
|
return playPlaylist(fp, id, stopOnError);
|
||||||
|
}
|
||||||
|
|
||||||
|
checkSongId(id);
|
||||||
|
|
||||||
|
return playPlaylist(fp, playlist.idToNum[id], stopOnError);
|
||||||
|
}
|
||||||
|
|
||||||
void syncCurrentPlayerDecodeMetadata() {
|
void syncCurrentPlayerDecodeMetadata() {
|
||||||
Song * songPlayer = playerCurrentDecodeSong();
|
Song * songPlayer = playerCurrentDecodeSong();
|
||||||
Song * song;
|
Song * song;
|
||||||
@ -1032,6 +1081,14 @@ int moveSongInPlaylist(FILE * fp, int from, int to) {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int moveSongInPlaylistById(FILE * fp, int id1, int id2) {
|
||||||
|
checkSongId(id1);
|
||||||
|
checkSongId(id2);
|
||||||
|
|
||||||
|
return moveSongInPlaylist(fp, playlist.idToNum[id1],
|
||||||
|
playlist.idToNum[id2]);
|
||||||
|
}
|
||||||
|
|
||||||
void orderPlaylist() {
|
void orderPlaylist() {
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
@ -1398,3 +1455,9 @@ int seekSongInPlaylist(FILE * fp, int song, float time) {
|
|||||||
|
|
||||||
return playerSeek(fp, playlist.songs[playlist.order[i]], time);
|
return playerSeek(fp, playlist.songs[playlist.order[i]], time);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int seekSongInPlaylistById(FILE * fp, int id, float time) {
|
||||||
|
checkSongId(id);
|
||||||
|
|
||||||
|
return seekSongInPlaylist(fp, playlist.idToNum[id], time);
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user