dump-xine.c

来自「dvb在linux下搜索电台的源代码」· C语言 代码 · 共 113 行

C
113
字号
#include <stdio.h>#include "dump-xine.h"#include <linux/dvb/frontend.h>static const char *inv_name [] = {	"INVERSION_OFF",	"INVERSION_ON",	"INVERSION_AUTO"};static const char *fec_name [] = {	"FEC_NONE",	"FEC_1_2",	"FEC_2_3",	"FEC_3_4",	"FEC_4_5",	"FEC_5_6",	"FEC_6_7",	"FEC_7_8",	"FEC_8_9",	"FEC_AUTO"};static const char *qam_name [] = {	"QPSK",	"QAM_16",	"QAM_32",	"QAM_64",	"QAM_128",	"QAM_256",	"QAM_AUTO"};static const char *bw_name [] = {	"BANDWIDTH_8_MHZ",	"BANDWIDTH_7_MHZ",	"BANDWIDTH_6_MHZ",	"BANDWIDTH_AUTO"};static const char *mode_name [] = {	"TRANSMISSION_MODE_2K",	"TRANSMISSION_MODE_8K",	"TRANSMISSION_MODE_AUTO"};static const char *guard_name [] = {	"GUARD_INTERVAL_1_32",	"GUARD_INTERVAL_1_16",	"GUARD_INTERVAL_1_8",	"GUARD_INTERVAL_1_4",	"GUARD_INTERVAL_AUTO"};static const char *hierarchy_name [] = {	"HIERARCHY_NONE",	"HIERARCHY_1",	"HIERARCHY_2",	"HIERARCHY_4",	"HIERARCHY_AUTO"};void xine_dump_dvb_parameters (FILE *f, fe_type_t type, struct dvb_frontend_parameters *p){	switch (type) {	case FE_QAM:		fprintf (f, "%i:", p->frequency);		fprintf (f, "%s:", inv_name[p->inversion]);		fprintf (f, "%i:", p->u.qpsk.symbol_rate);		fprintf (f, "%s:", fec_name[p->u.qpsk.fec_inner]);		fprintf (f, "%s",  qam_name[p->u.qam.modulation]);		break;	case FE_OFDM:		fprintf (f, "%i:", p->frequency);		fprintf (f, "%s:", inv_name[p->inversion]);		fprintf (f, "%s:", bw_name[p->u.ofdm.bandwidth]);		fprintf (f, "%s:", fec_name[p->u.ofdm.code_rate_HP]);		fprintf (f, "%s:", fec_name[p->u.ofdm.code_rate_LP]);		fprintf (f, "%s:", qam_name[p->u.ofdm.constellation]);		fprintf (f, "%s:", mode_name[p->u.ofdm.transmission_mode]);		fprintf (f, "%s:", guard_name[p->u.ofdm.guard_interval]);		fprintf (f, "%s",  hierarchy_name[p->u.ofdm.hierarchy_information]);		break;	default:		;	};}void xine_dump_service_parameter_set (FILE *f, 				 const char *service_name,				 const char *provider_name,				 fe_type_t type,				 struct dvb_frontend_parameters *p,				 uint16_t video_pid,				 uint16_t *audio_pid,				 uint16_t service_id){	if (video_pid || audio_pid[0]) {		fprintf (f, "%s(%s):", service_name, provider_name);		xine_dump_dvb_parameters (f, type, p);		fprintf (f, ":%i:%i:%i", video_pid, audio_pid[0], service_id);		fprintf (f, "\n");		}}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?