- Scaler::setup_scalers ();
- shared_ptr<FileLog> log (new FileLog ("servomatic.log"));
- Server server (log);
- server.run (num_threads);
+ if (write_log) {
+ dcpomatic_log.reset (new FileLog("dcpomatic_server_cli.log"));
+ }
+
+ EncodeServer server (verbose, num_threads);
+
+ try {
+ server.run ();
+ } catch (boost::system::system_error& e) {
+ if (e.code() == boost::system::errc::address_in_use) {
+ cerr << argv[0] << ": address already in use. Is another DCP-o-matic server instance already running?\n";
+ exit (EXIT_FAILURE);
+ }
+ cerr << argv[0] << ": " << e.what() << "\n";
+ } catch (std::exception& e) {
+ cerr << argv[0] << ": failed to start server; " << e.what() << "\n";
+ }