133 std::unique_ptr<CommandLineArgs> argValues = std::make_unique<CommandLineArgs>();
136 std::unique_ptr<Fifo> fifoHandleOwner{};
141#ifdef OSX_EMBEDED_MODE
145 snprintf(logname, 128, logNamePattern.data(), getlogin());
146 fprintf(stderr,
"switching stderr to %s", logname);
147 freopen(logname,
"w", stderr);
153 const char *tmpDir = getenv(
"TMPDIR");
154 if (!tmpDir || tmpDir[0] ==
'\0')
156 std::string fifoPath = tmpDir;
157 if (fifoPath.back() !=
'/')
159 fifoPath +=
"indiserverFIFO";
160 fifoHandleOwner = std::make_unique<Fifo>(fifoPath);
170 while ((--ac > 0) && ((*++av)[0] ==
'-'))
173 for (s = av[0] + 1; *s !=
'\0'; s++)
179 fprintf(stderr,
"-l requires log directory\n");
188 fprintf(stderr,
"-m requires max MB behind\n");
197 fprintf(stderr,
"-p requires port value\n");
206 fprintf(stderr,
"-d requires max stream MB behind\n");
212#ifdef ENABLE_INDI_SHARED_MEMORY
216 fprintf(stderr,
"-u requires local socket path\n");
219 UnixServer::unixSocketPath = *++av;
226 fprintf(stderr,
"-f requires fifo node\n");
230 fifoHandleOwner = std::make_unique<Fifo>(*++av);
237 fprintf(stderr,
"-r requires number of restarts\n");
261 std::vector<std::unique_ptr<DvrInfo>> drivers(ac);
266 std::string dvrName = *av++;
267 if (dvrName.find(
'@') != std::string::npos)
269 drivers.push_back(std::make_unique<RemoteDvrInfo>());
273 drivers.push_back(std::make_unique<LocalDvrInfo>());
275 drivers.back()->name = dvrName;
276 drivers.back()->start();
283#ifdef ENABLE_INDI_SHARED_MEMORY
285 const auto unixServer = std::make_unique<UnixServer>(UnixServer::unixSocketPath);
286 unixServer->listen();
302 log(
"unexpected return from event loop\n");