Queue, OutputsPage: merge the Deleter structs into one
authorMax Kellermann <max@musicpd.org>
Sat, 18 Jan 2020 20:57:18 +0000 (21:57 +0100)
committerMax Kellermann <max@musicpd.org>
Sat, 18 Jan 2020 21:00:08 +0000 (22:00 +0100)
src/Deleter.hxx [new file with mode: 0644]
src/OutputsPage.cxx
src/Queue.hxx

diff --git a/src/Deleter.hxx b/src/Deleter.hxx
new file mode 100644 (file)
index 0000000..e3d11d7
--- /dev/null
@@ -0,0 +1,35 @@
+/* ncmpc (Ncurses MPD Client)
+ * (c) 2004-2019 The Music Player Daemon Project
+ * Project homepage: http://musicpd.org
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef DELETER_HXX
+#define DELETER_HXX
+
+#include <mpd/client.h>
+
+struct LibmpdclientDeleter {
+       void operator()(struct mpd_song *song) const noexcept {
+               mpd_song_free(song);
+       }
+
+       void operator()(struct mpd_output *o) const noexcept {
+               mpd_output_free(o);
+       }
+};
+
+#endif
index bec7aef..2fa6c5a 100644 (file)
@@ -18,6 +18,7 @@
  */
 
 #include "OutputsPage.hxx"
+#include "Deleter.hxx"
 #include "PageMeta.hxx"
 #include "ListPage.hxx"
 #include "ListRenderer.hxx"
 
 #include <assert.h>
 
-struct OutputDeleter {
-       void operator()(struct mpd_output *o) const {
-               mpd_output_free(o);
-       }
-};
-
 class OutputsPage final : public ListPage, ListRenderer {
-       std::vector<std::unique_ptr<struct mpd_output, OutputDeleter>> items;
+       std::vector<std::unique_ptr<struct mpd_output, LibmpdclientDeleter>> items;
 
 public:
        OutputsPage(WINDOW *w, Size size)
index 5239cf5..03950d4 100644 (file)
@@ -21,6 +21,7 @@
 #define QUEUE_HXX
 
 #include "util/Compiler.h"
+#include "Deleter.hxx"
 
 #include <mpd/client.h>
 
 
 #include <assert.h>
 
-struct SongDeleter {
-       void operator()(struct mpd_song *song) const {
-               mpd_song_free(song);
-       }
-};
-
 struct MpdQueue {
        /* queue version number (obtained from mpd_status) */
        unsigned version = 0;
 
-       using Vector = std::vector<std::unique_ptr<struct mpd_song, SongDeleter>>;
+       using Vector = std::vector<std::unique_ptr<struct mpd_song, LibmpdclientDeleter>>;
 
        /* the list */
        Vector items;