Fix documentation build under maverick (doxygen 1.7.1)
[senf.git] / Examples / DVBAdapter / ULEdec.cc
index 64e79a7..8ce477e 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 //
 // Copyright (C) 2007
-// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS)
-// Kompetenzzentrum fuer Satelitenkommunikation (SatCom)
-//     Thorsten Horstmann <thorsten.horstmann@fokus.fraunhofer.de>
+// Fraunhofer Institute for Open Communication Systems (FOKUS)
+// Competence Center NETwork research (NET), St. Augustin, GERMANY
+//     Thorsten Horstmann <tho@berlios.de>
 //
 // This program is free software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License as published by
 
 #include "ULEdec.hh"
 
-#include <linux/dvb/dmx.h> 
+#include <cassert>
+#include <linux/dvb/dmx.h>
 #include <boost/format.hpp>
-#include "../../Packets/PacketData.hh"
-#include "../../Utils/hexdump.hh"
-#include "../../Utils/membind.hh"
+#include <senf/Packets.hh>
+#include <senf/Utils/hexdump.hh>
+#include <senf/Utils/membind.hh>
 
 #define PID 271
 #define TRANSPORT_PACKET_SIZE 188
 // max. payload_pointer = ts packet payload size ( = ts packet size - ts header - payload_pointer)
 //                          - 2 bytes min. sndu header
-#define MAX_PAYLOAD_POINTER ( TRANSPORT_PACKET_SIZE - 4 - 1 - 2 )   
+#define MAX_PAYLOAD_POINTER ( TRANSPORT_PACKET_SIZE - 4 - 1 - 2 )
 
 #define prefix_
-///////////////////////////////cc.p////////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
 
 
 ULEdec::ULEdec(unsigned short adapter, unsigned short device)
@@ -51,47 +52,47 @@ ULEdec::ULEdec(unsigned short adapter, unsigned short device)
     pes_filter.pes_type = DMX_PES_OTHER;
     pes_filter.flags = DMX_IMMEDIATE_START;
     demuxHandle.protocol().setPESFilter( &pes_filter );
-    
+
     senf::Scheduler::instance().add(
         dvrHandle, senf::membind(&ULEdec::handleEvent, this));
-    
+
     this->receiver_state = Idle;
     this->priv_sndu_type_1 = false;
 }
 
-void ULEdec::handleEvent(senf::FileHandle, senf::Scheduler::EventId event)
+void ULEdec::handleEvent(senf::Scheduler::EventId event)
 {
     senf::TransportPacket ts_packet (
-            senf::TransportPacket::create(188, senf::TransportPacket::noinit));
+            senf::TransportPacket::create(188, senf::noinit));
     dvrHandle.read( ts_packet.data() );
-   
+
     // Check TS error conditions: sync_byte, transport_error_indicator, scrambling_control.
-    if ( (ts_packet->sync_byte() != TRANSPORT_PACKET_SYNC_BYTE) || 
-         (ts_packet->transport_error_indicator() == true) || 
-         (ts_packet->transport_scrmbl_ctrl() != 0)) 
+    if ( (ts_packet->sync_byte() != senf::TransportPacketType::SYNC_BYTE) ||
+         (ts_packet->transport_error_indicator() == true) ||
+         (ts_packet->transport_scrmbl_ctrl() != 0))
     {
         std::cerr << "invalid ts packet\n";
         // drop partly decoded SNDU, reset state, resync on PUSI.
         return;
     }
-    
+
     handleTSPacket(ts_packet);
 }
