///////////////////////////////////////////////////////////////////////////
// senf::DVBFrontendHandle
-prefix_ void senf::DVBFrontendSocketProtocol::init_client(uint8_t adapter, boost::uint8_t device)
+prefix_ void senf::DVBFrontendSocketProtocol::init_client(boost::uint8_t adapter, boost::uint8_t device)
const
{
std::string devFrontend = str( boost::format(
"/dev/dvb/adapter%d/frontend%d") % adapter % device);
int f = open(devFrontend.c_str(), O_RDONLY | O_NONBLOCK);
if (f < 0)
- SENF_THROW_SYSTEM_EXCEPTION("") << "Could not open frontend device of DVB adapter " << devFrontend << ".";
-
+ SENF_THROW_SYSTEM_EXCEPTION("")
+ << "Could not open frontend device of DVB adapter " << devFrontend << ".";
fd(f);
}
return false;
}
-prefix_ void senf::DVBFrontendSocketProtocol::signalStrength(int16_t *strength)
+prefix_ int16_t senf::DVBFrontendSocketProtocol::signalStrength()
const
{
- if (::ioctl(fd(), FE_READ_SIGNAL_STRENGTH, strength) < 0)
+ int16_t strength;
+ if (::ioctl(fd(), FE_READ_SIGNAL_STRENGTH, &strength) < 0)
SENF_THROW_SYSTEM_EXCEPTION("Could not get signal strength of DVB adapter.");
+ return strength;
+}
+
+prefix_ int16_t senf::DVBFrontendSocketProtocol::signalNoiseRatio()
+ const
+{
+ int16_t snr;
+ if (::ioctl(fd(), FE_READ_SNR, &snr) < 0)
+ SENF_THROW_SYSTEM_EXCEPTION("Could not get signal-to-noise ratio of DVB adapter.");
+ return snr;
+}
+
+prefix_ uint32_t senf::DVBFrontendSocketProtocol::bitErrorRate()
+ const
+{
+ uint32_t ber;
+ if (::ioctl(fd(), FE_READ_BER, &ber) < 0)
+ SENF_THROW_SYSTEM_EXCEPTION("Could not get bit error rate of DVB adapter.");
+ return ber;
}
///////////////////////////////cc.e////////////////////////////////////////
#undef prefix_
//#include "DVBFrontendHandle.mpp"
-\f
+
// Local Variables:
// mode: c++
// fill-column: 100