예제 #1
0
static void dmx_callback(void *UNUSED(unk), dmx_t *dmx, int32_t type, dmx_callback_data_t *data)
{
	if(!dmx)
	{
		cs_debug_mask(D_DVBAPI, "wrong dmx pointer !!!");
		return;
	}

	if(data != NULL)
	{
		switch(type)
		{
		case 0xE:
			if(data->type == 1 && data->len > 0)
			{
				coolapi_read_data(dmx, data);
			}
			else
				{ cs_debug_mask(D_DVBAPI, "unknown callback data %d len %d", data->type, data->len); }
			break;
		default:
			break;

		}
	}
}
예제 #2
0
static void dmx_callback(void * unk, dmx_t * dmx, int32_t type, void * data)
{
	dmx_callback_data_t * cdata = (dmx_callback_data_t *) data;
	unk = unk;

	if(!dmx) {
		cs_debug_mask(D_DVBAPI, "wrong dmx pointer !!!");
		return;
	}
	if(cdata != NULL) {
		switch(type) {
			case 0xE:
				if(cdata->type == 1) {
					coolapi_read_data(dmx->fd, cdata->len);
				} else
					cs_debug_mask(D_DVBAPI, "unknown callback data %d len %d", cdata->type, cdata->len);
				break;
			default:
				break;

		}
	}
}
예제 #3
0
static void dmx_callback(void *channel, dmx_t *dmx, int32_t type, dmx_callback_data_t *data)
{
	if(!dmx)
	{
		cs_log_dbg(D_DVBAPI, "wrong dmx pointer !!!");
		return;
	}

	if(data == NULL)
		return;

	if (channel != data->channel)
		return;

	switch(type)
	{
#ifdef WITH_COOLAPI2
	case 0x11:
#else
	case 0x0E:
#endif
		if(data->type == COOLDEMUX_DATA_RECEIVED && data->len > 0) {
			coolapi_read_data(dmx, data);
		} else if(data->type == COOLDEMUX_CRC_ERROR && data->len > 0) {
			cs_log_dbg(D_DVBAPI, "CRC error !!!");
			cnxt_cbuf_removed_data(data->buf, data->len);
		} else if(data->type == COOLDEMUX_BUFF_OVERFLOW) {
			cs_log_dbg(D_DVBAPI, "OVERFLOW !!!");
		} else {
			cs_log_dbg(D_DVBAPI, "unknown callback data %d len %d", data->type, data->len);
		}
		break;
	default:
		break;
	}
}