-    
+
 void ULEdec::handleTSPacket(senf::TransportPacket ts_packet)
 {
     senf::PacketData & payloadData (ts_packet.next().data());
     iterator payload_iter = payloadData.begin();
     iterator payload_end = payloadData.end();
-    
+
     std::cout << "New TS Packet:\n"
               << "----------------------------------------------------------------------------\n";
     senf::hexdump(payload_iter, payload_end, std::cout);
     std::cout << "----------------------------------------------------------------------------\n";
-    
+
     // Synchronize continuity counter
     this->priv_tscc = ts_packet->continuity_counter();
-    
+
     switch (ts_packet->pusi()) {
     case 0: {
         switch (this->receiver_state) {
@@ -115,7 +116,7 @@ void ULEdec::handleTSPacket(senf::TransportPacket ts_packet)
                     if ( (*payload_iter++ << 8 | *payload_iter++) != ULE_END_INDICATOR )
                         std::cerr << "delimiting error\n";
             } else {
-                BOOST_ASSERT( std::distance( payload_iter, payload_end ) == 0 );
+                assert( std::distance( payload_iter, payload_end ) == 0 );
             }
         }
         break;
@@ -124,7 +125,7 @@ void ULEdec::handleTSPacket(senf::TransportPacket ts_packet)
         // a PUSI value of 1 indicates the presence of a Payload Pointer.
         unsigned char payload_pointer = *payload_iter++;
         if (payload_pointer > MAX_PAYLOAD_POINTER) {
-            std::cerr << str( boost::format( 
+            std::cerr << str( boost::format(
                     "invalid payload_pointer (%d)\n") % unsigned(payload_pointer) ) ;
             this->receiver_state = Idle;
             return;
@@ -143,7 +144,7 @@ void ULEdec::handleTSPacket(senf::TransportPacket ts_packet)
                 std::advance(payload_iter, payload_pointer);
             } else {
                 payload_iter = readContSNDUPacket( payload_iter, payload_end );
-                BOOST_ASSERT( isSDNUPacketComplete() );
+                assert( isSDNUPacketComplete() );
                 try {
                     handleSNDUPacket();
                 } catch (ULEdecException const & ex) {
@@ -158,7 +159,7 @@ void ULEdec::handleTSPacket(senf::TransportPacket ts_packet)
             do {
                 payload_iter = readNewSNDUPacket( payload_iter, payload_end );
                 if (! isSDNUPacketComplete()) {
-                    BOOST_ASSERT( std::distance( payload_iter, payload_end ) == 0 );
+                    assert( std::distance( payload_iter, payload_end ) == 0 );
                     this->receiver_state = Reassembly;
                     break;
                 }
@@ -170,7 +171,7 @@ void ULEdec::handleTSPacket(senf::TransportPacket ts_packet)
             return;
         }
     }
-    
+
     } // end pusi-switch
 }
 
@@ -185,7 +186,7 @@ ULEdec::iterator ULEdec::readContSNDUPacket(iterator i, iterator const i_end)
 
 
 ULEdec::iterator ULEdec::readNewSNDUPacket(iterator i, iterator const i_end)
-{ 
+{
     bool dbit = false;
     senf::Packet::size_type sndu_length = *i++ << 8 | *i++;
     if (sndu_length & 0x8000) {
@@ -197,11 +198,15 @@ ULEdec::iterator ULEdec::readNewSNDUPacket(iterator i, iterator const i_end)
                 "SNDU length error. length=%d") % sndu_length) );
      }
     this->snduPacket = senf::SNDUPacket::create(sndu_length+4);
-    this->snduPacket->d_bit() = dbit;
+
+    if (dbit)
+        this->snduPacket->withoutDestination();
+    // else not needed since default on newly created packet is withDestination()
+
     this->snduPacket->length() = sndu_length;
     this->snduPacketData_iter = boost::next(this->snduPacket.data().begin(), 2);
     this->priv_sndu_type_1 = false;
-    
+
     switch (std::distance(i, i_end)) {
     case 1:
         this->priv_sndu_type_1 = true;
@@ -209,13 +214,13 @@ ULEdec::iterator ULEdec::readNewSNDUPacket(iterator i, iterator const i_end)
         this->snduPacketData_iter++;
     case 0:
         break;
-        
-    default: 
+
+    default:
         this->snduPacket->type() = *i++ << 8 | *i++;
         std::advance(this->snduPacketData_iter, 2);
         i = readRawSNDUPacketData(i, i_end);
     }
-    
+
     return i;
 }
 
@@ -236,7 +241,7 @@ void ULEdec::handleSNDUPacket()
     this->snduPacket.dump(std::cout);
     std::cout << "----------------------------------------------------------------------------\n\n";
     if (this->snduPacket->crc() != this->snduPacket->calcCrc()) {
-        throw ULEdecException( str( boost::format( 
+        throw ULEdecException( str( boost::format(
                 "CRC Error. received crc:%d calculated crc:%d")
                     % this->snduPacket->crc() % this->snduPacket->calcCrc() ) );
     }
@@ -245,7 +250,7 @@ void ULEdec::handleSNDUPacket()
 //            nextPacket.data().begin(),
 //            nextPacket.data().end(),
 //            std::cout);
-    
+
 }
 
 
@@ -273,16 +278,16 @@ int main(int argc, char const * argv[])
 }
 
 
-///////////////////////////////cc.e////////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
 #undef prefix_
 
+\f
 // Local Variables:
 // mode: c++
 // fill-column: 100
 // c-file-style: "senf"
 // indent-tabs-mode: nil
 // ispell-local-dictionary: "american"
-// compile-command: "scons -u test"
+// compile-command: "scons -U"
 // comment-column: 40
 // End: