mirror of
				https://github.com/f4exb/sdrangel.git
				synced 2025-10-30 20:40:20 -04:00 
			
		
		
		
	
		
			
	
	
		
			66 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			66 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
|  | #include "DVB2.h"
 | ||
|  | 
 | ||
|  | #ifndef __SCMPLX__
 | ||
|  | typedef struct{ | ||
|  |     short re; | ||
|  |     short im; | ||
|  | }scmplx; | ||
|  | 
 | ||
|  | #endif
 | ||
|  | 
 | ||
|  | #ifndef DVBS2_H
 | ||
|  | #define DVBS2_H
 | ||
|  | 
 | ||
|  | #ifndef M_PI
 | ||
|  | #define M_PI 3.14159f
 | ||
|  | #endif
 | ||
|  | 
 | ||
|  | #define loggerf printf
 | ||
|  | 
 | ||
|  | class DVBS2 : public DVB2{ | ||
|  | private: | ||
|  |         const static unsigned long g[6]; | ||
|  |         const static int ph_scram_tab[64]; | ||
|  |         const static int ph_sync_seq[26]; | ||
|  |         scmplx m_bpsk[2][2]; | ||
|  |         scmplx m_qpsk[4]; | ||
|  |         scmplx m_8psk[8]; | ||
|  |         scmplx m_16apsk[16]; | ||
|  |         scmplx m_32apsk[32]; | ||
|  |         scmplx m_pl[FRAME_SIZE_NORMAL]; | ||
|  |         scmplx m_pl_dummy[FRAME_SIZE_NORMAL]; | ||
|  |         int m_cscram[FRAME_SIZE_NORMAL]; | ||
|  |         int m_iframe[FRAME_SIZE_NORMAL]; | ||
|  |         int m_payload_symbols; | ||
|  |         int m_dummy_frame_length; | ||
|  | 		int m_configured; | ||
|  |         double m_efficiency; | ||
|  |         int m_s2_config_updated; | ||
|  |         void b_64_7_code( unsigned char in, int *out ); | ||
|  |         void s2_pl_header_encode( u8 modcod, u8 type, int *out); | ||
|  |         void modulator_configuration(void); | ||
|  |         void s2_interleave( void ); | ||
|  |         void s2_pl_header_create(void); | ||
|  |         int  s2_pl_data_pack( void ); | ||
|  |         void pl_scramble_symbols( scmplx *fs, int len ); | ||
|  |         void pl_scramble_dummy_symbols( int len ); | ||
|  |         void pl_build_dummy( void ); | ||
|  |         int parity_chk( long a, long b); | ||
|  |         void build_symbol_scrambler_table( void ); | ||
|  |         void calc_efficiency( void ); | ||
|  |         void end_of_frame_actions(void); | ||
|  | 
 | ||
|  | public: | ||
|  | 		int is_valid(int mod, int coderate);		 | ||
|  | 		double s2_get_efficiency( void ); | ||
|  |         void physical(void); | ||
|  |         int s2_set_configure( DVB2FrameFormat *f ); | ||
|  |         void s2_get_configure( DVB2FrameFormat *f ); | ||
|  |         scmplx *pl_get_frame(void); | ||
|  |         scmplx *pl_get_dummy( int &len ); | ||
|  |         int s2_add_ts_frame( u8 *ts ); | ||
|  | 	DVBS2(); | ||
|  | }; | ||
|  | 
 | ||
|  | #endif
 |