Commit 05c91082 authored by Max Kellermann's avatar Max Kellermann

playlist: convert to C++

parent 7267558b
...@@ -115,9 +115,9 @@ mpd_headers = \ ...@@ -115,9 +115,9 @@ mpd_headers = \
src/output/httpd_internal.h \ src/output/httpd_internal.h \
src/page.h \ src/page.h \
src/player_control.h \ src/player_control.h \
src/playlist.h \ src/Playlist.hxx \
src/playlist_error.h \ src/playlist_error.h \
src/playlist_internal.h \ src/PlaylistInternal.hxx \
src/playlist_plugin.h \ src/playlist_plugin.h \
src/playlist_list.h \ src/playlist_list.h \
src/playlist/extm3u_playlist_plugin.h \ src/playlist/extm3u_playlist_plugin.h \
...@@ -132,7 +132,6 @@ mpd_headers = \ ...@@ -132,7 +132,6 @@ mpd_headers = \
src/poison.h \ src/poison.h \
src/riff.h \ src/riff.h \
src/aiff.h \ src/aiff.h \
src/queue.h \
src/refcount.h \ src/refcount.h \
src/replay_gain_config.h \ src/replay_gain_config.h \
src/replay_gain_info.h \ src/replay_gain_info.h \
...@@ -267,9 +266,9 @@ src_mpd_SOURCES = \ ...@@ -267,9 +266,9 @@ src_mpd_SOURCES = \
src/Permission.cxx src/Permission.hxx \ src/Permission.cxx src/Permission.hxx \
src/PlayerThread.cxx src/PlayerThread.hxx \ src/PlayerThread.cxx src/PlayerThread.hxx \
src/PlayerControl.cxx \ src/PlayerControl.cxx \
src/playlist.c \ src/Playlist.cxx \
src/playlist_global.c \ src/PlaylistGlobal.cxx \
src/playlist_control.c \ src/PlaylistControl.cxx \
src/PlaylistEdit.cxx \ src/PlaylistEdit.cxx \
src/PlaylistPrint.cxx src/PlaylistPrint.hxx \ src/PlaylistPrint.cxx src/PlaylistPrint.hxx \
src/PlaylistSave.cxx src/PlaylistSave.hxx \ src/PlaylistSave.cxx src/PlaylistSave.hxx \
...@@ -281,7 +280,7 @@ src_mpd_SOURCES = \ ...@@ -281,7 +280,7 @@ src_mpd_SOURCES = \
src/PlaylistVector.cxx src/PlaylistVector.hxx \ src/PlaylistVector.cxx src/PlaylistVector.hxx \
src/PlaylistInfo.hxx \ src/PlaylistInfo.hxx \
src/PlaylistDatabase.cxx \ src/PlaylistDatabase.cxx \
src/queue.c \ src/Queue.cxx src/Queue.hxx \
src/QueuePrint.cxx src/QueuePrint.hxx \ src/QueuePrint.cxx src/QueuePrint.hxx \
src/QueueSave.cxx src/QueueSave.hxx \ src/QueueSave.cxx src/QueueSave.hxx \
src/replay_gain_config.c \ src/replay_gain_config.c \
...@@ -1339,7 +1338,7 @@ test_test_pcm_LDADD = \ ...@@ -1339,7 +1338,7 @@ test_test_pcm_LDADD = \
$(GLIB_LIBS) $(GLIB_LIBS)
test_TestQueuePriority_SOURCES = \ test_TestQueuePriority_SOURCES = \
src/queue.c \ src/Queue.cxx \
test/TestQueuePriority.cxx test/TestQueuePriority.cxx
test_TestQueuePriority_LDADD = \ test_TestQueuePriority_LDADD = \
$(GLIB_LIBS) $(GLIB_LIBS)
......
...@@ -20,13 +20,9 @@ ...@@ -20,13 +20,9 @@
#include "config.h" #include "config.h"
#include "DatabaseQueue.hxx" #include "DatabaseQueue.hxx"
#include "DatabaseSelection.hxx" #include "DatabaseSelection.hxx"
extern "C" {
#include "playlist.h"
}
#include "DatabaseGlue.hxx" #include "DatabaseGlue.hxx"
#include "DatabasePlugin.hxx" #include "DatabasePlugin.hxx"
#include "Playlist.hxx"
#include <functional> #include <functional>
......
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
#include "config.h" #include "config.h"
#include "Main.hxx" #include "Main.hxx"
#include "CommandLine.hxx" #include "CommandLine.hxx"
#include "Playlist.hxx"
#include "PlaylistFile.hxx" #include "PlaylistFile.hxx"
#include "UpdateGlue.hxx" #include "UpdateGlue.hxx"
#include "MusicChunk.hxx" #include "MusicChunk.hxx"
...@@ -38,7 +39,6 @@ extern "C" { ...@@ -38,7 +39,6 @@ extern "C" {
#include "daemon.h" #include "daemon.h"
#include "io_thread.h" #include "io_thread.h"
#include "idle.h" #include "idle.h"
#include "playlist.h"
#include "conf.h" #include "conf.h"
#include "path.h" #include "path.h"
#include "player_control.h" #include "player_control.h"
......
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
#include "config.h" #include "config.h"
#include "PlayerCommands.hxx" #include "PlayerCommands.hxx"
#include "CommandError.hxx" #include "CommandError.hxx"
#include "Playlist.hxx"
#include "PlaylistPrint.hxx" #include "PlaylistPrint.hxx"
#include "UpdateGlue.hxx" #include "UpdateGlue.hxx"
#include "ClientInternal.hxx" #include "ClientInternal.hxx"
...@@ -28,7 +29,6 @@ ...@@ -28,7 +29,6 @@
extern "C" { extern "C" {
#include "player_control.h" #include "player_control.h"
#include "playlist.h"
#include "volume.h" #include "volume.h"
#include "replay_gain_config.h" #include "replay_gain_config.h"
} }
......
/* /*
* Copyright (C) 2003-2011 The Music Player Daemon Project * Copyright (C) 2003-2013 The Music Player Daemon Project
* http://www.musicpd.org * http://www.musicpd.org
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
...@@ -18,11 +18,14 @@ ...@@ -18,11 +18,14 @@
*/ */
#include "config.h" #include "config.h"
#include "playlist_internal.h" #include "PlaylistInternal.hxx"
#include "player_control.h"
#include "song.h" #include "song.h"
extern "C" {
#include "player_control.h"
#include "conf.h" #include "conf.h"
#include "idle.h" #include "idle.h"
}
#include <glib.h> #include <glib.h>
......
/* /*
* Copyright (C) 2003-2011 The Music Player Daemon Project * Copyright (C) 2003-2013 The Music Player Daemon Project
* http://www.musicpd.org * http://www.musicpd.org
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
...@@ -17,10 +17,10 @@ ...@@ -17,10 +17,10 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/ */
#ifndef MPD_PLAYLIST_H #ifndef MPD_PLAYLIST_HXX
#define MPD_PLAYLIST_H #define MPD_PLAYLIST_HXX
#include "queue.h" #include "Queue.hxx"
#include "playlist_error.h" #include "playlist_error.h"
#include <stdbool.h> #include <stdbool.h>
......
...@@ -31,9 +31,9 @@ ...@@ -31,9 +31,9 @@
#include "protocol/ArgParser.hxx" #include "protocol/ArgParser.hxx"
#include "protocol/Result.hxx" #include "protocol/Result.hxx"
#include "ls.hxx" #include "ls.hxx"
#include "Playlist.hxx"
extern "C" { extern "C" {
#include "playlist.h"
#include "uri.h" #include "uri.h"
} }
......
/* /*
* Copyright (C) 2003-2011 The Music Player Daemon Project * Copyright (C) 2003-2013 The Music Player Daemon Project
* http://www.musicpd.org * http://www.musicpd.org
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
...@@ -23,10 +23,12 @@ ...@@ -23,10 +23,12 @@
*/ */
#include "config.h" #include "config.h"
#include "playlist_internal.h" #include "PlaylistInternal.hxx"
#include "player_control.h"
#include "song.h" #include "song.h"
#include "idle.h"
extern "C" {
#include "player_control.h"
}
#include <glib.h> #include <glib.h>
......
...@@ -24,8 +24,9 @@ ...@@ -24,8 +24,9 @@
*/ */
#include "config.h" #include "config.h"
#include "PlaylistInternal.hxx"
extern "C" { extern "C" {
#include "playlist_internal.h"
#include "player_control.h" #include "player_control.h"
#include "uri.h" #include "uri.h"
#include "song.h" #include "song.h"
......
/* /*
* Copyright (C) 2003-2011 The Music Player Daemon Project * Copyright (C) 2003-2013 The Music Player Daemon Project
* http://www.musicpd.org * http://www.musicpd.org
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
...@@ -23,10 +23,13 @@ ...@@ -23,10 +23,13 @@
*/ */
#include "config.h" #include "config.h"
#include "playlist.h" #include "Playlist.hxx"
#include "event_pipe.h"
#include "Main.hxx" #include "Main.hxx"
extern "C" {
#include "event_pipe.h"
}
struct playlist g_playlist; struct playlist g_playlist;
static void static void
......
/* /*
* Copyright (C) 2003-2011 The Music Player Daemon Project * Copyright (C) 2003-2013 The Music Player Daemon Project
* http://www.musicpd.org * http://www.musicpd.org
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
...@@ -22,10 +22,10 @@ ...@@ -22,10 +22,10 @@
* *
*/ */
#ifndef PLAYLIST_INTERNAL_H #ifndef MPD_PLAYLIST_INTERNAL_HXX
#define PLAYLIST_INTERNAL_H #define MPD_PLAYLIST_INTERNAL_HXX
#include "playlist.h" #include "Playlist.hxx"
struct player_control; struct player_control;
......
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
#include "PlaylistFile.hxx" #include "PlaylistFile.hxx"
#include "PlaylistAny.hxx" #include "PlaylistAny.hxx"
#include "PlaylistSong.hxx" #include "PlaylistSong.hxx"
#include "Playlist.hxx"
#include "QueuePrint.hxx" #include "QueuePrint.hxx"
#include "SongPrint.hxx" #include "SongPrint.hxx"
#include "DatabaseGlue.hxx" #include "DatabaseGlue.hxx"
...@@ -31,7 +32,6 @@ ...@@ -31,7 +32,6 @@
extern "C" { extern "C" {
#include "playlist_list.h" #include "playlist_list.h"
#include "playlist_plugin.h" #include "playlist_plugin.h"
#include "playlist.h"
#include "song.h" #include "song.h"
#include "input_stream.h" #include "input_stream.h"
} }
......
...@@ -22,9 +22,9 @@ ...@@ -22,9 +22,9 @@
#include "playlist_plugin.h" #include "playlist_plugin.h"
#include "PlaylistAny.hxx" #include "PlaylistAny.hxx"
#include "PlaylistSong.hxx" #include "PlaylistSong.hxx"
#include "Playlist.hxx"
extern "C" { extern "C" {
#include "playlist.h"
#include "song.h" #include "song.h"
#include "input_stream.h" #include "input_stream.h"
} }
......
/* /*
* Copyright (C) 2003-2012 The Music Player Daemon Project * Copyright (C) 2003-2013 The Music Player Daemon Project
* http://www.musicpd.org * http://www.musicpd.org
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
...@@ -20,11 +20,11 @@ ...@@ -20,11 +20,11 @@
#include "config.h" #include "config.h"
#include "PlaylistSave.hxx" #include "PlaylistSave.hxx"
#include "PlaylistFile.hxx" #include "PlaylistFile.hxx"
#include "Playlist.hxx"
#include "song.h" #include "song.h"
#include "Mapper.hxx" #include "Mapper.hxx"
extern "C" { extern "C" {
#include "playlist.h"
#include "path.h" #include "path.h"
#include "uri.h" #include "uri.h"
#include "idle.h" #include "idle.h"
......
/* /*
* Copyright (C) 2003-2011 The Music Player Daemon Project * Copyright (C) 2003-2013 The Music Player Daemon Project
* http://www.musicpd.org * http://www.musicpd.org
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
...@@ -24,11 +24,11 @@ ...@@ -24,11 +24,11 @@
#include "config.h" #include "config.h"
#include "PlaylistState.hxx" #include "PlaylistState.hxx"
#include "Playlist.hxx"
#include "QueueSave.hxx" #include "QueueSave.hxx"
#include "TextFile.hxx" #include "TextFile.hxx"
extern "C" { extern "C" {
#include "playlist.h"
#include "player_control.h" #include "player_control.h"
#include "conf.h" #include "conf.h"
} }
......
/* /*
* Copyright (C) 2003-2011 The Music Player Daemon Project * Copyright (C) 2003-2013 The Music Player Daemon Project
* http://www.musicpd.org * http://www.musicpd.org
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
*/ */
#include "config.h" #include "config.h"
#include "queue.h" #include "Queue.hxx"
#include "song.h" #include "song.h"
#include <stdlib.h> #include <stdlib.h>
...@@ -102,12 +102,11 @@ queue_append(struct queue *queue, struct song *song, uint8_t priority) ...@@ -102,12 +102,11 @@ queue_append(struct queue *queue, struct song *song, uint8_t priority)
assert(!queue_is_full(queue)); assert(!queue_is_full(queue));
queue->items[queue->length] = (struct queue_item){ auto &item = queue->items[queue->length];
.song = song_dup_detached(song), item.song = song_dup_detached(song);
.id = id, item.id = id;
.version = queue->version, item.version = queue->version;
.priority = priority, item.priority = priority;
};
queue->order[queue->length] = queue->length; queue->order[queue->length] = queue->length;
queue->id_to_position[id] = queue->length; queue->id_to_position[id] = queue->length;
...@@ -313,10 +312,11 @@ queue_init(struct queue *queue, unsigned max_length) ...@@ -313,10 +312,11 @@ queue_init(struct queue *queue, unsigned max_length)
queue->consume = false; queue->consume = false;
queue->items = g_new(struct queue_item, max_length); queue->items = g_new(struct queue_item, max_length);
queue->order = g_malloc(sizeof(queue->order[0]) * queue->order = (unsigned *)
max_length); g_malloc(sizeof(queue->order[0]) * max_length);
queue->id_to_position = g_malloc(sizeof(queue->id_to_position[0]) * queue->id_to_position = (int *)
max_length * QUEUE_HASH_MULT); g_malloc(sizeof(queue->id_to_position[0]) *
max_length * QUEUE_HASH_MULT);
for (unsigned i = 0; i < max_length * QUEUE_HASH_MULT; ++i) for (unsigned i = 0; i < max_length * QUEUE_HASH_MULT; ++i)
queue->id_to_position[i] = -1; queue->id_to_position[i] = -1;
...@@ -355,9 +355,9 @@ static gint ...@@ -355,9 +355,9 @@ static gint
queue_item_compare_order_priority(gconstpointer av, gconstpointer bv, queue_item_compare_order_priority(gconstpointer av, gconstpointer bv,
gpointer user_data) gpointer user_data)
{ {
const struct queue *queue = user_data; const struct queue *queue = (const struct queue *)user_data;
const unsigned *const ap = av; const unsigned *const ap = (const unsigned *)av;
const unsigned *const bp = bv; const unsigned *const bp = (const unsigned *)bv;
assert(ap >= queue->order && ap < queue->order + queue->length); assert(ap >= queue->order && ap < queue->order + queue->length);
assert(bp >= queue->order && bp < queue->order + queue->length); assert(bp >= queue->order && bp < queue->order + queue->length);
uint8_t a = queue->items[*ap].priority; uint8_t a = queue->items[*ap].priority;
......
/* /*
* Copyright (C) 2003-2011 The Music Player Daemon Project * Copyright (C) 2003-2013 The Music Player Daemon Project
* http://www.musicpd.org * http://www.musicpd.org
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
...@@ -17,8 +17,8 @@ ...@@ -17,8 +17,8 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/ */
#ifndef QUEUE_H #ifndef MPD_QUEUE_HXX
#define QUEUE_H #define MPD_QUEUE_HXX
#include <glib.h> #include <glib.h>
......
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
#include "CommandError.hxx" #include "CommandError.hxx"
#include "DatabaseQueue.hxx" #include "DatabaseQueue.hxx"
#include "SongFilter.hxx" #include "SongFilter.hxx"
#include "Playlist.hxx"
#include "PlaylistPrint.hxx" #include "PlaylistPrint.hxx"
#include "ClientFile.hxx" #include "ClientFile.hxx"
#include "ClientInternal.hxx" #include "ClientInternal.hxx"
...@@ -30,7 +31,6 @@ ...@@ -30,7 +31,6 @@
#include "ls.hxx" #include "ls.hxx"
extern "C" { extern "C" {
#include "playlist.h"
#include "uri.h" #include "uri.h"
} }
......
/* /*
* Copyright (C) 2003-2012 The Music Player Daemon Project * Copyright (C) 2003-2013 The Music Player Daemon Project
* http://www.musicpd.org * http://www.musicpd.org
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
...@@ -19,13 +19,13 @@ ...@@ -19,13 +19,13 @@
#include "config.h" #include "config.h"
#include "QueuePrint.hxx" #include "QueuePrint.hxx"
#include "Queue.hxx"
#include "SongFilter.hxx" #include "SongFilter.hxx"
#include "SongPrint.hxx" #include "SongPrint.hxx"
#include "Mapper.hxx" #include "Mapper.hxx"
#include "Client.hxx" #include "Client.hxx"
extern "C" { extern "C" {
#include "queue.h"
#include "song.h" #include "song.h"
} }
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
#include "config.h" #include "config.h"
#include "QueueSave.hxx" #include "QueueSave.hxx"
#include "Playlist.hxx"
#include "song.h" #include "song.h"
#include "SongSave.hxx" #include "SongSave.hxx"
#include "DatabasePlugin.hxx" #include "DatabasePlugin.hxx"
...@@ -26,7 +27,6 @@ ...@@ -26,7 +27,6 @@
#include "TextFile.hxx" #include "TextFile.hxx"
extern "C" { extern "C" {
#include "queue.h"
#include "uri.h" #include "uri.h"
} }
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
#include "config.h" #include "config.h"
#include "StateFile.hxx" #include "StateFile.hxx"
#include "OutputState.hxx" #include "OutputState.hxx"
#include "playlist.h" #include "Playlist.hxx"
#include "PlaylistState.hxx" #include "PlaylistState.hxx"
#include "TextFile.hxx" #include "TextFile.hxx"
......
/* /*
* Copyright (C) 2003-2011 The Music Player Daemon Project * Copyright (C) 2003-2013 The Music Player Daemon Project
* http://www.musicpd.org * http://www.musicpd.org
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
...@@ -24,9 +24,9 @@ ...@@ -24,9 +24,9 @@
#include "UpdateRemove.hxx" #include "UpdateRemove.hxx"
#include "Mapper.hxx" #include "Mapper.hxx"
#include "DatabaseSimple.hxx" #include "DatabaseSimple.hxx"
#include "Playlist.hxx"
extern "C" { extern "C" {
#include "playlist.h"
#include "event_pipe.h" #include "event_pipe.h"
#include "idle.h" #include "idle.h"
#include "stats.h" #include "stats.h"
......
...@@ -19,10 +19,10 @@ ...@@ -19,10 +19,10 @@
#include "config.h" /* must be first for large file support */ #include "config.h" /* must be first for large file support */
#include "UpdateRemove.hxx" #include "UpdateRemove.hxx"
#include "Playlist.hxx"
extern "C" { extern "C" {
#include "event_pipe.h" #include "event_pipe.h"
#include "playlist.h"
} }
#include "song.h" #include "song.h"
......
/* /*
* Copyright (C) 2003-2011 The Music Player Daemon Project * Copyright (C) 2003-2013 The Music Player Daemon Project
* http://www.musicpd.org * http://www.musicpd.org
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
#include "config.h" #include "config.h"
#include "replay_gain_config.h" #include "replay_gain_config.h"
#include "playlist.h" #include "Playlist.hxx"
#include "conf.h" #include "conf.h"
#include "idle.h" #include "idle.h"
#include "mpd_error.h" #include "mpd_error.h"
......
#include "config.h" #include "config.h"
extern "C" { #include "Queue.hxx"
#include "queue.h"
}
#include "song.h" #include "song.h"
#include "Directory.hxx" #include "Directory.hxx"
......
/* /*
* Copyright (C) 2003-2011 The Music Player Daemon Project * Copyright (C) 2003-2013 The Music Player Daemon Project
* http://www.musicpd.org * http://www.musicpd.org
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
#include "pcm_volume.h" #include "pcm_volume.h"
#include "idle.h" #include "idle.h"
#include "mixer_control.h" #include "mixer_control.h"
#include "playlist.h" #include "Playlist.hxx"
#include "stdbin.h" #include "stdbin.h"
#include <glib.h> #include <glib.h>
......
...@@ -32,7 +32,7 @@ extern "C" { ...@@ -32,7 +32,7 @@ extern "C" {
#include "idle.h" #include "idle.h"
} }
#include "playlist.h" #include "Playlist.hxx"
#include "player_control.h" #include "player_control.h"
#include "stdbin.h" #include "stdbin.h"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment