예제 #1
0
void coolapi_close_all(void)
{
	SAFE_MUTEX_LOCK(&demux_lock);

	if(!dmx_opened) {
		SAFE_MUTEX_UNLOCK(&demux_lock);
		return;
	}

	int32_t i, j;

	for(i = 0; i < MAX_COOL_DMX; i++)
	{
		for(j = 0; j < MAX_FILTER; j++)
		{
			if(cdemuxes[i][j].fd > 0)
			{
				coolapi_remove_filter(cdemuxes[i][j].fd, cdemuxes[i][j].filter_num);
				coolapi_close_device(cdemuxes[i][j].fd);
			}
		}
	}

	coolapi_dmx_close();
	coolapi_stop_api();
	cool_kal_opened = 0;

	SAFE_MUTEX_UNLOCK(&demux_lock);
}
예제 #2
0
void coolapi_close_all(void)
{
	if(dmx_opened)
	{
		int32_t result;
		int32_t i, j;

		for(i = 0; i < MAX_COOL_DMX; i++)
		{
			for(j = 0; j < MAX_FILTER; j++)
			{
				if(cdemuxes[i][j].fd > 0)
				{
					coolapi_remove_filter(cdemuxes[i][j].fd, cdemuxes[i][j].filter_num);
					coolapi_close_device(cdemuxes[i][j].fd);
				}
			}
		}
		for(i = 0; i < MAX_COOL_DMX; i++)
		{
			result = cnxt_dmx_close(dmx_device[i]);
			coolapi_check_error("cnxt_dmx_close", result);
			dmx_device[i] = NULL;
		}
	}
	cool_kal_opened = 0;
	cnxt_kal_terminate();
	cnxt_drv_term();
}