⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dump-kaffeine.c

📁 dvb在linux下搜索电台的源代码
💻 C
字号:
#include <stdio.h>#include "dump-kaffeine.h"#include <linux/dvb/frontend.h>int kaffeine_chnum=1;void kaffeine_dump_service_parameter_set (FILE *f,				 const char *service_name,				 const char *provider_name,				 fe_type_t type,				 struct dvb_frontend_parameters *p,				 char polarity,				 int video_pid,				 int pcr_pid,				 uint16_t *audio_pid,                                 int audio_num,				 int teletext_pid,				 int scrambled,				 int ac3_pid,                                 int service_id,				 int original_network_id,				 int transport_stream_id,				 int dump_provider,				 int ca_select,				 int vdr_version,				 int dump_channum,				 int channel_num){  int i;  if (kaffeine_chnum == 1) {    /* write header */    fprintf (f, "# kaffeine channels.dvb automatically generated by w_scan\n");    fprintf (f, "# see (http://free.pages.at/wirbel4vdr/w_scan/index2.html)\n");    fprintf (f, "# TV(C)/RA(C)|name|vpid|apids|ttpid|sid|tsid|{S/C/T}|freq|sr|pol|fec_H|inv|mod|fec_L|bw|tm|gi|h|num|subpids|category\n");    }  fprintf(f, "%s|", ((scrambled==0) && (video_pid >0))?"TV":                    ((scrambled==0) && (video_pid==0))?"RA":                    (video_pid)?"TVC":"RAC");  fprintf(f, "%s|", service_name);  fprintf(f,"%i|", video_pid);  fprintf(f,"%i,", audio_pid[0]);  for (i=1; i < audio_num; i++)  fprintf(f,"%i,",audio_pid[i]);  if (ac3_pid)                   fprintf (f,"%i(ac3),",ac3_pid);  fprintf(f,"|");  fprintf(f, "%d|",teletext_pid);  fprintf(f, "%d|",service_id);  fprintf(f, "%d|",transport_stream_id);  switch (type) {    case FE_QAM:  /* DVB-C */      fprintf(f, "Cable|");      break;    case FE_OFDM: /* DVB-T */      fprintf(f, "Terrestrial|");      break;    default: break;    }  fprintf(f, "%i|", p->frequency / 1000);            /* 6 digits      */  fprintf(f, "%i|", p->u.qam.symbol_rate / 1000);    /* 4 or 5 digits */  fprintf(f, "%s|", "v");                            /* dummy for polarisation */  switch (type) {    case FE_QAM:  /* DVB-C */      fprintf(f, "-1|"); /* FEC_AUTO -> simply ignored inside VDR */                     break;    case FE_OFDM: /* DVB-T */      switch (p->u.ofdm.code_rate_HP) {        case FEC_NONE:fprintf(f, "0|");  break;        case FEC_1_2: fprintf(f, "12|"); break;        case FEC_2_3: fprintf(f, "23|"); break;        case FEC_3_4: fprintf(f, "34|"); break;        case FEC_4_5: fprintf(f, "45|"); break;        case FEC_5_6: fprintf(f, "56|"); break;        case FEC_6_7: fprintf(f, "67|"); break;        case FEC_7_8: fprintf(f, "78|"); break;        case FEC_8_9: fprintf(f, "89|"); break;        default: fprintf(f, "-1|"); /* FEC_AUTO */        }      break;    default: break;    }  switch (p->inversion) {    case INVERSION_OFF: fprintf(f, "0|");  break;    case INVERSION_ON : fprintf(f, "1|");  break;    default:            fprintf(f, "-1|"); /* INVERSION_AUTO */    }  switch (type) { /* modulation */    case FE_QAM:  /* DVB-C */      switch (p->u.qam.modulation) {        case QAM_16:  fprintf(f, "16|" ); break;        case QAM_32:  fprintf(f, "32|" ); break;        case QAM_64:  fprintf(f, "64|" ); break;        case QAM_128: fprintf(f, "128|"); break;        case QAM_256: fprintf(f, "256|"); break;        default: fprintf(f, "-1|"); /* QAM_AUTO */        }      fprintf(f, "-1|"); /* FEC_LP    */      fprintf(f, "-1|"); /* Bandwidth */      fprintf(f, "-1|"); /* transmission mode */      fprintf(f, "-1|"); /* guard interval */      fprintf(f, "-1|"); /* hierarchy */      break;    case FE_OFDM: /* DVB-T */      switch (p->u.ofdm.constellation) {        case QPSK:    fprintf(f, "8|" );  break;        case QAM_16:  fprintf(f, "16|" ); break;        case QAM_32:  fprintf(f, "32|" ); break;        case QAM_64:  fprintf(f, "64|" ); break;        case QAM_128: fprintf(f, "128|"); break;        case QAM_256: fprintf(f, "256|"); break;        default: fprintf(f, "-1|"); /* QAM_AUTO */        }      switch (p->u.ofdm.code_rate_LP) {        case FEC_NONE:fprintf(f, "0|");  break;        case FEC_1_2: fprintf(f, "12|"); break;        case FEC_2_3: fprintf(f, "23|"); break;        case FEC_3_4: fprintf(f, "34|"); break;        case FEC_4_5: fprintf(f, "45|"); break;        case FEC_5_6: fprintf(f, "56|"); break;        case FEC_6_7: fprintf(f, "67|"); break;        case FEC_7_8: fprintf(f, "78|"); break;        case FEC_8_9: fprintf(f, "89|"); break;        default: fprintf(f, "-1|"); /* FEC_AUTO */        }      switch (p->u.ofdm.bandwidth) {        case BANDWIDTH_8_MHZ: fprintf(f, "8|"); break;        case BANDWIDTH_7_MHZ: fprintf(f, "7|"); break;        case BANDWIDTH_6_MHZ: fprintf(f, "6|"); break;        default: fprintf(f, "-1|"); /* BANDWIDTH_AUTO */        }      switch (p->u.ofdm.transmission_mode) {        case TRANSMISSION_MODE_8K: fprintf(f, "8|"); break;        case TRANSMISSION_MODE_2K: fprintf(f, "2|"); break;        default: fprintf(f, "-1|"); /* TRANSMISSION_MODE_AUTO */        }      switch (p->u.ofdm.guard_interval) {        case GUARD_INTERVAL_1_32: fprintf(f, "32|"); break;        case GUARD_INTERVAL_1_16: fprintf(f, "16|"); break;        case GUARD_INTERVAL_1_8:  fprintf(f, "8|");  break;        case GUARD_INTERVAL_1_4:  fprintf(f, "4|");  break;        default: fprintf(f, "-1|"); /* GUARD_INTERVAL_AUTO */        }      switch (p->u.ofdm.hierarchy_information) {        case HIERARCHY_NONE: fprintf(f, "0|"); break;        case HIERARCHY_1:    fprintf(f, "1|"); break;        case HIERARCHY_2:    fprintf(f, "2|"); break;        case HIERARCHY_4:    fprintf(f, "4|"); break;        default: fprintf(f, "-1|"); /* HIERARCHY_AUTO */        }      break;    default: break;    }  fprintf(f, "%d|",kaffeine_chnum++); /* channel number, ascending              */  fprintf(f, "%s|","");               /* list of subpids? Dont know up to now.. */  fprintf(f, "%s|\n","");             /* category? Dont know up to now..        */}

⌨️ 快捷键说明

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