firstBoot = 1;
connLost = NULL;
crashed = false;
+ server = NULL;
}
Command::~Command()
return instance;
}
-int Command::init(bool tcrashed)
+int Command::init(bool tcrashed, char* tServer)
{
if (initted) return 0;
initted = 1;
crashed = tcrashed;
+ server = tServer;
logger = Log::getInstance();
boxstack = BoxStack::getInstance();
}
else
{
- VConnect* vconnect = new VConnect();
+ VConnect* vconnect = new VConnect(server);
boxstack->add(vconnect);
vconnect->run();
}
isStandby = 0;
- VConnect* vconnect = new VConnect();
+ VConnect* vconnect = new VConnect(server);
boxstack->add(vconnect);
vconnect->run();
}
boxstack->removeAll();
boxstack->update(wallpaper);
connLost = NULL;
- VConnect* vconnect = new VConnect();
+ VConnect* vconnect = new VConnect(server);
boxstack->add(vconnect);
vconnect->run();
}
~Command();
static Command* getInstance();
- int init(bool crashed = false);
+ int init(bool crashed = false, char* server = NULL);
int shutdown();
void run();
void stop();
Boxx* wallpaper;
VInfo* connLost;
bool crashed;
+ char* server;
UDP udp;
bool daemonize = true;
bool debugEnabled = false;
bool crashed = false;
+ char* setServer = NULL;
int c;
- while ((c = getopt(argc, argv, "cdn")) != -1)
+ while ((c = getopt(argc, argv, "cdns:")) != -1)
{
switch (c)
{
case 'n':
daemonize = false;
break;
+ case 's':
+ setServer = optarg;
+ break;
case '?':
printf("Unknown option\n");
return 1;
shutdown(1);
}
- success = command->init(crashed);
+ success = command->init(crashed, setServer);
if (success)
{
logger->log("Core", Log::INFO, "Command module initialised");
#include "wol.h"
#include "vserverselect.h"
-VConnect::VConnect()
+VConnect::VConnect(char* tServer)
{
boxstack = BoxStack::getInstance();
vdr = VDR::getInstance();
exitable = 0;
irun = 0;
+ server = tServer;
}
VConnect::~VConnect()
do
{
- setOneLiner(tr("Locating server"));
- draw();
- boxstack->update(this);
-
- vdr->findServers(servers);
- if (!irun)
+ if (server) // Server is specified, fake a servers array
{
- for(UINT k = 0; k < servers.size(); k++)
+ VDRServer vdrserver;
+ vdrserver.ip = new char[strlen(server)+1];
+ strcpy(vdrserver.ip, server);
+ vdrserver.name = new char[1];
+ vdrserver.name[0] = '\0';
+ servers.push_back(vdrserver);
+ }
+ else
+ {
+ setOneLiner(tr("Locating server"));
+ draw();
+ boxstack->update(this);
+
+ vdr->findServers(servers);
+ if (!irun)
{
- delete[] servers[k].ip;
- delete[] servers[k].name;
+ for(UINT k = 0; k < servers.size(); k++)
+ {
+ delete[] servers[k].ip;
+ delete[] servers[k].name;
+ }
+ servers.clear();
+ return;
}
- servers.clear();
- return;
}
if (servers.size() == 1)
class VConnect : public VInfo, public Thread_TYPE
{
public:
- VConnect();
+ VConnect(char* server);
~VConnect();
int handleCommand(int command);
Log* logger;
std::vector<VDRServer> servers;
int selectedServer;
+ char* server;
};
#endif