Beispiel #1
0
int dvb_diseqcSetup(int frontend_fd, uint32_t frequency, diseqcSwitchType_t type, uint32_t port, uint32_t polarization)
{
	if(g_uncommited) {
		uint8_t ucmd[4] = { 0xe0, 0x10, 0x39, g_uncommited - 1 };
		dvb_diseqcSend(frontend_fd, ucmd, 4);
	}

	int _port = (type == diseqcSwitchMulti) ? port & 1 : port;
	uint8_t data_hi = (type == diseqcSwitchMulti) ? 0x70 : 0xF0;
	uint8_t cmd[4] = { 0xe0, 0x10, 0x38, data_hi | diseqc_data_lo(_port, (polarization == SEC_VOLTAGE_13), frequency) };

	dvb_diseqcSend(frontend_fd, cmd, 4);
	return 0;
}
Beispiel #2
0
static int32_t dvbfe_diseqcSetup(uint32_t adapter, uint32_t frequency, EIT_media_config_t *media)
{
	if((dvbfe_getType(adapter) != SYS_DVBS) || (appControlInfo.dvbsInfo.diseqc.type == 0)) {
		return 0;
	}
	if(appControlInfo.dvbsInfo.diseqc.uncommited) {
		uint8_t ucmd[4] = { 0xe0, 0x10, 0x39, appControlInfo.dvbsInfo.diseqc.uncommited-1 };
		dvbfe_diseqcSend(adapter, ucmd, 4);
	}
	int32_t is_vertical = media ? media->dvb_s.polarization == 0x01 : appControlInfo.dvbsInfo.polarization != 0;
	int32_t port = appControlInfo.dvbsInfo.diseqc.type == diseqcSwitchMulti ?
					appControlInfo.dvbsInfo.diseqc.port & 1 :
					appControlInfo.dvbsInfo.diseqc.port;
	uint8_t data_hi = appControlInfo.dvbsInfo.diseqc.type == diseqcSwitchMulti ? 0x70 : 0xF0;
	uint8_t cmd[4] = { 0xe0, 0x10, 0x38, data_hi | diseqc_data_lo(port, is_vertical, frequency) };

	dvbfe_diseqcSend(adapter, cmd, 4);
	return 0;
}