#include "util.h"
#include "config.h"
#include "cross.h"
-#include "ui_signaller.h"
#include "dcpomatic_socket.h"
+#include "raw_convert.h"
#include <libcxml/cxml.h>
-#include <dcp/raw_convert.h>
#include <boost/lambda/lambda.hpp>
#include "i18n.h"
using boost::shared_ptr;
using boost::scoped_array;
using boost::weak_ptr;
-using dcp::raw_convert;
ServerFinder* ServerFinder::_instance = 0;
xml->read_string (s);
string const ip = socket->socket().remote_endpoint().address().to_string ();
- if (!server_found (ip)) {
+ if (!server_found (ip) && xml->optional_number_child<int>("Version").get_value_or (0) == SERVER_LINK_VERSION) {
ServerDescription sd (ip, xml->number_child<int> ("Threads"));
{
boost::mutex::scoped_lock lm (_mutex);
_servers.push_back (sd);
}
- ui_signaller->emit (boost::bind (boost::ref (ServerFound), sd));
+ emit (boost::bind (boost::ref (ServerFound), sd));
}
start_accept ();
return i != _servers.end ();
}
-void
+boost::signals2::connection
ServerFinder::connect (boost::function<void (ServerDescription)> fn)
{
- if (_disabled) {
- return;
- }
-
boost::mutex::scoped_lock lm (_mutex);
/* Emit the current list of servers */
fn (*i);
}
- ServerFound.connect (fn);
+ return ServerFound.connect (fn);
}
ServerFinder*