<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.opendigitalradio.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Albrechtl</id>
	<title>OpenDigitalRadio - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.opendigitalradio.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Albrechtl"/>
	<link rel="alternate" type="text/html" href="https://wiki.opendigitalradio.org/Special:Contributions/Albrechtl"/>
	<updated>2026-05-01T00:08:12Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.14</generator>
	<entry>
		<id>https://wiki.opendigitalradio.org/index.php?title=DAB_reception&amp;diff=1330</id>
		<title>DAB reception</title>
		<link rel="alternate" type="text/html" href="https://wiki.opendigitalradio.org/index.php?title=DAB_reception&amp;diff=1330"/>
		<updated>2017-03-14T22:01:51Z</updated>

		<summary type="html">&lt;p&gt;Albrechtl: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
This side informs you about a concept of a open source DAB receiver.&lt;br /&gt;
&lt;br /&gt;
==Existing open DAB/DAB+/T-DMB software receiver==&lt;br /&gt;
[[Image:Phon3b small.jpg|100px|right]]&lt;br /&gt;
&lt;br /&gt;
===Software Defined DAB Receiver (complete software receiver)===&lt;br /&gt;
*[http://www.sdr-j.tk/index.html Qt-DAB] (running on Linux and Windows, using RTL2832 based USB dongles)&lt;br /&gt;
*[http://www.welle.io welle.io] (running on Linux and Windows, using RTL2832 based USB dongles and airspy dongles)&lt;br /&gt;
*[http://www.zsn.zhaw.ch/de/engineering/zsn/projekte/gnu-radio.html DAB receiver for gnuradio] (by Zurich School of Engineering, documentation in German)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Software defined DAB receiver (up to logical layer)===&lt;br /&gt;
*[[Gnuradio DAB constellation using gr-dab and USRP]]&lt;br /&gt;
*[https://github.com/andrmuel/gr-dab Gnuradio blocks for DAB reception] (developments from Andreas Mueller, ETHZ)&lt;br /&gt;
**[http://www.0x7.ch/text/dab-report.pdf Documentation] any other information on http://www.0x7.ch/text/#index3h2&lt;br /&gt;
*[https://www.cgran.org/browser/projects/dabp/trunk Under construction gnuradio project on DAB+ reception on CGRAN]&lt;br /&gt;
&lt;br /&gt;
===Software defined DAB receiver (from logical layer up to application layer)===&lt;br /&gt;
====Openmokast====&lt;br /&gt;
&lt;br /&gt;
Open Receiver project from CRC using RDI streams from DAB baseband receivers/decoders.&lt;br /&gt;
*http://www.openmokast.org&lt;br /&gt;
&lt;br /&gt;
Receiver for the Psion Wavefinder&lt;br /&gt;
*[http://sourceforge.net/projects/opendab/ OpenDAB]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Open source DAB receiver (concept)==&lt;br /&gt;
===Goal===&lt;br /&gt;
To develop libraries to cover all parts of a full DAB and DAB+ SDR receiver.&lt;br /&gt;
*Well defined library APIs&lt;br /&gt;
*Easy to use APIs&lt;br /&gt;
*Cross platform support (x86, arm, Linux, Windows, etc.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Requirements===&lt;br /&gt;
*Based on the SDR-J code&lt;br /&gt;
*Use of C++11 to use the threading feature&lt;br /&gt;
*Multicore support&lt;br /&gt;
*cmake as build environment&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Architecture===&lt;br /&gt;
[[File:DAB_Receiver_Concept.png|800px]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Library Name&lt;br /&gt;
! Purpose&lt;br /&gt;
|-&lt;br /&gt;
| [[libsdrsource]]&lt;br /&gt;
|&lt;br /&gt;
Interface to different SDR devices&lt;br /&gt;
|-&lt;br /&gt;
| [[libdabdemod]]&lt;br /&gt;
|&lt;br /&gt;
*OFDM demodulation&lt;br /&gt;
*Frequency synchronization&lt;br /&gt;
*Time synchronization&lt;br /&gt;
*Output of the digital DAB stream&lt;br /&gt;
|-&lt;br /&gt;
|libdabdecode&lt;br /&gt;
|&lt;br /&gt;
*DAB and DAB+ frame decoding (FIC, Superframes etc.)&lt;br /&gt;
*CRC correction&lt;br /&gt;
*Output of MPEG or ACC stream&lt;br /&gt;
|-&lt;br /&gt;
| End user program&lt;br /&gt;
|&lt;br /&gt;
*Place holder for GUIs&lt;br /&gt;
*There can be a QT GUI, a GTK GUI or a Kodi plugin&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===API description===&lt;br /&gt;
*TBD &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===To be discussed===&lt;br /&gt;
*Naming of libraries&lt;br /&gt;
*APIs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===GUI Wishlist===&lt;br /&gt;
*Easy to use&lt;br /&gt;
*Channel scan&lt;br /&gt;
*High DPI support&lt;br /&gt;
*libnotify support&lt;/div&gt;</summary>
		<author><name>Albrechtl</name></author>
	</entry>
	<entry>
		<id>https://wiki.opendigitalradio.org/index.php?title=Libdabdemod&amp;diff=1283</id>
		<title>Libdabdemod</title>
		<link rel="alternate" type="text/html" href="https://wiki.opendigitalradio.org/index.php?title=Libdabdemod&amp;diff=1283"/>
		<updated>2016-02-15T20:06:43Z</updated>

		<summary type="html">&lt;p&gt;Albrechtl: Added flow charts&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
libdabdemod is a library that demodulates the digital OFDM DAB signal and outputs the digital DAB stream.&lt;br /&gt;
At the moment this library is in the concept phase.&lt;br /&gt;
&lt;br /&gt;
=Usage=&lt;br /&gt;
==Tune to a specific frequency==&lt;br /&gt;
This flowchart shows how to tune to a specific frequency or channel.&lt;br /&gt;
&lt;br /&gt;
[[File:Libdabdemod_tune_frequency.png|200px]]&lt;br /&gt;
&lt;br /&gt;
==Tune to a specific service channel==&lt;br /&gt;
This flowchart shows how to tune to a specific service channel.&lt;br /&gt;
&lt;br /&gt;
[[File:Libdabdemod_set_service_channel.png|200px]]&lt;br /&gt;
&lt;br /&gt;
=API Description=&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError LibDABDemod::SetDevice(LibSDRSource* libSDRSource)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Sets the SDR driver source from the library libsdrsource.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| libSDRSource: libsdrsource object&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError LibDABDemod::OpenDevice(void)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Opens the device&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| none&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError LibDABDemod::CloseDevice(void)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Closes the device&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| none&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError LibDABDemod::Start(void)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Starts the OFDM demodulation&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| none&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError LibDABDemod::Stop(void)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Stops the OFDM demodulation&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| none&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError LibDABDemod::SetFrequency(int32_t FrequencyKHz)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Sets the channel frequency in kHz&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;FrequencyKHz&amp;#039;&amp;#039;: Channel frequency in kHz&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;code&amp;gt;DemodError LibDABDemod::SetChannel(string Channel)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Sets the channel (Band III: 5A to 13F; L band: LA to LP)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;Channel&amp;#039;&amp;#039;: Channel string e.g.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError LibDABDemod::GetFrequency(int32_t* FrequencyKHz)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Gets the current frequency&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;FrequencyKHz&amp;#039;&amp;#039;: Pointer to frequency in KHz&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError LibDABDemod::GetChannel(string* Channel)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Gets the current channel&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;Channel&amp;#039;&amp;#039;: Channel string e.g. “5A”&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError LibDABDemod::GetSignalStatus(CSignalStatus* SignalStatus)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Gets the current signal status&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;SignalStatus&amp;#039;&amp;#039;: Pinter to signal status object.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError LibDABDemod::RemoveServiceComponent(CServiceComponent ServiceComponent)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Removes a selected service component&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;ServiceComponent&amp;#039;&amp;#039;: Service component object&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;CServiceComponent LibDABDemod::AddServiceComponent(char mode, char SubChId, short StartCU, char UEP_EEP, char UEPTabldx, char EEPIdx, short CUNum, short PacketAddr, char FECScheme)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Adds a service component&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;Mode&amp;#039;&amp;#039;: DAB Mode. 0: DAB audio, 1: DAB+ audio, 2: packet, 3: stream&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;SubChId&amp;#039;&amp;#039;: Sub-channel identifier&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;StartCU&amp;#039;&amp;#039;: Address the first Capacity Unit (CU) of the sub-channel&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;UEP_EEP&amp;#039;&amp;#039;: Short or the long form of the size and protection field. 0: short form (UEP), 1: long form (EEP)&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;UEPTabldx&amp;#039;&amp;#039;: UEP Table index. Only used if UEP_EEP=0&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;EEPIdx&amp;#039;&amp;#039;: Protection level. Only used if UEP_EEP=1&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;CUNum&amp;#039;&amp;#039;: Sub-channel size (CUs)&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;PacketAddr&amp;#039;&amp;#039;: Address of the packet in which the service component is carried&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;FECScheme&amp;#039;&amp;#039;: FEC Scheme&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Service component object, NULL if an error occurred&lt;br /&gt;
|}&lt;br /&gt;
For a detailed description please see &amp;quot;ETSI EN 300 401&amp;quot; section 6.2 &amp;quot;Sub-channel organization&amp;quot; and 6.3 &amp;quot;Service organization&amp;quot;. [https://www.worlddab.org/technology-rollout/standards/technical-specifications-list]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError LibDABDemod::GetServiceData(CServiceComponent ServiceComponent, CServiceData &amp;amp;ServiceData)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Gets the data of a selected service channel. This method is blocking. It blocks until new data is available.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;ServiceComponent&amp;#039;&amp;#039;: Service component buffer&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError LibDABDemod::GetFICData(CFICData &amp;amp;FICData)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Gets the FIC data. This method is blocking. It blocks until new data is available.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;FICData&amp;#039;&amp;#039;: FIC data buffer&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Albrechtl</name></author>
	</entry>
	<entry>
		<id>https://wiki.opendigitalradio.org/index.php?title=File:Libdabdemod_set_service_channel.png&amp;diff=1282</id>
		<title>File:Libdabdemod set service channel.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.opendigitalradio.org/index.php?title=File:Libdabdemod_set_service_channel.png&amp;diff=1282"/>
		<updated>2016-02-15T20:01:44Z</updated>

		<summary type="html">&lt;p&gt;Albrechtl: Flowchart that shows how to set a specific service channel&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Flowchart that shows how to set a specific service channel&lt;/div&gt;</summary>
		<author><name>Albrechtl</name></author>
	</entry>
	<entry>
		<id>https://wiki.opendigitalradio.org/index.php?title=File:Libdabdemod_tune_frequency.png&amp;diff=1281</id>
		<title>File:Libdabdemod tune frequency.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.opendigitalradio.org/index.php?title=File:Libdabdemod_tune_frequency.png&amp;diff=1281"/>
		<updated>2016-02-15T20:00:34Z</updated>

		<summary type="html">&lt;p&gt;Albrechtl: Flowchart that shows how to tune to a specific frequency or channel&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Flowchart that shows how to tune to a specific frequency or channel&lt;/div&gt;</summary>
		<author><name>Albrechtl</name></author>
	</entry>
	<entry>
		<id>https://wiki.opendigitalradio.org/index.php?title=Libsdrsource&amp;diff=1280</id>
		<title>Libsdrsource</title>
		<link rel="alternate" type="text/html" href="https://wiki.opendigitalradio.org/index.php?title=Libsdrsource&amp;diff=1280"/>
		<updated>2016-02-10T21:18:08Z</updated>

		<summary type="html">&lt;p&gt;Albrechtl: Add description&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
libsdrsource is a library that provides the same interface for different SDR devices. At the moment this library is in the concept phase. &lt;br /&gt;
&lt;br /&gt;
=API Description=&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;SDRError LibSDRSource::Open(void)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Opens the SDR device&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| none&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| SDR error enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;SDRError LibSDRSource::Close(void)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Closes the SDR device&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| none&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| SDR error enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;SDRError LibSDRSource::Reset(void)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Resets the SDR device&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| none&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| SDR error enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;SDRError LibSDRSource::SetFrequency(int32_t FrequencyKHz)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Sets the frequency in kHz&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;FrequencyKHz&amp;#039;&amp;#039;: Channel frequency in kHz&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| SDR error enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;SDRError LibSDRSource::GetFrequency(int32_t* FrequencyKHz)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Gets the current frequency&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;FrequencyKHz&amp;#039;&amp;#039;: Pointer to frequency in KHz&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| SDR error enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;SDRError LibSDRSource::GetSamples(CSDRSamples &amp;amp;SampleBuffer)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Gets the IQ samples. This method is blocking. It blocks until new data is available.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;SampleBuffer&amp;#039;&amp;#039;: Sample buffer&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| SDR error enum object&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Albrechtl</name></author>
	</entry>
	<entry>
		<id>https://wiki.opendigitalradio.org/index.php?title=Libdabdemod&amp;diff=1279</id>
		<title>Libdabdemod</title>
		<link rel="alternate" type="text/html" href="https://wiki.opendigitalradio.org/index.php?title=Libdabdemod&amp;diff=1279"/>
		<updated>2016-02-10T21:16:17Z</updated>

		<summary type="html">&lt;p&gt;Albrechtl: /* API Description */ Add description&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
libdabdemod is a library that demodulates the digital OFDM DAB signal and outputs the digital DAB stream.&lt;br /&gt;
At the moment this library is in the concept phase.&lt;br /&gt;
&lt;br /&gt;
=API Description=&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError LibDABDemod::SetDevice(LibSDRSource* libSDRSource)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Sets the SDR driver source from the library libsdrsource.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| libSDRSource: libsdrsource object&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError LibDABDemod::OpenDevice(void)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Opens the device&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| none&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError LibDABDemod::CloseDevice(void)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Closes the device&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| none&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError LibDABDemod::Start(void)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Starts the OFDM demodulation&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| none&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError LibDABDemod::Stop(void)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Stops the OFDM demodulation&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| none&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError LibDABDemod::SetFrequency(int32_t FrequencyKHz)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Sets the channel frequency in kHz&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;FrequencyKHz&amp;#039;&amp;#039;: Channel frequency in kHz&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;code&amp;gt;DemodError LibDABDemod::SetChannel(string Channel)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Sets the channel (Band III: 5A to 13F; L band: LA to LP)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;Channel&amp;#039;&amp;#039;: Channel string e.g.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError LibDABDemod::GetFrequency(int32_t* FrequencyKHz)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Gets the current frequency&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;FrequencyKHz&amp;#039;&amp;#039;: Pointer to frequency in KHz&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError LibDABDemod::GetChannel(string* Channel)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Gets the current channel&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;Channel&amp;#039;&amp;#039;: Channel string e.g. “5A”&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError LibDABDemod::GetSignalStatus(CSignalStatus* SignalStatus)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Gets the current signal status&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;SignalStatus&amp;#039;&amp;#039;: Pinter to signal status object.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError LibDABDemod::RemoveServiceComponent(CServiceComponent ServiceComponent)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Removes a selected service component&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;ServiceComponent&amp;#039;&amp;#039;: Service component object&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;CServiceComponent LibDABDemod::AddServiceComponent(char mode, char SubChId, short StartCU, char UEP_EEP, char UEPTabldx, char EEPIdx, short CUNum, short PacketAddr, char FECScheme)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Adds a service component&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;Mode&amp;#039;&amp;#039;: DAB Mode. 0: DAB audio, 1: DAB+ audio, 2: packet, 3: stream&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;SubChId&amp;#039;&amp;#039;: Sub-channel identifier&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;StartCU&amp;#039;&amp;#039;: Address the first Capacity Unit (CU) of the sub-channel&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;UEP_EEP&amp;#039;&amp;#039;: Short or the long form of the size and protection field. 0: short form (UEP), 1: long form (EEP)&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;UEPTabldx&amp;#039;&amp;#039;: UEP Table index. Only used if UEP_EEP=0&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;EEPIdx&amp;#039;&amp;#039;: Protection level. Only used if UEP_EEP=1&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;CUNum&amp;#039;&amp;#039;: Sub-channel size (CUs)&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;PacketAddr&amp;#039;&amp;#039;: Address of the packet in which the service component is carried&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;FECScheme&amp;#039;&amp;#039;: FEC Scheme&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Service component object, NULL if an error occurred&lt;br /&gt;
|}&lt;br /&gt;
For a detailed description please see &amp;quot;ETSI EN 300 401&amp;quot; section 6.2 &amp;quot;Sub-channel organization&amp;quot; and 6.3 &amp;quot;Service organization&amp;quot;. [https://www.worlddab.org/technology-rollout/standards/technical-specifications-list]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError LibDABDemod::GetServiceData(CServiceComponent ServiceComponent, CServiceData &amp;amp;ServiceData)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Gets the data of a selected service channel. This method is blocking. It blocks until new data is available.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;ServiceComponent&amp;#039;&amp;#039;: Service component buffer&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError LibDABDemod::GetFICData(CFICData &amp;amp;FICData)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Gets the FIC data. This method is blocking. It blocks until new data is available.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;FICData&amp;#039;&amp;#039;: FIC data buffer&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Albrechtl</name></author>
	</entry>
	<entry>
		<id>https://wiki.opendigitalradio.org/index.php?title=Libdabdemod&amp;diff=1278</id>
		<title>Libdabdemod</title>
		<link rel="alternate" type="text/html" href="https://wiki.opendigitalradio.org/index.php?title=Libdabdemod&amp;diff=1278"/>
		<updated>2016-02-10T21:06:18Z</updated>

		<summary type="html">&lt;p&gt;Albrechtl: /* API Description */ Added class LibDABDemod&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=API Description=&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError LibDABDemod::SetDevice(LibSDRSource* libSDRSource)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Sets the SDR driver source from the library libsdrsource.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| libSDRSource: libsdrsource object&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError LibDABDemod::OpenDevice(void)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Opens the device&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| none&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError LibDABDemod::CloseDevice(void)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Closes the device&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| none&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError LibDABDemod::Start(void)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Starts the OFDM demodulation&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| none&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError LibDABDemod::Stop(void)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Stops the OFDM demodulation&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| none&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError LibDABDemod::SetFrequency(int32_t FrequencyKHz)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Sets the channel frequency in kHz&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;FrequencyKHz&amp;#039;&amp;#039;: Channel frequency in kHz&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;code&amp;gt;DemodError LibDABDemod::SetChannel(string Channel)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Sets the channel (Band III: 5A to 13F; L band: LA to LP)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;Channel&amp;#039;&amp;#039;: Channel string e.g.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError LibDABDemod::GetFrequency(int32_t* FrequencyKHz)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Gets the current frequency&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;FrequencyKHz&amp;#039;&amp;#039;: Pointer to frequency in KHz&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError LibDABDemod::GetChannel(string* Channel)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Gets the current channel&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;Channel&amp;#039;&amp;#039;: Channel string e.g. “5A”&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError LibDABDemod::GetSignalStatus(CSignalStatus* SignalStatus)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Gets the current signal status&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;SignalStatus&amp;#039;&amp;#039;: Pinter to signal status object.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError LibDABDemod::RemoveServiceComponent(CServiceComponent ServiceComponent)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Removes a selected service component&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;ServiceComponent&amp;#039;&amp;#039;: Service component object&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;CServiceComponent LibDABDemod::AddServiceComponent(char mode, char SubChId, short StartCU, char UEP_EEP, char UEPTabldx, char EEPIdx, short CUNum, short PacketAddr, char FECScheme)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Adds a service component&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;Mode&amp;#039;&amp;#039;: DAB Mode. 0: DAB audio, 1: DAB+ audio, 2: packet, 3: stream&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;SubChId&amp;#039;&amp;#039;: Sub-channel identifier&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;StartCU&amp;#039;&amp;#039;: Address the first Capacity Unit (CU) of the sub-channel&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;UEP_EEP&amp;#039;&amp;#039;: Short or the long form of the size and protection field. 0: short form (UEP), 1: long form (EEP)&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;UEPTabldx&amp;#039;&amp;#039;: UEP Table index. Only used if UEP_EEP=0&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;EEPIdx&amp;#039;&amp;#039;: Protection level. Only used if UEP_EEP=1&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;CUNum&amp;#039;&amp;#039;: Sub-channel size (CUs)&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;PacketAddr&amp;#039;&amp;#039;: Address of the packet in which the service component is carried&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;FECScheme&amp;#039;&amp;#039;: FEC Scheme&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Service component object, NULL if an error occurred&lt;br /&gt;
|}&lt;br /&gt;
For a detailed description please see &amp;quot;ETSI EN 300 401&amp;quot; section 6.2 &amp;quot;Sub-channel organization&amp;quot; and 6.3 &amp;quot;Service organization&amp;quot;. [https://www.worlddab.org/technology-rollout/standards/technical-specifications-list]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError LibDABDemod::GetServiceData(CServiceComponent ServiceComponent, CServiceData &amp;amp;ServiceData)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Gets the data of a selected service channel. This method is blocking. It blocks until new data is available.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;ServiceComponent&amp;#039;&amp;#039;: Service component buffer&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError LibDABDemod::GetFICData(CFICData &amp;amp;FICData)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Gets the FIC data. This method is blocking. It blocks until new data is available.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;FICData&amp;#039;&amp;#039;: FIC data buffer&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Albrechtl</name></author>
	</entry>
	<entry>
		<id>https://wiki.opendigitalradio.org/index.php?title=Libdabdemod&amp;diff=1277</id>
		<title>Libdabdemod</title>
		<link rel="alternate" type="text/html" href="https://wiki.opendigitalradio.org/index.php?title=Libdabdemod&amp;diff=1277"/>
		<updated>2016-02-10T21:04:15Z</updated>

		<summary type="html">&lt;p&gt;Albrechtl: /* API Description */ Some  minor changes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=API Description=&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError SetDevice(LibSDRSource* libSDRSource)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Sets the SDR driver source from the library libsdrsource.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| libSDRSource: libsdrsource object&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError OpenDevice(void)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Opens the device&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| none&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError CloseDevice(void)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Closes the device&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| none&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError Start(void)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Starts the OFDM demodulation&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| none&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError Stop(void)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Stops the OFDM demodulation&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| none&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError SetFrequency(int32_t FrequencyKHz)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Sets the channel frequency in kHz&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;FrequencyKHz&amp;#039;&amp;#039;: Channel frequency in kHz&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;code&amp;gt;DemodError SetChannel(string Channel)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Sets the channel (Band III: 5A to 13F; L band: LA to LP)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;Channel&amp;#039;&amp;#039;: Channel string e.g.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError GetFrequency(int32_t* FrequencyKHz)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Gets the current frequency&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;FrequencyKHz&amp;#039;&amp;#039;: Pointer to frequency in KHz&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError GetChannel(string* Channel)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Gets the current channel&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;Channel&amp;#039;&amp;#039;: Channel string e.g. “5A”&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError GetSignalStatus(CSignalStatus* SignalStatus)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Gets the current signal status&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;SignalStatus&amp;#039;&amp;#039;: Pinter to signal status object.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError RemoveServiceComponent(CServiceComponent ServiceComponent)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Removes a selected service component&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;ServiceComponent&amp;#039;&amp;#039;: Service component object&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;CServiceComponent AddServiceComponent(char mode, char SubChId, short StartCU, char UEP_EEP, char UEPTabldx, char EEPIdx, short CUNum, short PacketAddr, char FECScheme)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Adds a service component&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;Mode&amp;#039;&amp;#039;: DAB Mode. 0: DAB audio, 1: DAB+ audio, 2: packet, 3: stream&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;SubChId&amp;#039;&amp;#039;: Sub-channel identifier&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;StartCU&amp;#039;&amp;#039;: Address the first Capacity Unit (CU) of the sub-channel&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;UEP_EEP&amp;#039;&amp;#039;: Short or the long form of the size and protection field. 0: short form (UEP), 1: long form (EEP)&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;UEPTabldx&amp;#039;&amp;#039;: UEP Table index. Only used if UEP_EEP=0&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;EEPIdx&amp;#039;&amp;#039;: Protection level. Only used if UEP_EEP=1&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;CUNum&amp;#039;&amp;#039;: Sub-channel size (CUs)&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;PacketAddr&amp;#039;&amp;#039;: Address of the packet in which the service component is carried&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;FECScheme&amp;#039;&amp;#039;: FEC Scheme&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Service component object, NULL if an error occurred&lt;br /&gt;
|}&lt;br /&gt;
For a detailed description please see &amp;quot;ETSI EN 300 401&amp;quot; section 6.2 &amp;quot;Sub-channel organization&amp;quot; and 6.3 &amp;quot;Service organization&amp;quot;. [https://www.worlddab.org/technology-rollout/standards/technical-specifications-list]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError GetServiceData(CServiceComponent ServiceComponent, CServiceData &amp;amp;ServiceData)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Gets the data of a selected service channel. This method is blocking. It blocks until new data is available.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;ServiceComponent&amp;#039;&amp;#039;: Service component buffer&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError GetFICData(CFICData &amp;amp;FICData)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Gets the FIC data. This method is blocking. It blocks until new data is available.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;FICData&amp;#039;&amp;#039;: FIC data buffer&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Albrechtl</name></author>
	</entry>
	<entry>
		<id>https://wiki.opendigitalradio.org/index.php?title=Libsdrsource&amp;diff=1276</id>
		<title>Libsdrsource</title>
		<link rel="alternate" type="text/html" href="https://wiki.opendigitalradio.org/index.php?title=Libsdrsource&amp;diff=1276"/>
		<updated>2016-02-10T21:03:22Z</updated>

		<summary type="html">&lt;p&gt;Albrechtl: /* API Description */ Some  minor changes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=API Description=&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;SDRError LibSDRSource::Open(void)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Opens the SDR device&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| none&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| SDR error enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;SDRError LibSDRSource::Close(void)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Closes the SDR device&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| none&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| SDR error enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;SDRError LibSDRSource::Reset(void)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Resets the SDR device&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| none&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| SDR error enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;SDRError LibSDRSource::SetFrequency(int32_t FrequencyKHz)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Sets the frequency in kHz&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;FrequencyKHz&amp;#039;&amp;#039;: Channel frequency in kHz&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| SDR error enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;SDRError LibSDRSource::GetFrequency(int32_t* FrequencyKHz)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Gets the current frequency&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;FrequencyKHz&amp;#039;&amp;#039;: Pointer to frequency in KHz&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| SDR error enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;SDRError LibSDRSource::GetSamples(CSDRSamples &amp;amp;SampleBuffer)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Gets the IQ samples. This method is blocking. It blocks until new data is available.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;SampleBuffer&amp;#039;&amp;#039;: Sample buffer&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| SDR error enum object&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Albrechtl</name></author>
	</entry>
	<entry>
		<id>https://wiki.opendigitalradio.org/index.php?title=Libsdrsource&amp;diff=1275</id>
		<title>Libsdrsource</title>
		<link rel="alternate" type="text/html" href="https://wiki.opendigitalradio.org/index.php?title=Libsdrsource&amp;diff=1275"/>
		<updated>2016-02-10T21:00:27Z</updated>

		<summary type="html">&lt;p&gt;Albrechtl: Created page with &amp;quot;=API Description=   &amp;lt;code&amp;gt;SDRError LibSDRSource::Open(void)&amp;lt;/code&amp;gt; {| class=&amp;quot;wikitable&amp;quot; |- | &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039; | Opens the SDR device |- | &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039; | none |- | &amp;#039;&amp;#039;&amp;#039;retur...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=API Description=&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;SDRError LibSDRSource::Open(void)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Opens the SDR device&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| none&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| SDR error enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;SDRError LibSDRSource::Close(void)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Closes the SDR device&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| none&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| SDR error enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;SDRError LibSDRSource::Reset(void)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Resets the SDR device&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| none&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| SDR error enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;SDRError LibSDRSource::SetFrequency(int32_t FrequencyKHz)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Sets the frequency in kHz&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;FrequencyKHz&amp;#039;&amp;#039;: Channel frequency in kHz&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| SDR error enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;SDRError LibSDRSource::GetFrequency(int32_t* FrequencyKHz)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Gets the current frequency&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| FrequencyKHz: Pointer to frequency in KHz&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| SDR error enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;SDRError LibSDRSource::GetSamples(CSDRSamples &amp;amp;SampleBuffer)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Gets the IQ samples. This method is blocking. It blocks until new data is available.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| SampleBuffer: Sample buffer&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| SDR error enum object&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Albrechtl</name></author>
	</entry>
	<entry>
		<id>https://wiki.opendigitalradio.org/index.php?title=Libdabdemod&amp;diff=1274</id>
		<title>Libdabdemod</title>
		<link rel="alternate" type="text/html" href="https://wiki.opendigitalradio.org/index.php?title=Libdabdemod&amp;diff=1274"/>
		<updated>2016-02-10T20:47:46Z</updated>

		<summary type="html">&lt;p&gt;Albrechtl: /* API Description */ Add AddServiceComponent() description&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=API Description=&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError SetDevice(LibSDRSource* libSDRSource)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Sets the SDR driver source from the library libsdrsource.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| libSDRSource: libsdrsource object&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError OpenDevice(void)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Opens the device&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| none&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError CloseDevice(void)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Closes the device&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| none&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError Start(void)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Starts the OFDM demodulation&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| none&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError Stop(void)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Stops the OFDM demodulation&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| none&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError SetFrequency(int32_t FrequencyKHz)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Sets the channel frequency in kHz&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;FrequencyKHz&amp;#039;&amp;#039;: Channel frequency in kHz&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;code&amp;gt;DemodError SetChannel(string Channel)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Sets the channel (Band III: 5A to 13F; L band: LA to LP)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;Channel&amp;#039;&amp;#039;: Channel string e.g.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError GetFrequency(int32_t* FrequencyKHz)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Gets the current frequency&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;FrequencyKHz&amp;#039;&amp;#039;: Pointer to frequency in KHz&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError GetChannel(string* Channel)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Gets the current channel&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;Channel&amp;#039;&amp;#039;: Channel string e.g. “5A”&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError GetSignalStatus(CSignalStatus* SignalStatus)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Gets the current signal status&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;SignalStatus&amp;#039;&amp;#039;: Pinter to signal status object.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError RemoveServiceComponent(CServiceComponent ServiceComponent)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Removes a selected service component&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;ServiceComponent&amp;#039;&amp;#039;: Service component object&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;CServiceComponent AddServiceComponent(char mode, char SubChId, short StartCU, char UEP_EEP, char UEPTabldx, char EEPIdx, short CUNum, short PacketAddr, char FECScheme)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Adds a service component&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Mode: DAB Mode. 0: DAB audio, 1: DAB+ audio, 2: packet, 3: stream&amp;lt;br/&amp;gt;&lt;br /&gt;
SubChId: Sub-channel identifier&amp;lt;br/&amp;gt;&lt;br /&gt;
StartCU: Address the first Capacity Unit (CU) of the sub-channel&amp;lt;br/&amp;gt;&lt;br /&gt;
UEP_EEP: Short or the long form of the size and protection field. 0: short form (UEP), 1: long form (EEP)&amp;lt;br/&amp;gt;&lt;br /&gt;
UEPTabldx: UEP Table index. Only used if UEP_EEP=0&amp;lt;br/&amp;gt;&lt;br /&gt;
EEPIdx: Protection level. Only used if UEP_EEP=1&amp;lt;br/&amp;gt;&lt;br /&gt;
CUNum: Sub-channel size (CUs)&amp;lt;br/&amp;gt;&lt;br /&gt;
PacketAddr: Address of the packet in which the service component is carried&amp;lt;br/&amp;gt;&lt;br /&gt;
FECScheme: FEC Scheme&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Service component object, NULL if an error occurred&lt;br /&gt;
|}&lt;br /&gt;
For a detailed description please see &amp;quot;ETSI EN 300 401&amp;quot; section 6.2 &amp;quot;Sub-channel organization&amp;quot; and 6.3 &amp;quot;Service organization&amp;quot;. [https://www.worlddab.org/technology-rollout/standards/technical-specifications-list]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError GetServiceData(CServiceComponent ServiceComponent, CServiceData &amp;amp;ServiceData)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Gets the data of a selected service channel. This method is blocking. It blocks until new data is available.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;ServiceComponent&amp;#039;&amp;#039;: Service component buffer&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError GetFICData(CFICData &amp;amp;FICData)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Gets the FIC data. This method is blocking. It blocks until new data is available.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;FICData&amp;#039;&amp;#039;: FIC data buffer&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Albrechtl</name></author>
	</entry>
	<entry>
		<id>https://wiki.opendigitalradio.org/index.php?title=Libdabdemod&amp;diff=1273</id>
		<title>Libdabdemod</title>
		<link rel="alternate" type="text/html" href="https://wiki.opendigitalradio.org/index.php?title=Libdabdemod&amp;diff=1273"/>
		<updated>2016-02-09T21:55:36Z</updated>

		<summary type="html">&lt;p&gt;Albrechtl: Initial page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=API Description=&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError SetDevice(LibSDRSource* libSDRSource)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Sets the SDR driver source from the library libsdrsource.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| libSDRSource: libsdrsource object&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError OpenDevice(void)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Opens the device&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| none&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError CloseDevice(void)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Closes the device&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| none&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError Start(void)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Starts the OFDM demodulation&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| none&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError Stop(void)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Stops the OFDM demodulation&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| none&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError SetFrequency(int32_t FrequencyKHz)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Sets the channel frequency in kHz&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;FrequencyKHz&amp;#039;&amp;#039;: Channel frequency in kHz&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;code&amp;gt;DemodError SetChannel(string Channel)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Sets the channel (Band III: 5A to 13F; L band: LA to LP)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;Channel&amp;#039;&amp;#039;: Channel string e.g.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError GetFrequency(int32_t* FrequencyKHz)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Gets the current frequency&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;FrequencyKHz&amp;#039;&amp;#039;: Pointer to frequency in KHz&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError GetChannel(string* Channel)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Gets the current channel&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;Channel&amp;#039;&amp;#039;: Channel string e.g. “5A”&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError GetSignalStatus(CSignalStatus* SignalStatus)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Gets the current signal status&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;SignalStatus&amp;#039;&amp;#039;: Pinter to signal status object.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError RemoveServiceComponent(CServiceComponent ServiceComponent)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Removes a selected service component&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;ServiceComponent&amp;#039;&amp;#039;: Service component object&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;CServiceComponent AddServiceComponent(char mode, char SubChId, short StartCU, char UEP_EEP, char UEPTabldx, char EEPIdx, short CUNum, short PacketAddr, char FECScheme)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Adds a service component&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Mode: TBD&amp;lt;br/&amp;gt;&lt;br /&gt;
SubChId: TBD&amp;lt;br/&amp;gt;&lt;br /&gt;
StartCU: TBD&amp;lt;br/&amp;gt;&lt;br /&gt;
UEP_EEP: TBD&amp;lt;br/&amp;gt;&lt;br /&gt;
UEPTabldx: TBD&amp;lt;br/&amp;gt;&lt;br /&gt;
EEPIdx: TBD&amp;lt;br/&amp;gt;&lt;br /&gt;
CUNum: TBD&amp;lt;br/&amp;gt;&lt;br /&gt;
PacketAddr: TBD&amp;lt;br/&amp;gt;&lt;br /&gt;
FECScheme: TBD&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Service component object, NULL if an error occurred&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError GetServiceData(CServiceComponent ServiceComponent, CServiceData &amp;amp;ServiceData)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Gets the data of a selected service channel. This method is blocking. It blocks until new data is available.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;ServiceComponent&amp;#039;&amp;#039;: Service component buffer&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;DemodError GetFICData(CFICData &amp;amp;FICData)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Gets the FIC data. This method is blocking. It blocks until new data is available.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parameter&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;FICData&amp;#039;&amp;#039;: FIC data buffer&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Error code enum object&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Albrechtl</name></author>
	</entry>
	<entry>
		<id>https://wiki.opendigitalradio.org/index.php?title=DAB_reception&amp;diff=1272</id>
		<title>DAB reception</title>
		<link rel="alternate" type="text/html" href="https://wiki.opendigitalradio.org/index.php?title=DAB_reception&amp;diff=1272"/>
		<updated>2016-02-09T21:11:34Z</updated>

		<summary type="html">&lt;p&gt;Albrechtl: /* Architecture */ Add wiki page links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
This side informs you about a concept of a open source DAB receiver.&lt;br /&gt;
&lt;br /&gt;
==Open source DAB receiver concept==&lt;br /&gt;
===Goal===&lt;br /&gt;
To develop libraries to cover all parts of a full DAB and DAB+ SDR receiver.&lt;br /&gt;
*Well defined library APIs&lt;br /&gt;
*Easy to use APIs&lt;br /&gt;
*Cross platform support (x86, arm, Linux, Windows, etc.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Requirements===&lt;br /&gt;
*Based on the SDR-J code&lt;br /&gt;
*Use of C++11 to use the threading feature&lt;br /&gt;
*Multicore support&lt;br /&gt;
*cmake as build environment&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Architecture===&lt;br /&gt;
[[File:DAB_Receiver_Concept.png|800px]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Library Name&lt;br /&gt;
! Purpose&lt;br /&gt;
|-&lt;br /&gt;
| [[libsdrsource]]&lt;br /&gt;
|&lt;br /&gt;
Interface to different SDR devices&lt;br /&gt;
|-&lt;br /&gt;
| [[libdabdemod]]&lt;br /&gt;
|&lt;br /&gt;
*OFDM demodulation&lt;br /&gt;
*Frequency synchronization&lt;br /&gt;
*Time synchronization&lt;br /&gt;
*Output of the digital DAB stream&lt;br /&gt;
|-&lt;br /&gt;
|libdabdecode&lt;br /&gt;
|&lt;br /&gt;
*DAB and DAB+ frame decoding (FIC, Superframes etc.)&lt;br /&gt;
*CRC correction&lt;br /&gt;
*Output of MPEG or ACC stream&lt;br /&gt;
|-&lt;br /&gt;
| End user program&lt;br /&gt;
|&lt;br /&gt;
*Place holder for GUIs&lt;br /&gt;
*There can be a QT GUI, a GTK GUI or a Kodi plugin&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===API description===&lt;br /&gt;
*TBD &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===To be discussed===&lt;br /&gt;
*Naming of libraries&lt;br /&gt;
*APIs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===GUI Wishlist===&lt;br /&gt;
*Easy to use&lt;br /&gt;
*Channel scan&lt;br /&gt;
*High DPI support&lt;br /&gt;
*libnotify support&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Existing open DAB/DAB+/T-DMB software receiver==&lt;br /&gt;
[[Image:Phon3b small.jpg|100px|right]]&lt;br /&gt;
&lt;br /&gt;
===Software Defined DAB Receiver (complete software receiver)===&lt;br /&gt;
*[http://www.sdr-j.tk/index.html SDR-J] (running on Linux and Windows, using RTL2832 based USB sticks)&lt;br /&gt;
*[http://www.zsn.zhaw.ch/de/engineering/zsn/projekte/gnu-radio.html DAB receiver for gnuradio] (by Zurich School of Engineering, documentation in German)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Software defined DAB receiver (up to logical layer)===&lt;br /&gt;
*[[Gnuradio DAB constellation using gr-dab and USRP]]&lt;br /&gt;
*[https://github.com/andrmuel/gr-dab Gnuradio blocks for DAB reception] (developments from Andreas Mueller, ETHZ)&lt;br /&gt;
**[http://www.0x7.ch/text/dab-report.pdf Documentation] any other information on http://www.0x7.ch/text/#index3h2&lt;br /&gt;
*[https://www.cgran.org/browser/projects/dabp/trunk Under construction gnuradio project on DAB+ reception on CGRAN]&lt;br /&gt;
&lt;br /&gt;
===Software defined DAB receiver (from logical layer up to application layer)===&lt;br /&gt;
====Openmokast====&lt;br /&gt;
&lt;br /&gt;
Open Receiver project from CRC using RDI streams from DAB baseband receivers/decoders.&lt;br /&gt;
*http://www.openmokast.org&lt;br /&gt;
&lt;br /&gt;
Receiver for the Psion Wavefinder&lt;br /&gt;
*[http://sourceforge.net/projects/opendab/ OpenDAB]&lt;/div&gt;</summary>
		<author><name>Albrechtl</name></author>
	</entry>
	<entry>
		<id>https://wiki.opendigitalradio.org/index.php?title=DAB_reception&amp;diff=1271</id>
		<title>DAB reception</title>
		<link rel="alternate" type="text/html" href="https://wiki.opendigitalradio.org/index.php?title=DAB_reception&amp;diff=1271"/>
		<updated>2016-02-04T18:24:25Z</updated>

		<summary type="html">&lt;p&gt;Albrechtl: Added DAB receiver concept&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
This side informs you about a concept of a open source DAB receiver.&lt;br /&gt;
&lt;br /&gt;
==Open source DAB receiver concept==&lt;br /&gt;
===Goal===&lt;br /&gt;
To develop libraries to cover all parts of a full DAB and DAB+ SDR receiver.&lt;br /&gt;
*Well defined library APIs&lt;br /&gt;
*Easy to use APIs&lt;br /&gt;
*Cross platform support (x86, arm, Linux, Windows, etc.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Requirements===&lt;br /&gt;
*Based on the SDR-J code&lt;br /&gt;
*Use of C++11 to use the threading feature&lt;br /&gt;
*Multicore support&lt;br /&gt;
*cmake as build environment&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Architecture===&lt;br /&gt;
[[File:DAB_Receiver_Concept.png|800px]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Library Name&lt;br /&gt;
! Purpose&lt;br /&gt;
|-&lt;br /&gt;
| libsdrsource&lt;br /&gt;
|&lt;br /&gt;
Interface to different SDR devices&lt;br /&gt;
|-&lt;br /&gt;
| libdabdemod&lt;br /&gt;
|&lt;br /&gt;
*OFDM demodulation&lt;br /&gt;
*Frequency synchronization&lt;br /&gt;
*Time synchronization&lt;br /&gt;
*Output of the digital DAB stream&lt;br /&gt;
|-&lt;br /&gt;
|libdabdecode&lt;br /&gt;
|&lt;br /&gt;
*DAB and DAB+ frame decoding (FIC, Superframes etc.)&lt;br /&gt;
*CRC correction&lt;br /&gt;
*Output of MPEG or ACC stream&lt;br /&gt;
|-&lt;br /&gt;
| End user program&lt;br /&gt;
|&lt;br /&gt;
*Place holder for GUIs&lt;br /&gt;
*There can be a QT GUI, a GTK GUI or a Kodi plugin&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===API description===&lt;br /&gt;
*TBD &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===To be discussed===&lt;br /&gt;
*Naming of libraries&lt;br /&gt;
*APIs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===GUI Wishlist===&lt;br /&gt;
*Easy to use&lt;br /&gt;
*Channel scan&lt;br /&gt;
*High DPI support&lt;br /&gt;
*libnotify support&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Existing open DAB/DAB+/T-DMB software receiver==&lt;br /&gt;
[[Image:Phon3b small.jpg|100px|right]]&lt;br /&gt;
&lt;br /&gt;
===Software Defined DAB Receiver (complete software receiver)===&lt;br /&gt;
*[http://www.sdr-j.tk/index.html SDR-J] (running on Linux and Windows, using RTL2832 based USB sticks)&lt;br /&gt;
*[http://www.zsn.zhaw.ch/de/engineering/zsn/projekte/gnu-radio.html DAB receiver for gnuradio] (by Zurich School of Engineering, documentation in German)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Software defined DAB receiver (up to logical layer)===&lt;br /&gt;
*[[Gnuradio DAB constellation using gr-dab and USRP]]&lt;br /&gt;
*[https://github.com/andrmuel/gr-dab Gnuradio blocks for DAB reception] (developments from Andreas Mueller, ETHZ)&lt;br /&gt;
**[http://www.0x7.ch/text/dab-report.pdf Documentation] any other information on http://www.0x7.ch/text/#index3h2&lt;br /&gt;
*[https://www.cgran.org/browser/projects/dabp/trunk Under construction gnuradio project on DAB+ reception on CGRAN]&lt;br /&gt;
&lt;br /&gt;
===Software defined DAB receiver (from logical layer up to application layer)===&lt;br /&gt;
====Openmokast====&lt;br /&gt;
&lt;br /&gt;
Open Receiver project from CRC using RDI streams from DAB baseband receivers/decoders.&lt;br /&gt;
*http://www.openmokast.org&lt;br /&gt;
&lt;br /&gt;
Receiver for the Psion Wavefinder&lt;br /&gt;
*[http://sourceforge.net/projects/opendab/ OpenDAB]&lt;/div&gt;</summary>
		<author><name>Albrechtl</name></author>
	</entry>
	<entry>
		<id>https://wiki.opendigitalradio.org/index.php?title=File:DAB_Receiver_Concept.png&amp;diff=1270</id>
		<title>File:DAB Receiver Concept.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.opendigitalradio.org/index.php?title=File:DAB_Receiver_Concept.png&amp;diff=1270"/>
		<updated>2016-02-04T18:13:45Z</updated>

		<summary type="html">&lt;p&gt;Albrechtl: Library concept of a DAB receiver&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Library concept of a DAB receiver&lt;/div&gt;</summary>
		<author><name>Albrechtl</name></author>
	</entry>
</feed>