32ff194ba7495a28d5ddddcaa9a711deb821943b
[vuplus_dvbapp] / lib / dvb_si / satellite_delivery_system_descriptor.cpp
1 /*
2  * $Id: satellite_delivery_system_descriptor.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $
3  *
4  * (C) 2002-2003 Andreas Oberritter <obi@saftware.de>
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19  *
20  */
21
22 #include <lib/dvb_si/satellite_delivery_system_descriptor.h>
23
24 SatelliteDeliverySystemDescriptor::SatelliteDeliverySystemDescriptor(const uint8_t * const buffer) : Descriptor(buffer)
25 {
26         frequency =
27         (
28                 ((buffer[2] >> 4)       * 10000000) +
29                 ((buffer[2] & 0x0F)     * 1000000) +
30                 ((buffer[3] >> 4)       * 100000) +
31                 ((buffer[3] & 0x0F)     * 10000) +
32                 ((buffer[4] >> 4)       * 1000) +
33                 ((buffer[4] & 0x0F)     * 100) +
34                 ((buffer[5] >> 4)       * 10) +
35                 ((buffer[5] & 0x0F)     * 1)
36         );
37
38         orbitalPosition = (buffer[6] << 8) | buffer[7];
39         westEastFlag = (buffer[8] >> 7) & 0x01;
40         polarization = (buffer[8] >> 5) & 0x03;
41         modulation = buffer[8] & 0x1F;
42
43         symbolRate =
44         (
45                 ((buffer[9] >> 4)       * 1000000) +
46                 ((buffer[9] & 0x0F)     * 100000) +
47                 ((buffer[10] >> 4)      * 10000) +
48                 ((buffer[10] & 0x0F)    * 1000) +
49                 ((buffer[11] >> 4)      * 100) +
50                 ((buffer[11] & 0x0F)    * 10) +
51                 ((buffer[12] >> 4)      * 1)
52         );
53
54         fecInner = buffer[12] & 0x0F;
55 }
56
57 uint32_t SatelliteDeliverySystemDescriptor::getFrequency(void) const
58 {
59         return frequency;
60 }
61
62 uint16_t SatelliteDeliverySystemDescriptor::getOrbitalPosition(void) const
63 {
64         return orbitalPosition;
65 }
66
67 uint8_t SatelliteDeliverySystemDescriptor::getWestEastFlag(void) const
68 {
69         return westEastFlag;
70 }
71
72 uint8_t SatelliteDeliverySystemDescriptor::getPolarization(void) const
73 {
74         return polarization;
75 }
76
77 uint8_t SatelliteDeliverySystemDescriptor::getModulation(void) const
78 {
79         return modulation;
80 }
81
82 uint32_t SatelliteDeliverySystemDescriptor::getSymbolRate(void) const
83 {
84         return symbolRate;
85 }
86
87 uint8_t SatelliteDeliverySystemDescriptor::getFecInner(void) const
88 {
89         return fecInner;
90 }
91