1 diff --git a/src/command.c b/src/command.c
2 index 2140173..aad82cc 100644
5 @@ -335,6 +335,26 @@ int cmd_play ( int argc, char ** argv, mpd_Connection * conn )
9 +int cmd_playid ( int argc, char ** argv, mpd_Connection * conn )
14 + if(0==argc) song = MPD_PLAY_AT_BEGINNING;
16 + for(i=0;i<argc-1;i++)
17 + printf("skipping: %s\n",argv[i]);
19 + if(!parse_songnum(argv[i], &song))
20 + DIE("error parsing song numbers from: %s\n",argv[i]);
23 + mpd_sendPlayIdCommand(conn,song);
24 + my_finishCommand(conn);
30 cmd_seek(mpd_unused int argc, mpd_unused char **argv, mpd_Connection *conn)
32 diff --git a/src/command.h b/src/command.h
33 index e68f433..5a9d896 100644
36 @@ -28,6 +28,7 @@ int cmd_add ( int argc, char ** argv, mpd_Connection * conn ) ;
37 int cmd_crop ( int argc, char ** argv, mpd_Connection * conn );
38 int cmd_del ( int argc, char ** argv, mpd_Connection * conn );
39 int cmd_play ( int argc, char ** argv, mpd_Connection * conn );
40 +int cmd_playid ( int argc, char ** argv, mpd_Connection * conn );
41 int cmd_next ( int argc, char ** argv, mpd_Connection * conn );
42 int cmd_prev ( int argc, char ** argv, mpd_Connection * conn );
43 int cmd_pause ( int argc, char ** argv, mpd_Connection * conn );
44 diff --git a/src/main.c b/src/main.c
45 index c0fd83c..1ce0a4c 100644
48 @@ -58,6 +58,7 @@ struct _mpc_table {
49 {"crop", 0, 0, 0, cmd_crop, "", "Remove all but the currently playing song"},
50 {"del", 0, -1, 1, cmd_del, "<position>", "Remove a song from the current playlist"},
51 {"play", 0, -1, 2, cmd_play, "[<position>]", "Start playing at <position> (default: 1)"},
52 + {"playid", 0, -1, 2, cmd_playid, "[<id>]", "Start playing at track <id>"},
53 {"next", 0, 0, 0, cmd_next, "", "Play the next song in the current playlist"},
54 {"prev", 0, 0, 0, cmd_prev, "", "Play the previous song in the current playlist"},
55 {"pause", 0, 0, 0, cmd_pause, "", "Pauses the currently playing song"},