Code

screen: moved screen_interface externs to each screen header
[ncmpc.git] / src / screen_play.c
index 5cc3457592878492362a7ff04df9390b759922a9..ceb13616662197b076a0316e9fdfbb3dc735a971 100644 (file)
@@ -17,6 +17,8 @@
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
+#include "screen_play.h"
+#include "screen_interface.h"
 #include "screen_file.h"
 #include "config.h"
 #include "i18n.h"
 #include "utils.h"
 #include "strfsong.h"
 #include "wreadln.h"
-#include "command.h"
 #include "colors.h"
 #include "screen.h"
 #include "screen_utils.h"
-#include "screen_play.h"
+#include "screen_song.h"
+#include "screen_lyrics.h"
 
 #ifndef NCMPC_MINI
 #include "hscroll.h"
@@ -39,9 +41,7 @@
 #include <mpd/client.h>
 
 #include <ctype.h>
-#include <stdlib.h>
 #include <string.h>
-#include <time.h>
 #include <glib.h>
 
 #define MAX_SONG_LENGTH 512
@@ -662,22 +662,17 @@ play_cmd(struct mpdclient *c, command_t cmd)
                mpdclient_cmd_play(c, lw->selected);
                return true;
        case CMD_DELETE:
-       {
-               int i = lw->selected_end, start = lw->selected_start;
-               for(; i >= start; --i)
-                       mpdclient_cmd_delete(c, i);
-
-               i++;
-               if(i >= (int)playlist_length(&c->playlist))
-                       i--;
-               lw->selected = i;
-               lw->selected_start = i;
-               lw->selected_end = i;
-               lw->range_selection = false;
+               if (lw->range_selection) {
+                       mpdclient_cmd_delete_range(c, lw->selected_start,
+                                                  lw->selected_end + 1);
+               } else {
+                       mpdclient_cmd_delete(c, lw->selected);
+               }
 
-               playlist_save_selection();
+               lw->selected = lw->selected_end = lw->selected_start;
+               lw->range_selection = false;
                return true;
-       }
+
        case CMD_SAVE_PLAYLIST:
                playlist_save(c, NULL, NULL);
                return true;