41 #include "QApplication"
54 std::vector<PropertyPtr> retval;
65 bool defaultValue =
true;
67 bool defaultValue =
false;
71 "Run streamer in a separate process",
73 retval->setAdvanced(
false);
74 retval->setGroup(
"Connection");
80 QString filename =
"OpenIGTLinkServer";
85 QStringList paths = QStringList() << qApp->applicationDirPath();
92 "Name of server executable, used only if Run Local Server is set.",
96 retval->setAdvanced(
false);
97 retval->setGroup(
"Connection");
113 QStringList cmdlineArguments;
114 for (StringMap::iterator i=args.begin(); i!=args.end(); ++i)
115 cmdlineArguments << i->first << i->second;
118 QString localServer = localServerProp->getEmbeddedPath().getAbsoluteFilepath();
119 boost::shared_ptr<LocalServerStreamer> streamer;
126 mServerName(serverName),
127 mServerArguments(serverArguments)
129 mLocalVideoServerProcess.reset(
new ProcessWrapper(QString(
"Local Video Server: %1").arg(mServerName)));
132 int defaultport = 18333;
133 igtLinkStreamer->setAddress(
"Localhost", defaultport);
134 mBase = igtLinkStreamer;
145 mLocalVideoServerProcess->launchWithRelativePath(mServerName, mServerArguments.split(
" "));
148 void LocalServerStreamer::processStateChanged()
150 if(mLocalVideoServerProcess->isRunning())
151 mBase->startStreaming(
mSender);
156 mBase->stopStreaming();
158 if (mLocalVideoServerProcess->getProcess())
160 mLocalVideoServerProcess->getProcess()->close();
161 mLocalVideoServerProcess.reset();
167 return localVideoServerIsRunning();
170 bool LocalServerStreamer::localVideoServerIsRunning()
172 if (!mLocalVideoServerProcess || !mLocalVideoServerProcess->getProcess())
174 return this->mLocalVideoServerProcess->isRunning();
static BoolPropertyPtr initialize(const QString &uid, QString name, QString help, bool value, QDomNode root=QDomNode())
FilePathPropertyPtr getLocalServerNameOption(QDomElement root)
virtual void stopStreaming()
static StreamerPtr createStreamerIfEnabled(QDomElement root, StringMap args)
LocalServerStreamer(QString serverName, QString serverArguments)
BoolPropertyBasePtr getRunLocalServerOption(QDomElement root)
virtual void startStreaming(SenderPtr sender)
std::map< QString, QString > StringMap
boost::shared_ptr< class BoolPropertyBase > BoolPropertyBasePtr
virtual bool isStreaming()
static FilePathPropertyPtr initialize(const QString &uid, QString name, QString help, QString value, QStringList paths, QDomNode root=QDomNode())
virtual ~LocalServerStreamer()
boost::shared_ptr< class FilePathProperty > FilePathPropertyPtr
boost::shared_ptr< class BoolProperty > BoolPropertyPtr
boost::shared_ptr< Sender > SenderPtr
static QString getBundlePath()
return the folder where the bundle or executable are located.
boost::shared_ptr< class Streamer > StreamerPtr
std::vector< PropertyPtr > getSettings(QDomElement root)