Linux-DVB

 view release on metacpan or  search on metacpan

DVB.xs  view on Meta::CPAN

	    {
	      I8 bandwidth_mhz = -1;
	    
	      HVS (hv, centre_frequency, newSVuv (decode_field (32) * 10));

	      DEC_I (hv,  3, bandwidth);

	      if (dec_field <= 3) 
	        bandwidth_mhz = 8 - dec_field;

	      HVS (hv, bandwidth_mhz, newSViv (bandwidth_mhz));

	      DEC_I (hv,  1, priority);
	      DEC_I (hv,  1, time_slicing_indicator);
	      DEC_I (hv,  1, mpe_fec_indicator);
	      decode_field (2); // reserved
	      DEC_I (hv,  2, constellation);
	      DEC_I (hv,  3, hierarchy_information);
	      DEC_I (hv,  3, code_rate_hp_stream);
	      DEC_I (hv,  3, code_rate_lp_stream);
	      DEC_I (hv,  2, guard_interval);
	      DEC_I (hv,  2, transmission_mode);
	      DEC_I (hv,  1, other_frequency_use);
	      decode_field (32);
	    }
	    break;

          case DT_private_data_specifier:
            DEC_I (hv, 32, private_data_specifier);
            break;
           
          default:
            //fprintf (stderr, "UNKXXX %x\n", type);//D

          case 0:
          case 0x80:
          case 0x81:
          case 0x82:
          case 0x83:
          case 0x84:
          case 0x85:
          case 0x8d:
          case 0x8e:
          case 0xb2:
            DEC_S (hv, len, raw_data);
            break;
        }

      dec_ofs = end; // re-sync, in case of problems
    }

  return av;
}

MODULE = Linux::DVB		PACKAGE = Linux::DVB

PROTOTYPES: DISABLE

void
_consts ()
	PPCODE:
        const struct consts *c;
        for (c = consts;
             c < consts + sizeof (consts) / sizeof (consts[0]);
             c++)
          {
            XPUSHs (sv_2mortal (newSVpv (c->name, 0)));
            XPUSHs (sv_2mortal (newSViv (c->value)));
          }

MODULE = Linux::DVB		PACKAGE = Linux::DVB::Frontend

SV *
frontend_info (FE_fd fd)
	CODE:
        struct dvb_frontend_info fi;
        HV *hv;

        if (ioctl (fd, FE_GET_INFO, &fi) < 0)
	  XSRETURN_UNDEF;

        hv = newHV ();
        HVS_S (hv, fi, name);
        HVS_I (hv, fi, type);
	HVS_I (hv, fi, type);
	HVS_I (hv, fi, frequency_min);
	HVS_I (hv, fi, frequency_max);
	HVS_I (hv, fi, frequency_stepsize);
	HVS_I (hv, fi, frequency_tolerance);
	HVS_I (hv, fi, symbol_rate_min);
	HVS_I (hv, fi, symbol_rate_max);
	HVS_I (hv, fi, symbol_rate_tolerance);
	HVS_I (hv, fi, notifier_delay);
	HVS_I (hv, fi, caps);

        RETVAL = (SV *)newRV_noinc ((SV *)hv);
	OUTPUT:
        RETVAL

long
read_status (FE_fd fd)
	CODE:
        fe_status_t st;

        if (ioctl (fd, FE_READ_STATUS, &st) < 0)
	  XSRETURN_UNDEF;

        RETVAL = st;
	OUTPUT:
        RETVAL

U32
read_ber (FE_fd fd)
	CODE:
        uint32_t ber;
        if (ioctl (fd, FE_READ_BER, &ber) < 0)
	  XSRETURN_UNDEF;

        RETVAL = ber;
	OUTPUT:
        RETVAL



( run in 3.062 seconds using v1.01-cache-2.11-cpan-71847e10f99 )