///////////////////////////////////////////////////////////////////////////
// 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;
}
///////////////////////////////cc.e////////////////////////////////////////
#undef prefix_
//#include "DVBFrontendHandle.mpp"
-\f
+
// Local Variables:
// mode: c++
// fill-column: 100
// Custom includes
#include <boost/cstdint.hpp>
-#include <linux/dvb/frontend.h>
+#include <linux/dvb/frontend.h>
#include "../../../Socket/FramingPolicy.hh"
#include "../../../Socket/CommunicationPolicy.hh"
#include "../../../Socket/ReadWritePolicy.hh"
UnconnectedCommunicationPolicy,
NotReadablePolicy,
NotWriteablePolicy
- >::policy DVBFrontend_Policy; ///< Socket Policy for xxxx
+ >::policy DVBFrontend_Policy; ///< Socket Policy for DVBFrontendSocketProtocol
- /** \brief xxx
+ /** \brief SocketProtocol for the dvb frontend device
+
+ The DVB frontend device controls the tuner and DVB demodulator hardware.
*/
class DVBFrontendSocketProtocol
: public ConcreteSocketProtocol<DVBFrontend_Policy, DVBFrontendSocketProtocol>
///\name Constructors
///@{
- void init_client(boost::uint8_t adapter=0, boost::uint8_t device=0) const; ///< xxx
+ void init_client(boost::uint8_t adapter=0, boost::uint8_t device=0) const;
+ ///< Opens the specified frontend device in read-only mode.
/**< \note This member is implicitly called from the
ProtocolClientSocketHandle::ProtocolClientSocketHandle()
constructor */
///@}
///\name Abstract Interface Implementation
///@{
-
- unsigned available() const;
- bool eof() const;
+
+ unsigned available() const; ///< Returns always <tt>0</tt>
+ /**< Returns always <tt>0</tt>, since the DVB frontend
+ socket is not readable. */
+ bool eof() const; ///< Returns always <tt>false</tt>
+ /**< Returns always <tt>false</tt>, since the DVB frontend
+ socket does not support the notion of EOF. */
///@}
-
- void signalStrength(int16_t *strength) const;
+
+ int16_t signalStrength() const; ///< Return current signal strength
+ /**< Returns the signal strength value for the signal
+ currently received by the front-end. */
};
typedef ProtocolClientSocketHandle<DVBFrontendSocketProtocol> DVBFrontendHandle;
//#include "DVBFrontendHandle.cti"
#endif
-\f
+
// Local Variables:
// mode: c++
// fill-column: 100