예제 #1
0
void StandAloneInitialize (void)
{
	//we need to figure out what dal to create
	EAP_STND_ALONE_CFG const * pStdaCfg;
	DAL_RATE_MODE_ENUM rate_mode = eDAL_RATE_MODE_LOW_MID;
	DAL_NOMINAL_RATE_ENUM rate = eDAL_NOMINAL_RATE_ANY;
	DAL_CLOCK_SOURCE_ENUM clksrc;
	
	pStdaCfg = eapGetStandaloneCfg();
	clksrc = CLOCK_SOURCE[pStdaCfg->clkSrc];
	if (clksrc == eDAL_CLK_SRC_AESRX0)
	{
		rate_mode = eDAL_RATE_MODE_ALL; //auto lock to 32k-192k
	}
	
	else
	{
		//illegal, do something
		rate = eDAL_NOMINAL_RATE_48;
	}
	dalCreateInterface(eDAL_INTERFACE_1, rate_mode, STDA_INPUT_DEVICES,STDA_OUTPUT_DEVICES);
	dalSetClockSource (eDAL_INTERFACE_1, clksrc, rate);
	dalStartInterface(eDAL_INTERFACE_1);
	//update the routing now according to the currently locked rate mode, in auto modes this might change
	//so in that case this function must be called.
	updateStdaRouting(); 
}
예제 #2
0
HRESULT myAppDumpStdAlone(void)
{
	EAP_STND_ALONE_CFG const * pStdaCfg;
	pStdaCfg = eapGetStandaloneCfg();
	
	
	cliPrintf("STAND ALONE CONFIGURATION\n\r");
	cliPrintf("Verbose debug:\n\r");
	cliPrintf("\tpStdaCfg->clkSrc   : %i\n\r",pStdaCfg->clkSrc );
	cliPrintf("\tpStdaCfg->extADAT  : %i\n\r",pStdaCfg->extADAT);
	cliPrintf("\tpStdaCfg->extAES   : %i\n\r",pStdaCfg->extAES );
	cliPrintf("\tpStdaCfg->extInt   : %i\n\r",pStdaCfg->extInt );
	cliPrintf("\tpStdaCfg->extWC    : %i\n\r",pStdaCfg->extWC);
	cliPrintf("\n\r");

	switch (pStdaCfg->clkSrc)
	{
		case DD_CLK_SRC_AES1:
			cliPrintf("\tsync    : spdif\n\r");
			cliPrintf("\trate    : %s\n\r","32k-192k");
			break;
		case DD_CLK_SRC_ADAT:
			cliPrintf("\tsync    : adat\n\r");
			cliPrintf("\tsmux    : %s\n\r",(pStdaCfg->extADAT==0) ? "none":
										  (pStdaCfg->extADAT==1) ? "SMUX II":
										  (pStdaCfg->extADAT==3) ? "SMUX IV":
										  "illegal");
			break;
		case DD_CLK_SRC_WC:
			cliPrintf("\tsync    : Word Clock\n\r");
			cliPrintf("\trate    : %s\n\r","32k-192k");
			break;
		
		case DD_CLK_SRC_INTERNAL:
			cliPrintf("\tsync    : internal\n\r");
			switch (pStdaCfg->extInt)
			{
				case eDAL_NOMINAL_RATE_32:		cliPrintf("\trate    : 32k\n\r");break;
				case eDAL_NOMINAL_RATE_44_1:	cliPrintf("\trate    : 44.1k\n\r");break;
				case eDAL_NOMINAL_RATE_48:		cliPrintf("\trate    : 48k\n\r");break;
				case eDAL_NOMINAL_RATE_88_2:	cliPrintf("\trate    : 88.2k\n\r");break;
				case eDAL_NOMINAL_RATE_96:		cliPrintf("\trate    : 96k\n\r");break;
				case eDAL_NOMINAL_RATE_176_4:	cliPrintf("\trate    : 176.4k\n\r");break;
				case eDAL_NOMINAL_RATE_192:		cliPrintf("\trate    : 192k\n\r");break;
				default: cliPrintf("\trate    : Illegal\n\r");break;
			}
			break;

		default:
			cliPrintf("\tsync    : Illegal\n\r");
	}
	cliPrintf("\n\r");
	return NO_ERROR;
}
예제 #3
0
HRESULT myAppSetStdAlone(uint32 sync, uint32 intRate)
{
	EAP_STND_ALONE_CFG * pStdaCfg;

	
	pStdaCfg = eapGetStandaloneCfg();
	pStdaCfg->clkSrc = sync;
	pStdaCfg->extADAT = 0;
	pStdaCfg->extAES = 0;
	pStdaCfg->extInt = intRate;
	return eapStoreFlash ();
}