本文整理汇总了C++中ConsoleClient::Open方法的典型用法代码示例。如果您正苦于以下问题:C++ ConsoleClient::Open方法的具体用法?C++ ConsoleClient::Open怎么用?C++ ConsoleClient::Open使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ConsoleClient
的用法示例。
在下文中一共展示了ConsoleClient::Open方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main(int argc, char* argv[]) {
std::string hostname = "192.168.16.10";
if(argc >= 2) {
hostname = argv[1];
}
ConsoleClient client;
if(!client.Open(hostname, "scanner client")) {
client.Log(FAILURE,"Unable to open connection !");
return 1;
}
if(!client.EnableStatusInterface(true)) {
client.Log(FAILURE,"Unable to enable status interface !");
return 1;
}
if(client.SupportChannelScan()) {
client.Log(INFO, "channel scanning supported");
}
else {
client.Log(INFO, "channel scanning *NOT* supported");
client.Close();
return 0;
}
// get setup
ChannelScannerSetup setup;
ChannelScannerList sat;
ChannelScannerList countries;
if(!client.GetChannelScannerSetup(setup, sat, countries)) {
return 1;
}
client.Log(INFO, "Current scanner setup:");
client.Log(INFO, "---------------------------------");
client.Log(INFO, "Verbosity: %i", setup.verbosity);
client.Log(INFO, "Logfile: %i", setup.logtype);
client.Log(INFO, "DVB Type: %i", setup.dvbtype);
client.Log(INFO, "DVBT Inversion: %i", setup.dvbt_inversion);
client.Log(INFO, "DVBC Inversion: %i", setup.dvbc_inversion);
client.Log(INFO, "DVBC Symbolrate: %i", setup.dvbc_symbolrate);
client.Log(INFO, "DVBC QAM: %i", setup.dvbc_qam);
client.Log(INFO, "Country ID: %i", setup.countryid);
client.Log(INFO, "Sat ID: %i", setup.satid);
client.Log(INFO, "Scanflags: %04x", setup.flags);
client.Log(INFO, "ATSC Type: %i", setup.atsc_type);
client.Log(INFO, "---------------------------------");
client.Log(INFO, "Satellites:");
client.Log(INFO, "---------------------------------");
for(ChannelScannerList::iterator i = sat.begin(); i != sat.end(); i++) {
client.Log(INFO, "%06i|%8s|%s", i->first, i->second.shortname.c_str(), i->second.fullname.c_str());
}
client.Log(INFO, "Countries:");
client.Log(INFO, "---------------------------------");
for(ChannelScannerList::iterator i = countries.begin(); i != countries.end(); i++) {
client.Log(INFO, "%06i|%8s|%s", i->first, i->second.shortname.c_str(), i->second.fullname.c_str());
}
// modify setup and send back
setup.verbosity = ChannelScannerSetup::LOGLEVEL_DEFAULT;
setup.countryid = 14; // AUSTRIA
setup.logtype = ChannelScannerSetup::LOGTYPE_SYSLOG;
setup.dvbtype = ChannelScannerSetup::DVBTYPE_DVBT;
setup.flags = ChannelScannerSetup::FLAG_TV | ChannelScannerSetup::FLAG_FTA;
if(!client.SetChannelScannerSetup(setup)) {
client.Log(FAILURE, "Unable to set setup parameters !");
}
client.StartChannelScanner();
CondWait::SleepMs(0);
client.Close();
return 0;
}
示例2: main
int main(int argc, char* argv[]) {
std::string hostname = "192.168.16.10";
int channel_number = 1;
if(argc >= 2) {
hostname = argv[1];
}
if(argc >= 3) {
channel_number = atoi(argv[2]);
}
ConsoleClient client;
if(!client.Open(hostname, "Demux test client")) {
client.Log(FAILURE,"Unable to open connection !");
return 1;
}
if(!client.EnableStatusInterface(true)) {
client.Log(FAILURE,"Unable to enable status interface !");
return 1;
}
client.Log(INFO, "Fetching channels ..");
client.GetChannelsList();
client.Log(INFO, "Got %i channels.", client.m_channels.size());
Channel c = client.m_channels[channel_number];
Demux demux(&client);
TimeMs t;
client.Log(INFO, "Opening channel #%i (%s)", channel_number, c.Name.c_str());
if(demux.OpenChannel(hostname, c.UID) != Demux::SC_OK) {
client.Log(FAILURE, "Unable to open channel !");
return 1;
}
ConsoleClient::Packet* p = NULL;
int firstVideoPacket = 0;
int firstPacket = 0;
int switchTime = t.Elapsed();
client.Log(INFO, "Switched to channel after %i ms", switchTime);
for(int i = 0; i < 100; i++) {
p = demux.Read<ConsoleClient::Packet>();
if(p == NULL) {
break;
}
if(p->data != NULL) {
if(firstPacket == 0) {
firstPacket = t.Elapsed();
client.Log(INFO, "Received first packet after %i ms", firstPacket);
}
if(firstVideoPacket == 0 && p->index == 0) {
firstVideoPacket = t.Elapsed();
client.Log(INFO, "Received first video packet after %i ms", firstVideoPacket);
}
uint32_t header = p->data[0] << 24 | p->data[1] << 16 | p->data[2] << 8 | p->data[3];
client.Log(INFO, "Demux (index: %i length: %i bytes) Header: %08X PTS: %lli", p->index, p->length, header, p->pts);
}
client.FreePacket(p);
}
client.Log(INFO, "Stopping ...");
t.Set(0);
// wait for pending notifications
if(p == NULL) {
CondWait::SleepMs(5000);
}
demux.CloseChannel();
client.Close();
int stopTime = t.Elapsed();
client.Log(INFO, "");
client.Log(INFO, "Stream summary:");
client.Log(INFO, "Channel: %i - %s", channel_number, c.Name.c_str());
client.Log(INFO, "Switch time: %i ms", switchTime);
client.Log(INFO, "First packet after: %i ms", firstPacket);
client.Log(INFO, "First video after: %i ms", firstVideoPacket);
return 0;
}