aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile.am
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2014-01-18 16:36:42 +0100
committerMax Kellermann <max@duempel.org>2014-01-26 00:10:05 +0100
commit5c4a42caa088335868342b25a834962cbc0d08a2 (patch)
tree388c039572317877f798e0f0c25d9e3c04ddcae3 /Makefile.am
parente847788569bd91ca136160694a49665097c0e8ab (diff)
downloadmpd-5c4a42caa088335868342b25a834962cbc0d08a2.tar.gz
mpd-5c4a42caa088335868342b25a834962cbc0d08a2.tar.xz
mpd-5c4a42caa088335868342b25a834962cbc0d08a2.zip
neighbor: new subsystem to detect file servers on the local network
This commit adds the NeighborPlugin API which can be used to detect nearby file servers that can be used by input plugins. This list of servers is exported using the new "listneighbors" command. The idle even "neighbor" notifies interested clients when a new neighbor is found or an existing one is lost. There's a lot missing currently: protocol&user documentation, and a way to "mount" remote servers into the music database. Obviously, some code from the UPnP database plugin can be moved to a neighbor plugin.
Diffstat (limited to 'Makefile.am')
-rw-r--r--Makefile.am54
1 files changed, 54 insertions, 0 deletions
diff --git a/Makefile.am b/Makefile.am
index 6bb3c9094..ee4116211 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -17,6 +17,7 @@ noinst_LIBRARIES = \
libtag.a \
libinput.a \
libfs.a \
+ libneighbor.a \
libdb_plugins.a \
libplaylist_plugins.a \
libdecoder_plugins.a \
@@ -30,6 +31,7 @@ src_mpd_CPPFLAGS = $(AM_CPPFLAGS) \
$(LIBWRAP_CFLAGS) \
$(SQLITE_CFLAGS)
src_mpd_LDADD = \
+ $(NEIGHBOR_LIBS) \
$(DB_LIBS) \
$(PLAYLIST_LIBS) \
$(AVAHI_LIBS) \
@@ -398,6 +400,37 @@ libfs_a_SOURCES = \
src/fs/StandardDirectory.cxx src/fs/StandardDirectory.hxx \
src/fs/DirectoryReader.hxx
+# neighbor plugins
+
+if ENABLE_NEIGHBOR_PLUGINS
+
+src_mpd_SOURCES += \
+ src/command/NeighborCommands.cxx \
+ src/command/NeighborCommands.hxx
+
+libneighbor_a_SOURCES = \
+ src/neighbor/Registry.cxx src/neighbor/Registry.hxx \
+ src/neighbor/Glue.cxx src/neighbor/Glue.hxx \
+ src/neighbor/Info.hxx \
+ src/neighbor/Listener.hxx \
+ src/neighbor/Explorer.hxx \
+ src/neighbor/NeighborPlugin.hxx
+
+libneighbor_a_CPPFLAGS = $(AM_CPPFLAGS) \
+ $(SMBCLIENT_CFLAGS)
+
+if ENABLE_SMBCLIENT
+libneighbor_a_SOURCES += \
+ src/lib/smbclient/Init.cxx src/lib/smbclient/Init.hxx \
+ src/neighbor/plugins/SmbclientNeighborPlugin.cxx src/neighbor/plugins/SmbclientNeighborPlugin.hxx
+endif
+
+NEIGHBOR_LIBS = \
+ $(SMBCLIENT_LIBS) \
+ libneighbor.a
+
+endif
+
# database plugins
libdb_plugins_a_SOURCES = \
@@ -1199,6 +1232,10 @@ noinst_PROGRAMS = \
test/run_normalize \
test/software_volume
+if ENABLE_NEIGHBOR_PLUGINS
+noinst_PROGRAMS += test/run_neighbor_explorer
+endif
+
if HAVE_AVAHI
noinst_PROGRAMS += test/run_avahi
endif
@@ -1278,6 +1315,23 @@ test_run_input_SOURCES = test/run_input.cxx \
src/IOThread.cxx \
src/TagSave.cxx
+if ENABLE_NEIGHBOR_PLUGINS
+
+test_run_neighbor_explorer_SOURCES = \
+ src/Log.cxx src/LogBackend.cxx \
+ test/run_neighbor_explorer.cxx
+test_run_neighbor_explorer_LDADD = \
+ $(GLIB_LIBS) \
+ $(NEIGHBOR_LIBS) \
+ libconf.a \
+ libevent.a \
+ libfs.a \
+ libsystem.a \
+ libthread.a \
+ libutil.a
+
+endif
+
if ENABLE_ARCHIVE
test_visit_archive_LDADD = \